linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Badness in as_completed_request warning
@ 2003-09-08 16:48 Dave Olien
  2003-09-09  3:40 ` Nick Piggin
  0 siblings, 1 reply; 6+ messages in thread
From: Dave Olien @ 2003-09-08 16:48 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, piggin, axboe


I'm getting a "badness" warning from as_iosched.c, line 917.
This is on 2.6.0-test4-mm6, running on a 2 cpu x86.

The warning occurs when I run three or more instances of mkfs.ext2, where
each mkfs is running on its own disk.  If I run four or more mkfs's
on paritions all on the same disk I don't get this warning.
The more instances of mkfs I run (each on separate disks), the
more instances of this warning I receive.

The mkfs's all progress at the same rate. The warnings
occur as all mkfs's are "writing superblocks and filesystem
accounting information", near the end of the mkfs.

# Badness in as_completed_request at drivers/block/as-iosched.c:917

Call Trace:
 [<c0220d0d>] as_completed_request+0x1ad/0x1b0
 [<c021946f>] elv_completed_request+0x1f/0x30
 [<c021b87c>] __blk_put_request+0x3c/0xc0
 [<c021c83f>] end_that_request_last+0x5f/0xf0
 [<c0234d02>] DAC960_V2_ProcessCompletedCommand+0x172/0xf50
 [<c029712a>] ip_rcv+0x39a/0x520
 [<c011ebf4>] recalc_task_prio+0xb4/0x1f0
 [<c011f64b>] load_balance+0x1bb/0x430
 [<c0235bfd>] DAC960_LP_InterruptHandler+0x6d/0xb0
 [<c010e789>] handle_IRQ_event+0x49/0x80
 [<c010eb00>] do_IRQ+0xa0/0x150
 [<c010abd0>] default_idle+0x0/0x40
 [<c02f2f8c>] common_interrupt+0x18/0x20
 [<c010abd0>] default_idle+0x0/0x40
 [<c010abfd>] default_idle+0x2d/0x40
 [<c010ac96>] cpu_idle+0x46/0x50
 [<c0107000>] rest_init+0x0/0x60
 [<c039092d>] start_kernel+0x18d/0x1c0
 [<c03904a0>] unknown_bootoption+0x0/0x120


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Badness in as_completed_request warning
  2003-09-08 16:48 Badness in as_completed_request warning Dave Olien
@ 2003-09-09  3:40 ` Nick Piggin
  2003-09-09  6:12   ` Dave Olien
  0 siblings, 1 reply; 6+ messages in thread
From: Nick Piggin @ 2003-09-09  3:40 UTC (permalink / raw)
  To: Dave Olien; +Cc: Andrew Morton, linux-kernel, axboe

[-- Attachment #1: Type: text/plain, Size: 1588 bytes --]

Hi Dave,
Can you try 2.6.0-test5 with the following patch please. Thanks


Dave Olien wrote:

>I'm getting a "badness" warning from as_iosched.c, line 917.
>This is on 2.6.0-test4-mm6, running on a 2 cpu x86.
>
>The warning occurs when I run three or more instances of mkfs.ext2, where
>each mkfs is running on its own disk.  If I run four or more mkfs's
>on paritions all on the same disk I don't get this warning.
>The more instances of mkfs I run (each on separate disks), the
>more instances of this warning I receive.
>
>The mkfs's all progress at the same rate. The warnings
>occur as all mkfs's are "writing superblocks and filesystem
>accounting information", near the end of the mkfs.
>
># Badness in as_completed_request at drivers/block/as-iosched.c:917
>
>Call Trace:
> [<c0220d0d>] as_completed_request+0x1ad/0x1b0
> [<c021946f>] elv_completed_request+0x1f/0x30
> [<c021b87c>] __blk_put_request+0x3c/0xc0
> [<c021c83f>] end_that_request_last+0x5f/0xf0
> [<c0234d02>] DAC960_V2_ProcessCompletedCommand+0x172/0xf50
> [<c029712a>] ip_rcv+0x39a/0x520
> [<c011ebf4>] recalc_task_prio+0xb4/0x1f0
> [<c011f64b>] load_balance+0x1bb/0x430
> [<c0235bfd>] DAC960_LP_InterruptHandler+0x6d/0xb0
> [<c010e789>] handle_IRQ_event+0x49/0x80
> [<c010eb00>] do_IRQ+0xa0/0x150
> [<c010abd0>] default_idle+0x0/0x40
> [<c02f2f8c>] common_interrupt+0x18/0x20
> [<c010abd0>] default_idle+0x0/0x40
> [<c010abfd>] default_idle+0x2d/0x40
> [<c010ac96>] cpu_idle+0x46/0x50
> [<c0107000>] rest_init+0x0/0x60
> [<c039092d>] start_kernel+0x18d/0x1c0
> [<c03904a0>] unknown_bootoption+0x0/0x120
>
>
>
>  
>

[-- Attachment #2: as-warn-fix.patch --]
[-- Type: text/plain, Size: 1499 bytes --]

 linux-2.6-npiggin/drivers/block/as-iosched.c |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+)

diff -puN drivers/block/as-iosched.c~as-warn-fix drivers/block/as-iosched.c
--- linux-2.6/drivers/block/as-iosched.c~as-warn-fix	2003-09-09 13:01:04.000000000 +1000
+++ linux-2.6-npiggin/drivers/block/as-iosched.c	2003-09-09 13:21:12.000000000 +1000
@@ -381,8 +381,14 @@ static void as_add_arq_rb(struct as_data
 	arq->rb_key = rq_rb_key(rq);
 
 	/* This can be caused by direct IO */
+#if 0
 	while ((alias = __as_add_arq_rb(ad, arq)))
 		as_move_to_dispatch(ad, alias);
+#endif
+	if ((alias = __as_add_arq_rb(ad, arq))) {
+		list_add_tail(&arq->request->queuelist,
+				&alias->request->queuelist);
+	}
 
 	rb_insert_color(&arq->rb_node, ARQ_RB_ROOT(ad, arq));
 }
@@ -1131,7 +1137,24 @@ static void as_move_to_dispatch(struct a
 	 * take it off the sort and fifo list, add to dispatch queue
 	 */
 	as_remove_queued_request(ad->q, arq->request);
+
+	for (;;) {
+		struct list_head *alias = &arq->request->queuelist;
+
+		if (!list_empty(alias)) {
+			struct request *rq;
+			rq = list_entry_rq(alias->next);
+			list_del(&rq->queuelist);
+			list_add_tail(&rq->queuelist, ad->dispatch);
+
+			if (arq->io_context && arq->io_context->aic)
+				atomic_inc(&arq->io_context->aic->nr_dispatched);
+		} else
+			break;
+	}
+
 	list_add_tail(&arq->request->queuelist, ad->dispatch);
+
 	if (arq->io_context && arq->io_context->aic)
 		atomic_inc(&arq->io_context->aic->nr_dispatched);
 

_

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Badness in as_completed_request warning
  2003-09-09  3:40 ` Nick Piggin
