All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <piggin@cyberone.com.au>
To: Dave Olien <dmo@osdl.org>
Cc: Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, axboe@suse.de
Subject: Re: Badness in as_completed_request warning
Date: Tue, 09 Sep 2003 13:40:57 +1000	[thread overview]
Message-ID: <3F5D4BC9.6020708@cyberone.com.au> (raw)
In-Reply-To: <20030908164802.GA13441@osdl.org>

[-- 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);
 

_

  reply	other threads:[~2003-09-09  3:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-08 16:48 Badness in as_completed_request warning Dave Olien
2003-09-09  3:40 ` Nick Piggin [this message]
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

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=3F5D4BC9.6020708@cyberone.com.au \
    --to=piggin@cyberone.com.au \
    --cc=akpm@osdl.org \
    --cc=axboe@suse.de \
    --cc=dmo@osdl.org \
    --cc=linux-kernel@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 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.