lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181114092022.GC20550@ming.t460p>
Date:   Wed, 14 Nov 2018 17:20:23 +0800
From:   Ming Lei <ming.lei@...hat.com>
To:     Jianchao Wang <jianchao.w.wang@...cle.com>
Cc:     axboe@...nel.dk, linux-block@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH V7 2/4] blk-mq: fix issue directly case when q is stopped
 or quiesced

On Wed, Nov 14, 2018 at 04:45:29PM +0800, Jianchao Wang wrote:
> When try to issue request directly, if the queue is stopped or
> quiesced, 'bypass' will be ignored and return BLK_STS_OK to caller
> to avoid it dispatch request again. Then the request will be
> inserted with blk_mq_sched_insert_request. This is not correct
> for dm-rq case where we should avoid to pass through the underlying
> path's io scheduler.
> 
> To fix it, use blk_mq_request_bypass_insert to insert the request
> to hctx->dispatch when we cannot pass through io scheduler but have
> to insert.

Not sure if the current behaviour is wrong, or worth of a fix.

Bypassing io scheduler for dm-rq is only for sake of performance
because there has been io scheduler for dm device already, and we
just don't want to schedule these requests twice.

Given it can be thought as error handling, there shouldn't be big
difference to put request in scheduler queue or ->dispatch list
when queue is quiesced or stopped. What matters is that all these
requests can be dispatched again after queue switches back.


thanks,
Ming

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