All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Mike Christie <mchristie@fusionio.com>
Cc: "Nicholas A. Bellinger" <nab@linux-iscsi.org>,
	Jens Axboe <axboe@kernel.dk>,
	Alexander Gordeev <agordeev@redhat.com>,
	Tejun Heo <tj@kernel.org>,
	linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-scsi <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH RESEND 0/1] AHCI: Optimize interrupt processing
Date: Thu, 3 Oct 2013 04:06:51 -0700	[thread overview]
Message-ID: <20131003110650.GA23454@infradead.org> (raw)
In-Reply-To: <51EAA33C.9010405@fusionio.com>

On Sat, Jul 20, 2013 at 09:48:28AM -0500, Mike Christie wrote:
> What about the attached only compile tested patch. The patch has the mq
> block code work like the non mq code for bio cleanups.
> 
> 

> blk-mq: blk-mq should free bios in pass through case
> 
> For non mq calls, the block layer will free the bios when
> blk_finish_request is called.
e 
> For mq calls, the blk mq code wants the caller to do this.
> 
> This patch has the blk mq code work like the non mq code
> and has the block layer free the bios.
> 
> Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>

This patch breaks booting for me in the current blk multiqueue tree,
with an apparent double free of a bio when using virtio-blk in writeback
mode (cache=writeback or cache=none in qemu):

