LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Jens Axboe <jens.axboe@oracle.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: Andrew Morton <akpm@osdl.org>, David Chinner <dgc@sgi.com>,
	linux-kernel@vger.kernel.org
Subject: Re: 2.6.20-rc6-mm3
Date: Thu, 1 Feb 2007 20:18:57 +0100	[thread overview]
Message-ID: <20070201191857.GQ10305@kernel.dk> (raw)
In-Reply-To: <Pine.LNX.4.64.0702011055310.7010@schroedinger.engr.sgi.com>

On Thu, Feb 01 2007, Christoph Lameter wrote:
> On Wed, 31 Jan 2007, Andrew Morton wrote:
> 
> > But usually none of that is necessary, because io_schedule() does all the
> > work for you.
> > 
> > err, this might help.
> 
> Well okay boot progresses further (maybe only on this boot) but system is 
> still hung.
> 
> Traces (this was a backtrace of all processes on the system. I removed 
> the irrelevant ones):
> 
> Delaying for 5 seconds...
> All OS INIT slaves have reached rendezvous
> Processes interrupted by INIT - 0 (cpu 0 task 0xa000000100b24000) 0 (cpu 1 
> task 0xe00000b003bd8000) 0 (cpu 2 task 0xe000023c38248000) 0 (cpu 3 task 
> 0xe00000b003d00000) 0 (cpu 4 task 0xe000023c38258000) 0 (cpu 5 task 
> 0xe00000b003d10000) 0 (cpu 6 task 0xe000023c38268000) 0 (cpu 7 task 
> 0xe00000b003d20000) 0 (cpu 8 task 0xe000023c382e8000) 0 (cpu 9 task 
> 0xe00000b003d30000) 0 (cpu 10 task 0xe000023c38380000) 0 (cpu 11 task 
> 0xe00000b003d40000)
> 
> 
> Backtrace of pid 1 (init)
> 
> Call Trace:
>  [<a000000100799bb0>] schedule+0x1bf0/0x1ec0
>                                 sp=e00000307bd178c0 bsp=e00000307bd11828
>  [<a000000100797b20>] __down+0x240/0x280
>                                 sp=e00000307bd179d0 bsp=e00000307bd117e8
>  [<a0000001003b8f10>] xfs_buf_iowait+0x50/0x80
>                                 sp=e00000307bd17a00 bsp=e00000307bd117c8

That down() probably wants a replug to precede it. Probably something
like:

        if (atomic_read(&bp->b_io_remaining))
                blk_replug_current_nested();

for xfs_buf_wait_unpin() and xfs_buf_lock(). Does this fix it?

diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
index f2bdf8b..1ef226e 100644
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -909,6 +909,8 @@ xfs_buf_lock(
 	xfs_buf_t		*bp)
 {
 	XB_TRACE(bp, "lock", 0);
+	if (atomic_read(&bp->b_io_remaining))
+		blk_replug_current_nested();
 	down(&bp->b_sema);
 	XB_SET_OWNER(bp);
 	XB_TRACE(bp, "locked", 0);
@@ -979,7 +981,7 @@ xfs_buf_wait_unpin(
 		set_current_state(TASK_UNINTERRUPTIBLE);
 		if (atomic_read(&bp->b_pin_count) == 0)
 			break;
-		schedule();
+		io_schedule();
 	}
 	remove_wait_queue(&bp->b_waiters, &wait);
 	set_current_state(TASK_RUNNING);
@@ -1291,6 +1293,8 @@ xfs_buf_iowait(
 	xfs_buf_t		*bp)
 {
 	XB_TRACE(bp, "iowait", 0);
+	if (atomic_read(&bp->b_io_remaining))
+		blk_replug_current_nested();
 	down(&bp->b_iodonesema);
 	XB_TRACE(bp, "iowaited", (long)bp->b_error);
 	return bp->b_error;
@@ -1682,6 +1686,7 @@ xfsbufd(
 	xfs_buf_t		*bp, *n;
 	struct list_head	*dwq = &target->bt_delwrite_queue;
 	spinlock_t		*dwlk = &target->bt_delwrite_lock;
+	int			count;
 
 	current->flags |= PF_MEMALLOC;
 
@@ -1697,6 +1702,7 @@ xfsbufd(
 		schedule_timeout_interruptible(
 			xfs_buf_timer_centisecs * msecs_to_jiffies(10));
 
+		count = 0;
 		age = xfs_buf_age_centisecs * msecs_to_jiffies(10);
 		spin_lock(dwlk);
 		list_for_each_entry_safe(bp, n, dwq, b_list) {
@@ -1716,6 +1722,7 @@ xfsbufd(
 						 _XBF_RUN_QUEUES);
 				bp->b_flags |= XBF_WRITE;
 				list_move_tail(&bp->b_list, &tmp);
+				count++;
 			}
 		}
 		spin_unlock(dwlk);
@@ -1730,6 +1737,8 @@ xfsbufd(
 
 		if (as_list_len > 0)
 			purge_addresses();
+		if (count)
+			blk_replug_current_nested();
 
 		clear_bit(XBT_FORCE_FLUSH, &target->bt_flags);
 	} while (!kthread_should_stop());
@@ -1786,6 +1795,9 @@ xfs_flush_buftarg(
 		xfs_buf_iostrategy(bp);
 	}
 
+	if (wait)
+		blk_replug_current_nested();
+
 	/*
 	 * Remaining list items must be flushed before returning
 	 */

-- 
Jens Axboe


  reply	other threads:[~2007-02-01 19:16 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-30  4:45 2.6.20-rc6-mm3 Andrew Morton
2007-01-30  4:50 ` 2.6.20-rc6-mm3 Jeff Garzik
2007-01-30  5:11   ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-30  9:56     ` 2.6.20-rc6-mm3 Evgeniy Polyakov
2007-01-30  8:16 ` 2.6.20-rc6-mm3 Sunil Naidu
2007-01-30  8:32   ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-30  9:06 ` 2.6.20-rc6-mm3 Olivier Galibert
2007-01-30  9:26   ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-30 18:47     ` 2.6.20-rc6-mm3 Olivier Galibert
2007-01-31  7:57     ` 2.6.20-rc6-mm3 Len Brown
2007-02-01  4:25     ` 2.6.20-rc6-mm3 Len Brown
2007-01-30 22:18 ` 2.6.20-rc6-mm3 Maciej Rutecki
2007-01-30 22:27   ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-31  0:55     ` 2.6.20-rc6-mm3 Karsten Wiese
2007-01-31 13:22       ` 2.6.20-rc6-mm3 Ingo Molnar
2007-01-31 14:25         ` 2.6.20-rc6-mm3 Karsten Wiese
2007-02-01  8:01           ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-01 10:44             ` 2.6.20-rc6-mm3 Karsten Wiese
2007-03-01 11:11               ` 2.6.20-rc6-mm3 Karsten Wiese
2007-02-03  0:37             ` 2.6.20-rc6-mm3 Pavel Machek
2007-02-01 13:03       ` [PATCH -mm] gtod persistent clock resume fix Thomas Gleixner
2007-01-31 11:54     ` 2.6.20-rc6-mm3 Maciej Rutecki
2007-02-01  4:10       ` 2.6.20-rc6-mm3 Len Brown
2007-02-01  4:17         ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-31  1:16   ` 2.6.20-rc6-mm3 Tilman Schmidt
2007-01-31  1:25     ` 2.6.20-rc6-mm3 Andrew Morton
2007-01-31 11:38       ` 2.6.20-rc6-mm3 Tilman Schmidt
2007-01-31 12:29         ` 2.6.20-rc6-mm3 Alexey Starikovskiy
2007-01-31 16:02           ` 2.6.20-rc6-mm3 Maciej Rutecki
2007-01-31 18:28           ` 2.6.20-rc6-mm3 Tilman Schmidt
2007-01-31 21:52 ` 2.6.20-rc6-mm3 Mattia Dongili
2007-01-31 23:21   ` 2.6.20-rc6-mm3 Mattia Dongili
2007-02-01 19:04     ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-01 19:36     ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-01 20:01       ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-01 21:11         ` 2.6.20-rc6-mm3 Mattia Dongili
2007-02-01 22:33           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-02 19:18             ` dynticks + iptables almost stops the boot process [was: Re: 2.6.20-rc6-mm3] Mattia Dongili
2007-02-02 20:27               ` Thomas Gleixner
2007-02-02 20:43                 ` Mattia Dongili
2007-02-06 16:48                   ` Ingo Molnar
2007-02-06 19:28                     ` Mattia Dongili
2007-02-06 23:12                       ` Tilman Schmidt
2007-02-06 23:17                         ` Thomas Gleixner
2007-02-07  1:01                           ` Andrew Morton
2007-02-07 19:33                             ` Ingo Molnar
2007-02-01 21:37         ` 2.6.20-rc6-mm3 Mattia Dongili
2007-02-01 20:24       ` 2.6.20-rc6-mm3 Mattia Dongili
2007-02-01  0:14 ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01  0:24   ` 2.6.20-rc6-mm3 Andrew Morton
2007-02-01  0:27     ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01  0:36       ` 2.6.20-rc6-mm3 Andrew Morton
2007-02-01  0:38         ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01  6:20         ` 2.6.20-rc6-mm3 David Chinner
2007-02-01  7:12           ` 2.6.20-rc6-mm3 Andrew Morton
2007-02-01 19:01             ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01 19:18               ` Jens Axboe [this message]
2007-02-01 20:18                 ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-01 20:26                   ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-01 23:02                     ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-05 12:02                       ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-05 12:17                         ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-05 12:56                           ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-05 18:20                             ` 2.6.20-rc6-mm3 Christoph Lameter
2007-02-05 18:34                               ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-02  4:08                 ` 2.6.20-rc6-mm3 David Chinner
2007-02-02  7:31                   ` 2.6.20-rc6-mm3 Jens Axboe
2007-02-01 18:24 ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-01 19:37   ` 2.6.20-rc6-mm3 Starikovskiy, Alexey Y
2007-02-01 20:29     ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-01 20:38       ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-02 14:22         ` 2.6.20-rc6-mm3 Starikovskiy, Alexey Y
2007-02-02 14:47           ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-02 14:50             ` 2.6.20-rc6-mm3 Starikovskiy, Alexey Y
2007-02-02 16:04               ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-03  7:30                 ` 2.6.20-rc6-mm3 Cedric Le Goater
2007-02-03  7:57                   ` 2.6.20-rc6-mm3 Starikovskiy, Alexey Y
2007-02-02 17:39 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 16:03 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 18:36   ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 18:45     ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 19:07       ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 19:55         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 20:20           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 20:40             ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 20:52               ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 20:56                 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 21:09                   ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 21:20                     ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 21:23                     ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 21:41                       ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 21:54                         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 22:08                           ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 22:42                             ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 22:56                               ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 23:04                                 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:14                                   ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 23:22                                     ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:28                                       ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 23:35                                         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:44                                           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 23:51                                           ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-07  2:46                                             ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:36                                       ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-07  1:12                                         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-07 14:53                                           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 23:37                                       ` 2.6.20-rc6-mm3 Ingo Molnar
2007-02-06 22:13                           ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 21:43                       ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 21:59                         ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 21:17               ` 2.6.20-rc6-mm3 Thomas Gleixner
2007-02-06 21:25                 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:15               ` 2.6.20-rc6-mm3 Rob Landley
2007-02-06 23:28                 ` 2.6.20-rc6-mm3 Daniel Walker
2007-02-06 23:55                   ` 2.6.20-rc6-mm3 Rob Landley
2007-02-06 22:11 ` [-mm patch] #ifdef ACPI_FUTURE_USAGE acpi_os_readable() Adrian Bunk
2007-02-06 22:12 ` [RFC: -mm patch] drivers/net/atl1/: possible cleanups Adrian Bunk
2007-02-07  0:19   ` Jay Cliburn
2007-02-07  0:22     ` Jeff Garzik
2007-02-07  0:24       ` J. K. Cliburn
2007-02-07  0:24     ` Adrian Bunk
2007-02-06 22:12 ` [-mm patch] drivers/scsi/aacraid/: cleanups Adrian Bunk
2007-02-06 22:12 ` [-mm patch] make gfs2_writepages() static Adrian Bunk
2007-02-07 10:50   ` Steven Whitehouse

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=20070201191857.GQ10305@kernel.dk \
    --to=jens.axboe@oracle.com \
    --cc=akpm@osdl.org \
    --cc=clameter@sgi.com \
    --cc=dgc@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --subject='Re: 2.6.20-rc6-mm3' \
    /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

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).