From: Andrew Morton <akpm@digeo.com>
To: "Theodore Ts'o" <tytso@mit.edu>
Cc: Manish Lachwani <manish@Zambeel.com>, linux-kernel@vger.kernel.org
Subject: Re: 2.4.17 SMP hangs ..
Date: Tue, 26 Nov 2002 08:13:27 -0800 [thread overview]
Message-ID: <3DE39DA7.EA79AF83@digeo.com> (raw)
In-Reply-To: 20021126152238.GA4408@think.thunk.org
Theodore Ts'o wrote:
>
> On Wed, Nov 20, 2002 at 10:03:50PM -0800, Andrew Morton wrote:
> > Manish Lachwani wrote:
> > >
> > > I am seeing system hangs with 2.4.17 SMP kernel when doing mke2fs accros 12
> > > drives in parallel. However, the hangs only occur when the I/O rate from
> > > vmstat is high:
> > >
> >
> > Quite possibly it has not hung. You just need to wait half an
> > hour or so.
> >
> > The algorithm isn't very good.
>
> [Catching up lkml mail after the IETF meeting....]
>
> Try setting the environment variable "MKE2FS_SYNC" to a value such as
> 10. This will cause mke2fs to force a sync after writing out every 10
> block groups worth of inode tables.
That will fix it.
> If this fixes the problem, then it means that the kernel isn't
> handling write throttling correctly, and the system is thrashing
> itself to death.
Nah, it's __block_fsync(). That function has to write buffers against
a particular device. So it searches the global buffer LRU for 32 buffers
against the nominated device, drops the lock, writes the buffers, then
searches again.
So the search complexity is O(n*n/32). Which means that when you have a
lot of dirty buffers against different devices on the queue the CPU cost
simply explodes.
One workaround is to use sync rather than fsync - because sync uses NODEV
and doesn't have to search past buffers from uninteresting devices.
Another is to do what you've done.
Probably, just syncing the buffers at i_dirty_data_buffers would suffice.
That would fix it.
next prev parent reply other threads:[~2002-11-26 16:06 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-21 5:28 2.4.17 SMP hangs Manish Lachwani
2002-11-21 6:03 ` Andrew Morton
2002-11-26 15:22 ` Theodore Ts'o
2002-11-26 16:13 ` Andrew Morton [this message]
2002-11-21 6:33 ` Andre Hedrick
2002-11-22 12:00 ` William Lee Irwin III
-- strict thread matches above, loose matches on Subject: below --
2002-11-22 22:30 Manish Lachwani
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=3DE39DA7.EA79AF83@digeo.com \
--to=akpm@digeo.com \
--cc=linux-kernel@vger.kernel.org \
--cc=manish@Zambeel.com \
--cc=tytso@mit.edu \
/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.