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
next prev parent 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).