@ 2003-09-09  6:12   ` Dave Olien
  2003-09-09  7:04     ` Nick Piggin
  0 siblings, 1 reply; 6+ messages in thread
From: Dave Olien @ 2003-09-09  6:12 UTC (permalink / raw)
  To: Nick Piggin; +Cc: Andrew Morton, linux-kernel, axboe

[-- Attachment #1: Type: text/plain, Size: 599 bytes --]

On Tue, Sep 09, 2003 at 01:40:57PM +1000, Nick Piggin wrote:
> Hi Dave,
> Can you try 2.6.0-test5 with the following patch please. Thanks
> 

I applied this patch, and gave it a shot.  It seems to have made things
worse.  Instead of the warnings occurring only at the end of the mkfs
runs, they now occur pretty much constantly, and it finally ends
with an Bug_On.  Attached is the console output.  There are 20 
occurrances of Badness in as-iosched.c line 1020.  There is one
occurrance of Badness in as-iosched.c line 1025.  The Bug_On() is in
as-iosched.c line 1243.

Console output is attached.

[-- Attachment #2: typescript --]
[-- Type: text/plain, Size: 39265 bytes --]

Linux version 2.6.0-test5-NP (dmo@cl045) (gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5)) #1 SMP Tue Sep 9 02:52:46 PDT 2003
[root@cl045 root]# Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1025
Call Trace:
 [<c021b52c>] as_remove_dispatched_request+0x6c/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Badness in as_remove_dispatched_request at drivers/block/as-iosched.c:1020
Call Trace:
 [<c021b582>] as_remove_dispatched_request+0xc2/0x100
 [<c02139a9>] elv_remove_request+0x29/0x40
 [<c022ca2a>] DAC960_ProcessRequest+0x16a/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

------------[ cut here ]------------
kernel BUG at drivers/block/as-iosched.c:1243!
invalid operand: 0000 [#1]
CPU:    1
EIP:    0060:[<c021ba76>]    Not tainted
EFLAGS: 00010046
EIP is at as_dispatch_request+0x236/0x2f0
eax: 00000000   ebx: dfd3cbc0   ecx: 00000000   edx: 00000000
esi: 00000000   edi: 00000001   ebp: 00000000   esp: d9559a38
ds: 007b   es: 007b   ss: 0068
Process mkfs.ext2 (pid: 1273, threadinfo=d9558000 task=dd5cece0)
Stack: dfd3cbc0 d47b9c60 dff98000 dfd06f80 c0228423 dfd3cbc0 00000000 c1731a00 
       d9559af8 c021bb68 dfd3cbc0 00000039 c1731a00 c0213886 c1731a00 c1770890 
       dff98000 00000039 dff98000 c022c8f8 c1731a00 d46c55d8 c1770920 0021bb68 
Call Trace:
 [<c0228423>] DAC960_LP_QueueCommand+0x43/0xb0
 [<c021bb68>] as_next_request+0x38/0x50
 [<c0213886>] elv_next_request+0x16/0x110
 [<c022c8f8>] DAC960_ProcessRequest+0x38/0x190
 [<c022cb2b>] DAC960_RequestFunction+0x2b/0x40
 [<c02152ff>] generic_unplug_device+0x6f/0x80
 [<c0215bac>] get_request_wait+0x7c/0x100
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0213ad1>] elv_may_queue+0x21/0x30
 [<c0120690>] autoremove_wake_function+0x0/0x50
 [<c0216315>] __make_request+0xd5/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013f1a2>] mempool_free+0x42/0x80
 [<c028fc1a>] ip_rcv+0x39a/0x520
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c010d3d9>] handle_IRQ_event+0x49/0x80
 [<c01f1265>] tty_write+0x1a5/0x2c0
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c015fec0>] block_llseek+0x0/0x100
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Code: 0f 0b db 04 c9 be 30 c0 eb c7 8b 43 48 e9 61 ff ff ff 0f 0b 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Badness in as_completed_request warning
  2003-09-09  6:12   ` Dave Olien
@ 2003-09-09  7:04     ` Nick Piggin
  2003-09-09 15:38       ` Dave Olien
  2003-09-09 16:44       ` Dave Olien
  0 siblings, 2 replies; 6+ messages in thread
