Re: QUEUE_FLAG_NO_SG_MERGE and non-block-mq

From: Ming Lei
Date: Thu Nov 26 2015 - 04:21:36 EST


On Thu, Nov 26, 2015 at 4:13 PM, Hannes Reinecke <hare@xxxxxxx> wrote:
> 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.

Yes, I guess Jens introduced the flag for decreasing CPU
consumption when comuputing segments, but it is still
ignored by blk_rq_map_sg(), but it may not be used
by some drivers.

After bio splitting is introduced, the flag is also ignored
when computing segments.

>
> 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?

Thanks bio splitting, this flag has little effect on performance now,
so I think it can be removed if Jens has no objection.

Thanks,

>
>
> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke zSeries & Storage
> hare@xxxxxxx +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)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/