public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
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.

  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