From: Nick Piggin @ 2003-09-09  7:04 UTC (permalink / raw)
  To: Dave Olien; +Cc: Andrew Morton, linux-kernel, axboe

[-- Attachment #1: Type: text/plain, Size: 766 bytes --]



Dave Olien wrote:

>On Tue, Sep 09, 2003 at 01:40:57PM +1000, Nick Piggin wrote:
>
>>Hi Dave,
>>Can you try 2.6.0-test5 with the following patch please. Thanks
>>
>>
>
>I applied this patch, and gave it a shot.  It seems to have made things
>worse.  Instead of the warnings occurring only at the end of the mkfs
>runs, they now occur pretty much constantly, and it finally ends
>with an Bug_On.  Attached is the console output.  There are 20 
>occurrances of Badness in as-iosched.c line 1020.  There is one
>occurrance of Badness in as-iosched.c line 1025.  The Bug_On() is in
>as-iosched.c line 1243.
>
>Console output is attached.
>

Thanks Dave,
Can you try this one? I can't reproduce the problem here as I don't have
enough disks unfortunately. Thanks

Nick

[-- Attachment #2: as-warn-fix.patch --]
[-- Type: text/plain, Size: 3561 bytes --]

 linux-2.6-npiggin/drivers/block/as-iosched.c |   60 +++++++++++++++++++--------
 1 files changed, 43 insertions(+), 17 deletions(-)

diff -puN drivers/block/as-iosched.c~as-warn-fix drivers/block/as-iosched.c
--- linux-2.6/drivers/block/as-iosched.c~as-warn-fix	2003-09-09 17:02:41.000000000 +1000
+++ linux-2.6-npiggin/drivers/block/as-iosched.c	2003-09-09 17:02:41.000000000 +1000
@@ -373,7 +373,7 @@ static void as_move_to_dispatch(struct a
  * direct IO, then move the alias to the dispatch list and then add the
  * request.
  */
-static void as_add_arq_rb(struct as_data *ad, struct as_rq *arq)
+static int as_add_arq_rb(struct as_data *ad, struct as_rq *arq)
 {
 	struct as_rq *alias;
 	struct request *rq = arq->request;
@@ -381,10 +381,20 @@ static void as_add_arq_rb(struct as_data
 	arq->rb_key = rq_rb_key(rq);
 
 	/* This can be caused by direct IO */
+#if 0
 	while ((alias = __as_add_arq_rb(ad, arq)))
 		as_move_to_dispatch(ad, alias);
+#endif
+	if ((alias = __as_add_arq_rb(ad, arq))) {
+		arq->state = AS_RQ_NEW;
+		list_add_tail(&arq->request->queuelist,
+				&alias->request->queuelist);
+
+		return 1;
+	}
 
 	rb_insert_color(&arq->rb_node, ARQ_RB_ROOT(ad, arq));
+	return 0;
 }
 
 static inline void as_del_arq_rb(struct as_data *ad, struct as_rq *arq)
@@ -1131,7 +1141,21 @@ static void as_move_to_dispatch(struct a
 	 * take it off the sort and fifo list, add to dispatch queue
 	 */
 	as_remove_queued_request(ad->q, arq->request);
+
+	for (;;) {
+		struct list_head *alias = &arq->request->queuelist;
+
+		if (!list_empty(alias)) {
+			struct request *rq;
+			rq = list_entry_rq(alias->next);
+			list_del(&rq->queuelist);
+			list_add_tail(&rq->queuelist, ad->dispatch);
+		} else
+			break;
+	}
+
 	list_add_tail(&arq->request->queuelist, ad->dispatch);
+
 	if (arq->io_context && arq->io_context->aic)
 		atomic_inc(&arq->io_context->aic->nr_dispatched);
 
@@ -1303,22 +1327,22 @@ static void as_add_request(struct as_dat
 		arq->is_sync = 0;
 	data_dir = arq->is_sync;
 
-	arq->io_context = as_get_io_context();
+	if (!as_add_arq_rb(ad, arq)) {
+		arq->io_context = as_get_io_context();
 
-	if (arq->io_context) {
-		atomic_inc(&arq->io_context->aic->nr_queued);
-		as_update_iohist(arq->io_context->aic, arq->request);
-	}
-
-	as_add_arq_rb(ad, arq);
+		if (arq->io_context) {
+			atomic_inc(&arq->io_context->aic->nr_queued);
+			as_update_iohist(arq->io_context->aic, arq->request);
+		}
 
-	/*
-	 * set expire time (only used for reads) and add to fifo list
-	 */
-	arq->expires = jiffies + ad->fifo_expire[data_dir];
-	list_add_tail(&arq->fifo, &ad->fifo_list[data_dir]);
-	arq->state = AS_RQ_QUEUED;
-	as_update_arq(ad, arq); /* keep state machine up to date */
+		/*
+		 * set expire time (only used for reads) and add to fifo list
+		 */
+		arq->expires = jiffies + ad->fifo_expire[data_dir];
+		list_add_tail(&arq->fifo, &ad->fifo_list[data_dir]);
+		arq->state = AS_RQ_QUEUED;
+		as_update_arq(ad, arq); /* keep state machine up to date */
+	}
 }
 
 /*
@@ -1495,7 +1519,8 @@ static void as_merged_request(request_qu
 	 */
 	if (rq_rb_key(req) != arq->rb_key) {
 		as_del_arq_rb(ad, arq);
-		as_add_arq_rb(ad, arq);
+		if (as_add_arq_rb(ad, arq))
+			WARN_ON(1);
 		/*
 		 * Note! At this stage of this and the next function, our next
 		 * request may not be optimal - eg the request may have "grown"
@@ -1526,7 +1551,8 @@ as_merged_requests(request_queue_t *q, s
 
 	if (rq_rb_key(req) != arq->rb_key) {
 		as_del_arq_rb(ad, arq);
-		as_add_arq_rb(ad, arq);
+		if (as_add_arq_rb(ad, arq))
+			WARN_ON(1);
 	}
 
 	/*

_

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Badness in as_completed_request warning
  2003-09-09  7:04     ` Nick Piggin
@ 2003-09-09 15:38       ` Dave Olien
  2003-09-09 16:44       ` Dave Olien
  1 sibling, 0 replies; 6+ messages in thread
From: Dave Olien @ 2003-09-09 15:38 UTC (permalink / raw)
  To: Nick Piggin; +Cc: Andrew Morton, linux-kernel, axboe

[-- Attachment #1: Type: text/plain, Size: 4122 bytes --]


Sorry, this one Bug()'d  really quickly. I applied this patch to
an unmodified test5 kernel.  Console output is attached.

On Tue, Sep 09, 2003 at 05:04:10PM +1000, Nick Piggin wrote:
> 
> Thanks Dave,
> Can you try this one? I can't reproduce the problem here as I don't have
> enough disks unfortunately. Thanks
> 
> Nick

>  linux-2.6-npiggin/drivers/block/as-iosched.c |   60 +++++++++++++++++++--------
>  1 files changed, 43 insertions(+), 17 deletions(-)
> 
> diff -puN drivers/block/as-iosched.c~as-warn-fix drivers/block/as-iosched.c
> --- linux-2.6/drivers/block/as-iosched.c~as-warn-fix	2003-09-09 17:02:41.000000000 +1000
> +++ linux-2.6-npiggin/drivers/block/as-iosched.c	2003-09-09 17:02:41.000000000 +1000
> @@ -373,7 +373,7 @@ static void as_move_to_dispatch(struct a
>   * direct IO, then move the alias to the dispatch list and then add the
>   * request.
>   */
> -static void as_add_arq_rb(struct as_data *ad, struct as_rq *arq)
> +static int as_add_arq_rb(struct as_data *ad, struct as_rq *arq)
>  {
>  	struct as_rq *alias;
>  	struct request *rq = arq->request;
> @@ -381,10 +381,20 @@ static void as_add_arq_rb(struct as_data
>  	arq->rb_key = rq_rb_key(rq);
>  
>  	/* This can be caused by direct IO */
> +#if 0
>  	while ((alias = __as_add_arq_rb(ad, arq)))
>  		as_move_to_dispatch(ad, alias);
> +#endif
> +	if ((alias = __as_add_arq_rb(ad, arq))) {
> +		arq->state = AS_RQ_NEW;
> +		list_add_tail(&arq->request->queuelist,
> +				&alias->request->queuelist);
> +
> +		return 1;
> +	}
>  
>  	rb_insert_color(&arq->rb_node, ARQ_RB_ROOT(ad, arq));
> +	return 0;
>  }
>  
>  static inline void as_del_arq_rb(struct as_data *ad, struct as_rq *arq)
> @@ -1131,7 +1141,21 @@ static void as_move_to_dispatch(struct a
>  	 * take it off the sort and fifo list, add to dispatch queue
>  	 */
>  	as_remove_queued_request(ad->q, arq->request);
> +
> +	for (;;) {
> +		struct list_head *alias = &arq->request->queuelist;
> +
> +		if (!list_empty(alias)) {
> +			struct request *rq;
> +			rq = list_entry_rq(alias->next);
> +			list_del(&rq->queuelist);
> +			list_add_tail(&rq->queuelist, ad->dispatch);
> +		} else
> +			break;
> +	}
> +
>  	list_add_tail(&arq->request->queuelist, ad->dispatch);
> +
>  	if (arq->io_context && arq->io_context->aic)
>  		atomic_inc(&arq->io_context->aic->nr_dispatched);
>  
> @@ -1303,22 +1327,22 @@ static void as_add_request(struct as_dat
>  		arq->is_sync = 0;
>  	data_dir = arq->is_sync;
>  
> -	arq->io_context = as_get_io_context();
> +	if (!as_add_arq_rb(ad, arq)) {
> +		arq->io_context = as_get_io_context();
>  
> -	if (arq->io_context) {
> -		atomic_inc(&arq->io_context->aic->nr_queued);
> -		as_update_iohist(arq->io_context->aic, arq->request);
> -	}
> -
> -	as_add_arq_rb(ad, arq);
> +		if (arq->io_context) {
> +			atomic_inc(&arq->io_context->aic->nr_queued);
> +			as_update_iohist(arq->io_context->aic, arq->request);
> +		}
>  
> -	/*
> -	 * set expire time (only used for reads) and add to fifo list
> -	 */
> -	arq->expires = jiffies + ad->fifo_expire[data_dir];
> -	list_add_tail(&arq->fifo, &ad->fifo_list[data_dir]);
> -	arq->state = AS_RQ_QUEUED;
> -	as_update_arq(ad, arq); /* keep state machine up to date */
> +		/*
> +		 * set expire time (only used for reads) and add to fifo list
> +		 */
> +		arq->expires = jiffies + ad->fifo_expire[data_dir];
> +		list_add_tail(&arq->fifo, &ad->fifo_list[data_dir]);
> +		arq->state = AS_RQ_QUEUED;
> +		as_update_arq(ad, arq); /* keep state machine up to date */
> +	}
>  }
>  
>  /*
> @@ -1495,7 +1519,8 @@ static void as_merged_request(request_qu
>  	 */
>  	if (rq_rb_key(req) != arq->rb_key) {
>  		as_del_arq_rb(ad, arq);
> -		as_add_arq_rb(ad, arq);
> +		if (as_add_arq_rb(ad, arq))
> +			WARN_ON(1);
>  		/*
>  		 * Note! At this stage of this and the next function, our next
>  		 * request may not be optimal - eg the request may have "grown"
> @@ -1526,7 +1551,8 @@ as_merged_requests(request_queue_t *q, s
>  
>  	if (rq_rb_key(req) != arq->rb_key) {
>  		as_del_arq_rb(ad, arq);
> -		as_add_arq_rb(ad, arq);
> +		if (as_add_arq_rb(ad, arq))
> +			WARN_ON(1);
>  	}
>  
>  	/*
> 
> _


[-- Attachment #2: typescript --]
[-- Type: text/plain, Size: 2147 bytes --]


root@cl045 root]# ------------[ cut here ]------------
kernel BUG at drivers/block/as-iosched.c:302!
invalid operand: 0000 [#1]
CPU:    0
EIP:    0060:[<c021a880>]    Not tainted
EFLAGS: 00010046
EIP is at as_find_arq_hash+0x80/0x90
eax: 00000000   ebx: d2fc8ed4   ecx: d2fc8ed4   edx: d2fc8eb8
esi: d2fc9ec0   edi: c17319e0   ebp: 007c054f   esp: dd4fdae0
ds: 007b   es: 007b   ss: 0068
Process mkfs.ext2 (pid: 1276, threadinfo=dd4fc000 task=df5b06f0)
Stack: c4acd320 c1731a00 007c0551 00000000 c021bf54 dfd3cbc0 007c054f d41d6a98 
       c0215a49 dfd3cbc0 00000000 c1731a00 d41d6a98 00000001 c0213709 c1731a00 
       dd4fdb4c c4acd320 c0216578 c1731a00 dd4fdb4c c4acd320 00000000 007c054f 
Call Trace:
 [<c021bf54>] as_merge+0xe4/0x170
 [<c0215a49>] get_request+0x1b9/0x2a0
 [<c0213709>] elv_merge+0x29/0x30
 [<c0216578>] __make_request+0x338/0x580
 [<c02168d5>] generic_make_request+0x115/0x1a0
 [<c0119ebd>] smp_apic_timer_interrupt+0xdd/0x150
 [<c015d917>] bio_alloc+0xd7/0x1c0
 [<c02169b4>] submit_bio+0x54/0xa0
 [<c015b660>] __block_write_full_page+0x270/0x470
 [<c015ceda>] block_write_full_page+0xfa/0x120
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c015fe3f>] blkdev_writepage+0x1f/0x30
 [<c015fcc0>] blkdev_get_block+0x0/0x60
 [<c017a308>] mpage_writepages+0x208/0x2db
 [<c015fe20>] blkdev_writepage+0x0/0x30
 [<c016102f>] generic_writepages+0x1f/0x23
 [<c014198e>] do_writepages+0x1e/0x40
 [<c0178866>] __sync_single_inode+0xc6/0x220
 [<c0178c1c>] sync_sb_inodes+0x1ac/0x270
 [<c0178d4a>] writeback_inodes+0x6a/0xa0
 [<c0141438>] balance_dirty_pages+0xb8/0x160
 [<c013e1ad>] generic_file_aio_write_nolock+0x4cd/0xac0
 [<c013cbf1>] file_read_actor+0xe1/0x100
 [<c010b96e>] apic_timer_interrupt+0x1a/0x20
 [<c013e81e>] generic_file_write_nolock+0x7e/0xa0
 [<c011e8e0>] default_wake_function+0x0/0x30
 [<c012a906>] update_wall_time+0x16/0x40
 [<c012ad30>] do_timer+0xc0/0xd0
 [<c0111826>] timer_interrupt+0x56/0x110
 [<c0160dd7>] blkdev_file_write+0x37/0x40
 [<c015844e>] vfs_write+0xbe/0x130
 [<c0158572>] sys_write+0x42/0x70
 [<c010af2d>] sysenter_past_esp+0x52/0x71

Code: 0f 0b 2e 01 49 bf 30 c0 eb b5 8d b6 00 00 00 00 8b 54 24 08 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Badness in as_completed_request warning
  2003-09-09  7:04     ` Nick Piggin
  2003-09-09 15:38       ` Dave Olien
@ 2003-09-09 16:44       ` Dave Olien
  1 sibling, 0 replies; 6+ messages in thread
From: Dave Olien @ 2003-09-09 16:44 UTC (permalink / raw)
  To: Nick Piggin; +Cc: Andrew Morton, linux-kernel, axboe


On Tue, Sep 09, 2003 at 05:04:10PM +1000, Nick Piggin wrote:
> 
> Thanks Dave,
> Can you try this one? I can't reproduce the problem here as I don't have
> enough disks unfortunately. Thanks
> 
> Nick

One of OSDL's reasons for existance is to arrange for Linux developers
to have access to larger hardware configurations.  I'm sure you could
get a project machine here at OSDL to do testing of I/O scheduler
modifications, or other testing on a larger machine.  Several other
kernel developers have project machines here at OSDL.

Look at the web page

	http://www.osdl.org/lab_activities/be_an_associate.html

Fill out the web page form to get a login.  send email to Cliffw@osdl.org
and me, and we'll see that it gets handled quickly.

You'd be able to ssh into a front-end machine here at OSDL. It would
give you serial console access to a test machine.  You'd also be able
to power on/power off and reset the test machine, and ssh into the
test machine from that front-end.

Dave

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2003-09-09 16:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-08 16:48 Badness in as_completed_request warning Dave Olien
2003-09-09  3:40 ` Nick Piggin
2003-09-09  6:12   ` Dave Olien
2003-09-09  7:04     ` Nick Piggin
2003-09-09 15:38       ` Dave Olien
2003-09-09 16:44       ` Dave Olien

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).