[   15.253608] ------------[ cut here ]------------
[   15.256422] kernel BUG at /work/hch/linux/fs/bio.c:498!
[   15.256879] invalid opcode: 0000 [#1] SMP 
[   15.256879] Modules linked in:
[   15.256879] CPU: 3 PID: 353 Comm: kblockd Not tainted 3.11.0+ #25
[   15.256879] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[   15.256879] task: ffff88007d75e0c0 ti: ffff88007d676000 task.ti: ffff88007d676000
[   15.256879] RIP: 0010:[<ffffffff811b470a>]  [<ffffffff811b470a>] bio_put+0x8a/0x90
[   15.256879] RSP: 0018:ffff88007fd83b50  EFLAGS: 00010046
[   15.256879] RAX: 0000000000000000 RBX: ffff88007d713080 RCX: 0000000000000035
[   15.256879] RDX: 0000000000000002 RSI: ffff88007ad50338 RDI: ffff88007d713080
[   15.256879] RBP: ffff88007fd83b60 R08: 7010000000000000 R09: 007ad50338080000
[   15.256879] R10: ff672b1b7d38ce02 R11: 000000000000028b R12: 0000000000000000
[   15.256879] R13: 0000000000000000 R14: ffff88007b4c36c0 R15: ffff88007b40d608
[   15.256879] FS:  0000000000000000(0000) GS:ffff88007fd80000(0000) knlGS:0000000000000000
[   15.256879] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   15.256879] CR2: 0000000000000138 CR3: 0000000002124000 CR4: 00000000000006e0
[   15.256879] Stack:
[   15.256879]  ffff88007d713080 0000000000000000 ffff88007fd83b80 ffffffff811ae8a3
[   15.256879]  ffff88007fd83bf0 0000000000001000 ffff88007fd83b90 ffffffff811b3268
[   15.256879]  ffff88007fd83bc0 ffffffff816ac847 ffff88007b4c36c0 ffff88007fd99d00
[   15.256879] Call Trace:
[   15.256879]  <IRQ> 
[   15.256879]  [<ffffffff811ae8a3>] end_bio_bh_io_sync+0x33/0x50
[   15.256879]  [<ffffffff811b3268>] bio_endio+0x18/0x30
[   15.256879]  [<ffffffff816ac847>] blk_mq_complete_request+0x47/0xd0
[   15.256879]  [<ffffffff816ac8e9>] __blk_mq_end_io+0x19/0x20
[   15.256879]  [<ffffffff816ac958>] blk_mq_end_io+0x68/0xd0
[   15.256879]  [<ffffffff816a6162>] blk_flush_complete_seq+0xe2/0x370
[   15.256879]  [<ffffffff816a653b>] flush_end_io+0x11b/0x200
[   15.256879]  [<ffffffff816ac875>] blk_mq_complete_request+0x75/0xd0
[   15.256879]  [<ffffffff816ac8e9>] __blk_mq_end_io+0x19/0x20
[   15.256879]  [<ffffffff816ac958>] blk_mq_end_io+0x68/0xd0
[   15.256879]  [<ffffffff81844c2f>] virtblk_done+0xef/0x260
[   15.256879]  [<ffffffff81753cc0>] vring_interrupt+0x30/0x60
[   15.256879]  [<ffffffff81103724>] handle_irq_event_percpu+0x54/0x1f0
[   15.256879]  [<ffffffff81103903>] handle_irq_event+0x43/0x70
[   15.256879]  [<ffffffff8110609f>] handle_edge_irq+0x6f/0x120
[   15.256879]  [<ffffffff810445b8>] handle_irq+0x58/0x140
[   15.256879]  [<ffffffff81094bbf>] ? irq_enter+0x4f/0x90
[   15.256879]  [<ffffffff810440b5>] do_IRQ+0x55/0xd0
[   15.256879]  [<ffffffff81bd3972>] common_interrupt+0x72/0x72
[   15.256879]  [<ffffffff810c5135>] ? sched_clock_local+0x25/0xa0
[   15.256879]  [<ffffffff81094960>] ? __do_softirq+0xb0/0x250
[   15.256879]  [<ffffffff81094959>] ? __do_softirq+0xa9/0x250
[   15.256879]  [<ffffffff81094cae>] irq_exit+0xae/0xd0
[   15.256879]  [<ffffffff8106dcd5>] smp_apic_timer_interrupt+0x45/0x60
[   15.256879]  [<ffffffff81bdc772>] apic_timer_interrupt+0x72/0x80
[   15.256879]  <EOI> 
[   15.256879]  [<ffffffff81bd3a33>] ? retint_restore_args+0x13/0x13
[   15.256879]  [<ffffffff81bd3502>] ? _raw_spin_unlock_irq+0x32/0x40
[   15.256879]  [<ffffffff81bd34fb>] ? _raw_spin_unlock_irq+0x2b/0x40
[   15.256879]  [<ffffffff810ac0c4>] rescuer_thread+0xe4/0x2f0
[   15.256879]  [<ffffffff810abfe0>] ? process_scheduled_works+0x40/0x40
[   15.256879]  [<ffffffff810b3916>] kthread+0xd6/0xe0
[   15.256879]  [<ffffffff81bd34fb>] ? _raw_spin_unlock_irq+0x2b/0x40
[   15.256879]  [<ffffffff810b3840>] ? __init_kthread_worker+0x70/0x70
[   15.256879]  [<ffffffff81bdbabc>] ret_from_fork+0x7c/0xb0
[   15.256879]  [<ffffffff810b3840>] ? __init_kthread_worker+0x70/0x70
[   15.256879] Code: ff 41 8b 44 24 08 48 89 df 49 8b 74 24 10 48 29 c7 e8 cb 88 f8 ff 48 8b 5d f0 4c 8b 65 f8 c9 c3 90 48 89 df e8 b8 5c fc ff eb 9b <0f> 0b 0f 1f 40 00 55 48 89 e5 41 57 45 31 ff 41 56 41 55 41 54 
[   15.256879] RIP  [<ffffffff811b470a>] bio_put+0x8a/0x90
[   15.256879]  RSP <ffff88007fd83b50>
[   15.256879] ---[ end trace 1f201608bfddfca7 ]---
[   15.256879] Kernel panic - not syncing: Fatal exception in interrupt
[   15.256879] Shutting down cpus with NMI

  parent reply	other threads:[~2013-10-03 11:06 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-21 19:00 [PATCH RESEND 0/1] AHCI: Optimize interrupt processing Alexander Gordeev
2013-05-21 19:00 ` [PATCH RESEND 1/1] " Alexander Gordeev
2013-05-21 23:50 ` [PATCH RESEND 0/1] " Tejun Heo
2013-05-22 14:39   ` Alexander Gordeev
2013-05-22 17:03     ` Jens Axboe
2013-07-11 10:26       ` Alexander Gordeev
2013-07-11 10:26         ` Alexander Gordeev
2013-07-11 23:00         ` Nicholas A. Bellinger
2013-07-12  7:46           ` Alexander Gordeev
2013-07-13  5:20             ` Nicholas A. Bellinger
2013-07-16 18:32               ` Alexander Gordeev
2013-07-16 21:38                 ` Nicholas A. Bellinger
2013-07-17 16:19                   ` Alexander Gordeev
2013-07-18 18:51                     ` Nicholas A. Bellinger
2013-07-18 19:12                       ` Mike Christie
2013-07-19  0:23                         ` Nicholas A. Bellinger
2013-07-19  0:30                           ` Jens Axboe
2013-07-19  1:03                             ` Nicholas A. Bellinger
2013-07-19  6:34                               ` Nicholas A. Bellinger
2013-07-19  6:34                                 ` Nicholas A. Bellinger
2013-07-19 15:33                                 ` James Bottomley
2013-07-19 21:01                                   ` Nicholas A. Bellinger
2013-07-20  4:56                                     ` Nicholas A. Bellinger
2013-07-20 14:48                                       ` Mike Christie
2013-07-20 14:48                                         ` Mike Christie
2013-07-20 22:14                                         ` Nicholas A. Bellinger
2013-07-20 23:57                                         ` Jens Axboe
2013-08-09 19:15                                         ` Alexander Gordeev
2013-08-09 20:17                                           ` Nicholas A. Bellinger
2013-08-15 16:23                                             ` Alexander Gordeev
2013-08-16  2:19                                               ` Nicholas A. Bellinger
2013-08-16 16:41                                                 ` Alexander Gordeev
2013-08-16 17:46                                                   ` Nicholas A. Bellinger
2013-08-28 15:56                                                 ` Alexander Gordeev
2013-08-28 15:56                                                   ` Alexander Gordeev
2013-09-20 15:19                                                 ` Alexander Gordeev
2013-09-20 15:19                                                   ` Alexander Gordeev
2013-09-20 20:41                                                   ` Nicholas A. Bellinger
2013-10-03 11:06                                         ` Christoph Hellwig [this message]
2013-10-07 14:44                                           ` Alexander Gordeev
2013-07-22 15:03                                       ` Alexander Gordeev
2013-07-22 21:10                                         ` Nicholas A. Bellinger
2013-07-25 10:16                                           ` Alexander Gordeev
2013-07-25 22:08                                             ` Nicholas A. Bellinger
2013-07-26  2:09                                               ` Jens Axboe
2013-07-26 21:14                                                 ` Nicholas A. Bellinger
2013-07-27  0:43                                                   ` Nicholas A. Bellinger
2013-07-29 11:18                                                     ` Alexander Gordeev
2013-07-29 14:08                                                       ` Jens Axboe
2013-07-29 19:19                                                       ` Nicholas A. Bellinger
2013-07-31  4:16                                                         ` Marc C
2013-07-31 10:23                                                           ` Tejun Heo
2013-07-29 11:50                                                     ` Tejun Heo
2013-07-29 19:11                                                       ` Nicholas A. Bellinger
2013-07-29 11:46                                                   ` Tejun Heo
2013-07-29 14:03                                                     ` Jens Axboe
2013-08-09  8:23                                                     ` Alexander Gordeev
2013-08-09 14:15                                                       ` Tejun Heo
2013-08-09 14:24                                                       ` Jens Axboe
2013-08-09 15:07                                                         ` Alexander Gordeev
2013-08-09 15:52                                                           ` Jens Axboe
2013-08-09 16:46                                                             ` Alexander Gordeev
2013-08-09 17:07                                                               ` Jens Axboe
2013-08-12 15:21                                                                 ` Alexander Gordeev
2013-07-29  7:28                                                 ` Hannes Reinecke
2013-07-31 17:11                                             ` Alexander Gordeev
2013-07-19 15:58                           ` Mike Christie
2013-07-19 21:05                             ` Nicholas A. Bellinger
2013-07-18 19:14                       ` Nicholas A. Bellinger
2013-07-18 21:21                         ` Jens Axboe
2014-09-11 12:42   ` Alexander Gordeev
2014-09-11 12:44     ` [PATCH v2] " Alexander Gordeev
2014-09-13  4:43       ` Tejun Heo
2014-09-11 13:36     ` [PATCH RESEND 0/1] " Bartlomiej Zolnierkiewicz
2014-09-13  4:46     ` Tejun Heo

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=20131003110650.GA23454@infradead.org \
    --to=hch@infradead.org \
    --cc=agordeev@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=mchristie@fusionio.com \
    --cc=nab@linux-iscsi.org \
    --cc=tj@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.