From: Sonny Rao <sonny@burdell.org>
To: Bryan Henderson <hbryan@us.ibm.com>
Cc: Anton Altaparmakov <aia21@cam.ac.uk>,
Andrew Morton <akpm@osdl.org>,
linux-fsdevel@vger.kernel.org,
linux-fsdevel-owner@vger.kernel.org, linux-xfs@oss.sgi.com,
viro@parcelfarce.linux.theplanet.co.uk
Subject: Re: Advice sought on how to lock multiple pages in ->prepare_write and ->writepage
Date: Tue, 1 Feb 2005 11:49:48 -0500 [thread overview]
Message-ID: <20050201164948.GA3084@kevlar.burdell.org> (raw)
In-Reply-To: <OFC18FDA30.8543BC92-ON88256F9B.00067E3E-88256F9B.00088203@us.ibm.com>
On Mon, Jan 31, 2005 at 05:32:31PM -0800, Bryan Henderson wrote:
> Thanks for the numbers, though there are enough variables here that it's
> hard to make any hard conclusions.
I agree, I just throught the data was interesting.
> When I've seen these comparisons in the past, it turned out to be one of
> two things:
>
> 1) The system with the smaller I/Os (I/O = unit seen by the device) had
> more CPU time per megabyte in the code path to start I/O, so that it
> started less I/O. The small I/Os are a consequence of the lower
> throughput, not a cause. You can often rule this out just by looking at
> CPU utilization.
Actually in this case, I was running a single threaded test on an
8-way machine. So, the flushing should have been able to happen on a
different (mostly dedicated) CPU from the application that was writing.
In this case, the differences in filesystems was probably the cause.
What might be a better test is to take JFS, and "hobble" it so that it
won't submit multi-page BIOs (i.e. kill it's writepages aop)
> 2) The system with the smaller I/Os had a window tuning problem in which
> it was waiting for previous I/O to complete before starting more, with
> queues not full, and thus starting less I/O. Some devices, with good
> intentions, suck the Linux queue dry, one tiny I/O at a time, and then
> perform miserably processing those tiny I/Os. Properly tuned, the device
> would buffer fewer I/Os and thus let the queues build inside Linux and
> thus cause Linux to send larger I/Os.
>
> People have done ugly queue plugging algorithms to try to defeat this
> queue sucking by withholding I/O from a device willing to take it. Others
> defeat it by withholding I/O from a willing Linux block layer, instead
> saving up I/O and submitting it in large bios.
Sure, it seems to work well in practice. We've played a little bit
with adjusting the plugging/unplugging thresholds, and in general,
playing with them either made things worse or simply had no effect.
Sonny
--
IBM LTC Kernel Perf.
next prev parent reply other threads:[~2005-02-01 16:49 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-27 10:48 Advice sought on how to lock multiple pages in ->prepare_write and ->writepage Anton Altaparmakov
2005-01-28 0:58 ` Andrew Morton
2005-01-28 5:06 ` Nathan Scott
2005-01-28 11:08 ` Anton Altaparmakov
2005-01-28 22:53 ` Bryan Henderson
2005-01-31 22:00 ` Nathan Scott
2005-01-31 23:46 ` Bryan Henderson
2005-02-01 0:10 ` Sonny Rao
2005-02-01 1:32 ` Bryan Henderson
2005-02-01 16:49 ` Sonny Rao [this message]
2005-02-01 1:29 ` Matthew Wilcox
2005-01-28 10:43 ` Anton Altaparmakov
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=20050201164948.GA3084@kevlar.burdell.org \
--to=sonny@burdell.org \
--cc=aia21@cam.ac.uk \
--cc=akpm@osdl.org \
--cc=hbryan@us.ibm.com \
--cc=linux-fsdevel-owner@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-xfs@oss.sgi.com \
--cc=viro@parcelfarce.linux.theplanet.co.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox