Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752534AbbL1THc (ORCPT ); Mon, 28 Dec 2015 14:07:32 -0500 Received: from mail-wm0-f48.google.com ([74.125.82.48]:38579 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751412AbbL1TH3 (ORCPT ); Mon, 28 Dec 2015 14:07:29 -0500 Date: Mon, 28 Dec 2015 20:07:15 +0100 From: Rabin Vincent To: Jens Axboe Cc: linux-kernel@vger.kernel.org Subject: Re: [PATCH] null_blk: don't enable irqs when in irq Message-ID: <20151228190715.GA20883@debian> References: <1451053594-12188-1-git-send-email-rabin@rab.in> <567E1180.8070004@fb.com> <568184E8.1080801@fb.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <568184E8.1080801@fb.com> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4533 Lines: 76 On Mon, Dec 28, 2015 at 11:52:24AM -0700, Jens Axboe wrote: > Something like this should work, can you test it? Spits out a bunch of the following. It's this assertion: static inline void queue_lockdep_assert_held(struct request_queue *q) { if (q->queue_lock) lockdep_assert_held(q->queue_lock); } [ 11.797139] ------------[ cut here ]------------ [ 11.797670] WARNING: CPU: 0 PID: 6 at /home/rabin/dev/linux/include/linux/blkdev.h:505 blk_start_queue_async+0x54/0x60() [ 11.798810] Modules linked in: [ 11.799139] CPU: 0 PID: 6 Comm: kworker/u4:0 Not tainted 4.4.0-rc6+ #82 [ 11.799811] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Debian-1.8.2-1 04/01/2014 [ 11.800012] Workqueue: writeback wb_workfn (flush-253:0) [ 11.800012] ffffffff817fdd30 ffff88000d603e40 ffffffff813446dc 0000000000000000 [ 11.800012] ffff88000d603e78 ffffffff810501e2 ffff88000005bc00 ffff88000005bc00 [ 11.800012] ffff88000d60db40 ffffffff813da2b0 ffff88000d60dc28 ffff88000d603e88 [ 11.800012] Call Trace: [ 11.800012] [] dump_stack+0x4e/0x82 [ 11.800012] [] warn_slowpath_common+0x82/0xc0 [ 11.800012] [] ? null_softirq_done_fn+0x30/0x30 [ 11.800012] [] warn_slowpath_null+0x1a/0x20 [ 11.800012] [] blk_start_queue_async+0x54/0x60 [ 11.800012] [] end_cmd+0x84/0xc0 [ 11.800012] [] null_cmd_timer_expired+0x12/0x20 [ 11.800012] [] __hrtimer_run_queues+0x12b/0x4b0 [ 11.800012] [] hrtimer_interrupt+0xaf/0x1b0 [ 11.800012] [] ? mempool_alloc_slab+0x1d/0x30 [ 11.800012] [] local_apic_timer_interrupt+0x36/0x60 [ 11.800012] [] smp_apic_timer_interrupt+0x3d/0x50 [ 11.800012] [] apic_timer_interrupt+0x8c/0xa0 [ 11.800012] [] ? mempool_alloc_slab+0x1d/0x30 [ 11.800012] [] ? __slab_alloc.isra.17.constprop.19+0x6b/0xa0 [ 11.800012] [] kmem_cache_alloc+0x208/0x240 [ 11.800012] [] ? mempool_alloc_slab+0x1d/0x30 [ 11.800012] [] mempool_alloc_slab+0x1d/0x30 [ 11.800012] [] mempool_alloc+0x68/0x170 [ 11.800012] [] ? mark_held_locks+0x6f/0xa0 [ 11.800012] [] ? _raw_spin_unlock_irqrestore+0x5f/0x80 [ 11.800012] [] bio_alloc_bioset+0xb8/0x230 [ 11.800012] [] submit_bh_wbc.isra.2+0x73/0x130 [ 11.800012] [] __block_write_full_page.constprop.3+0x110/0x360 [ 11.800012] [] ? I_BDEV+0x20/0x20 [ 11.800012] [] ? I_BDEV+0x20/0x20 [ 11.800012] [] block_write_full_page+0x11c/0x1b0 [ 11.800012] [] blkdev_writepage+0x18/0x20 [ 11.800012] [] __writepage+0x16/0x40 [ 11.800012] [] write_cache_pages+0x226/0x5f0 [ 11.800012] [] ? bdi_set_max_ratio+0x70/0x70 [ 11.800012] [] generic_writepages+0x44/0x60 [ 11.800012] [] ? __lock_is_held+0x50/0x70 [ 11.800012] [] do_writepages+0x21/0x30 [ 11.800012] [] __writeback_single_inode+0x7f/0x6f0 [ 11.800012] [] writeback_sb_inodes+0x2cd/0x5b0 [ 11.800012] [] __writeback_inodes_wb+0x8c/0xc0 [ 11.800012] [] wb_writeback+0x25b/0x520 [ 11.800012] [] wb_workfn+0x2a8/0x5d0 [ 11.800012] [] ? ring_buffer_event_data+0x9/0x10 [ 11.800012] [] process_one_work+0x206/0x650 [ 11.800012] [] ? process_one_work+0x162/0x650 [ 11.800012] [] worker_thread+0x4e/0x450 [ 11.800012] [] ? process_one_work+0x650/0x650 [ 11.800012] [] kthread+0xef/0x110 [ 11.800012] [] ? kthread_stop+0x280/0x280 [ 11.800012] [] ret_from_fork+0x3f/0x70 [ 11.800012] [] ? kthread_stop+0x280/0x280 [ 11.800012] ---[ end trace b21adbd5c353edec ]--- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/