Messages in this thread | | | Date | Thu, 26 Nov 2015 09:13:25 +0100 | From | Hannes Reinecke <> | Subject | QUEUE_FLAG_NO_SG_MERGE and non-block-mq |
| |
Hi all,
while investigating the crash in scsi_lib.c I found a rather curious behaviour for QUEUE_FLAG_NO_SG_MERGE.
While the flag is evaluated in blk_recalc_rq_segments and blk_recount_segments (resulting in nr_phys_segments being computed based on that flag) it is completely ignored during blk_rq_map_sg() or the actual merging itself.
This typically shouldn't be an issue, seeing that with QUEUE_FLAG_NO_SG_MERGE nr_phys_segments will always be larger than the actual segment count.
However, it still makes me wonder: What is the point of having a QUEUE_FLAG_NO_SG_MERGE which doesn't work as advertised? Or, to be precise, which only works for blk-mq? Should we make it work for non-block-mq, too?
Cheers,
Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)
| |