Thread (18 messages) 18 messages, 6 authors, 2018-07-23

Re: [PATCH 2/2] scsi: set timed out out mq requests to complete

From: Keith Busch <hidden>
Date: 2018-07-20 16:23:21
Also in: linux-nvme

On Fri, Jul 20, 2018 at 04:20:01PM +0000, Bart Van Assche wrote:
On Fri, 2018-07-20 at 10:12 -0600, Keith Busch wrote:
quoted
On Fri, Jul 20, 2018 at 04:03:18PM +0000, Bart Van Assche wrote:
quoted
On Fri, 2018-07-20 at 09:56 -0600, Keith Busch wrote:
quoted
SCSI is the only block driver that wants this behavior. Moving it back
to generic where it used to be breaks other block drivers.
That's new to me. What would break in the NVMe driver if the above change would be
present in the block layer?
This is what causes the block layer to lose completions, and most drivers
don't want the kernel to lose their completions.
Hello Keith,

Have you considered to introduce a fourth state for block layer requests to
avoid that completions that occur while a timeout handler is in progress get
lost? That would avoid that completions get lost not only for the NVMe driver
but also for SCSI drivers. See e.g. the MQ_RQ_TIMED_OUT state in
https://www.mail-archive.com/linux-block@vger.kernel.org/msg22196.html
Yes, I've considered that, and I really want to use it, but scsi may
still reference a freed request in scmd_eh_abort_handler that way.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help