public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Douglas Gilbert <dgilbert@interlog.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: SCSI development list <linux-scsi@vger.kernel.org>,
	Jens Axboe <axboe@kernel.dk>
Subject: Re: lk 3.17-rc4 blk_mq large write problems
Date: Wed, 10 Sep 2014 20:58:51 -0400	[thread overview]
Message-ID: <5410F3CB.8070400@interlog.com> (raw)
In-Reply-To: <20140910154144.GA22296@infradead.org>

On 14-09-10 11:41 AM, Christoph Hellwig wrote:
> While it might not help with a blown stack, can you give the patch below
> a try?  I tries to solve a problem where the timeout handler hits
> before we've fully set up a command.  While I'd like to understand the
> root cause of why we're hitting it as well, I'd also really to fix that
> race. It would also be good to get a gdb listing of the exact area in
> scsi_times_out listed in the oops.

RIP: 0010:[<ffffffff8127cd2e>]  [<ffffffff8127cd2e>] scsi_times_out+0xe/0x2e0

(gdb) disassemble scsi_times_out
Dump of assembler code for function scsi_times_out:
    0xffffffff8127d030 <+0>:	push   %rbp
    0xffffffff8127d031 <+1>:	mov    $0x2007,%esi
    0xffffffff8127d036 <+6>:	push   %rbx
    0xffffffff8127d037 <+7>:	mov    0xf8(%rdi),%rbx
    0xffffffff8127d03e <+14>:	mov    (%rbx),%rax
    0xffffffff8127d041 <+17>:	mov    %rbx,%rdi
    0xffffffff8127d044 <+20>:	mov    (%rax),%rbp
    0xffffffff8127d047 <+23>:	callq  0xffffffff81277c70 <scsi_log_completion>
    0xffffffff8127d04c <+28>:	cmpl   $0xffffffff,0x154(%rbp)
    0xffffffff8127d053 <+35>:	je     0xffffffff8127d05f <scsi_times_out+47>
...

which seems to agree 'objdump -drS scsi_error.o':

00000000000028b0 <scsi_times_out>:
     28b0:	55                   	push   %rbp
     28b1:	be 07 20 00 00       	mov    $0x2007,%esi
     28b6:	53                   	push   %rbx
     28b7:	48 8b 9f f8 00 00 00 	mov    0xf8(%rdi),%rbx
     28be:	48 8b 03             	mov    (%rbx),%rax
     28c1:	48 89 df             	mov    %rbx,%rdi
     28c4:	48 8b 28             	mov    (%rax),%rbp
     28c7:	e8 00 00 00 00       	callq  28cc <scsi_times_out+0x1c>
			28c8: R_X86_64_PC32	scsi_log_completion-0x4
     28cc:	83 bd 54 01 00 00 ff 	cmpl   $0xffffffff,0x154(%rbp)

> From: Christoph Hellwig <hch@lst.de>
> Subject: blk-mq: call blk_mq_start_request from ->queue_rq
>
> When we call blk_mq_start_request from the core blk-mq code before calling into
> ->queue_rq there is a racy window where the timeout handler can hit before we've
> fully set up the driver specific part of the command.
>
> Move the call to blk_mq_start_request into the driver so the driver can start
> the request only once it is fully set up.

Using my original (newer) machine with a SAS SSD, today
I'm seeing only the "blown stack" oops on umount. And on
the next reboot, if use_blk_mq=Y then doing the mount
(on the SAS SSD) causes an instant reboot.

Same with and without this patch. I'll try again with the
SATA SSD (but I need to archive its contents first) and
maybe I can get back to the scsi_times_out oops.


  parent reply	other threads:[~2014-09-11  0:59 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-10  3:55 lk 3.17-rc4 blk_mq large write problems Douglas Gilbert
2014-09-10 15:41 ` Christoph Hellwig
2014-09-10 16:47   ` Jens Axboe
2014-09-10 18:09     ` Christoph Hellwig
2014-09-10 18:26       ` Jens Axboe
2014-09-10 18:40         ` Christoph Hellwig
2014-09-10 18:42           ` Jens Axboe
2014-09-11  0:58   ` Douglas Gilbert [this message]
2014-09-11  2:00     ` Jens Axboe
2014-09-11  3:48       ` Elliott, Robert (Server Storage)
2014-09-11  5:37         ` Douglas Gilbert
2014-09-17 17:04           ` Christoph Hellwig
2014-09-22 23:14 ` Douglas Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5410F3CB.8070400@interlog.com \
    --to=dgilbert@interlog.com \
    --cc=axboe@kernel.dk \
    --cc=hch@infradead.org \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox