From: Peter Zijlstra <a.p.zijlstra@chello.nl>
To: Christoph Lameter <clameter@sgi.com>
Cc: Ethan Solomita <solo@google.com>,
linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 3/6] cpuset write throttle
Date: Thu, 04 Oct 2007 09:37:30 +0200 [thread overview]
Message-ID: <1191483450.13204.96.camel@twins> (raw)
In-Reply-To: <Pine.LNX.4.64.0710032055120.4560@schroedinger.engr.sgi.com>
[-- Attachment #1: Type: text/plain, Size: 2301 bytes --]
On Wed, 2007-10-03 at 20:56 -0700, Christoph Lameter wrote:
> On Wed, 3 Oct 2007, Ethan Solomita wrote:
>
> > >> Unfortunately this eliminates one of the main reasons for the
> > >> per-cpuset throttling. If one cpuset is responsible for pushing one
> > >> disk/BDI to its dirty limit, someone in another cpuset can get throttled.
> > >
> > > I think that is acceptable. All processes that write to one disk/BDI must
> > > be affected by congestion on that device. We may have to deal with
> > > fairness issues later if it indeed becomes a problem.
> >
> > We do see a fairness issue. We've seen delays on the order of 100
> > seconds for just a few writes to disk, and latency is important to us.
> > Perhaps we can detect that the bdi already has a long queue of pending
> > writes and not force more writes at this time so long as the per-cpuset
> > dirty threshold is not too high.
>
> Arghy.
clameter gone pirate. Its just that you're a few weeks late :-)
Perhaps you can keep a proportion in the cpu-set, and do a similar trick
that the process proportions do.
currently:
limit = total_limit * p_bdi * (1 - p_task/8)
suggestion:
limit = total_limit * p_bdi * (1 - p_task/8) * (1 - p_cpuset/4)
That would give a very busy cpuset a limit 1/4 lower than an idle
cpu-set, thereby the idle cpu-set can do light traffic before getting
throttled.
p_bdi is ratio of writeout completions
p_task is ratio of dirtiers
p_cpuset would also be a ratio of dirtiers
Another option would be:
limit = cpuset_limit * p_bdi * (1 - p_task/8)
Each cpuset gets a pre-proportioned part of the total limit. Overlapping
cpusets would get into some arguments though.
Hmm, maybe combine the two:
limit = cpuset_limit * p_bdi * (1 - p_task/8) * (1 - p_cpuset/4)
> > On a side note, get_dirty_limits() now returns two dirty counts, both
> > the dirty and bdi_dirty, yet its callers only ever want one of those
> > results. Could we change get_dirty_limits to only calculate one dirty
> > value based upon whether bdi is non-NULL? This would save calculation of
> > regular dirty when a bdi is passed.
>
> Hmmmm.... I think Peter needs to consider this.
we need the total anyway, its where we start calculating the bdi thing
from.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2007-10-04 7:37 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-17 21:23 [PATCH 0/6] cpuset aware writeback Ethan Solomita
2007-07-17 21:23 ` Ethan Solomita
2007-07-17 21:32 ` [PATCH 1/6] cpuset write dirty map Ethan Solomita
2007-07-17 21:32 ` Ethan Solomita
2007-07-17 21:33 ` [PATCH 2/6] cpuset write pdflush nodemask Ethan Solomita
2007-07-17 21:33 ` Ethan Solomita
2007-07-17 21:34 ` [PATCH 3/6] cpuset write throttle Ethan Solomita
2007-07-17 21:34 ` Ethan Solomita
2007-07-17 21:35 ` [PATCH 4/6] cpuset write vmscan Ethan Solomita
2007-07-17 21:35 ` Ethan Solomita
2007-07-17 21:36 ` [PATCH 5/6] cpuset write vm writeout Ethan Solomita
2007-07-17 21:36 ` Ethan Solomita
2007-07-17 21:37 ` [PATCH 6/6] cpuset dirty limits Ethan Solomita
2007-07-17 21:37 ` Ethan Solomita
2007-07-23 20:18 ` [PATCH 0/6] cpuset aware writeback Christoph Lameter
2007-07-23 20:18 ` Christoph Lameter
2007-07-23 21:30 ` Ethan Solomita
2007-07-23 21:30 ` Ethan Solomita
2007-07-23 21:53 ` Christoph Lameter
2007-07-23 21:53 ` Christoph Lameter
2007-09-12 1:32 ` Ethan Solomita
2007-09-12 1:32 ` Ethan Solomita
2007-09-12 1:36 ` [PATCH 1/6] cpuset write dirty map Ethan Solomita
2007-09-14 23:15 ` Andrew Morton
2007-09-14 23:15 ` Andrew Morton
2007-09-14 23:47 ` Satyam Sharma
2007-09-14 23:47 ` Satyam Sharma
2007-09-15 0:07 ` Andrew Morton
2007-09-15 0:07 ` Andrew Morton
2007-09-15 0:16 ` Satyam Sharma
2007-09-15 0:16 ` Satyam Sharma
2007-09-17 18:37 ` Mike Travis
2007-09-17 18:37 ` Mike Travis
2007-09-17 19:10 ` Christoph Lameter
2007-09-17 19:10 ` Christoph Lameter
2007-09-19 0:51 ` Ethan Solomita
2007-09-19 0:51 ` Ethan Solomita
2007-09-19 2:14 ` Andrew Morton
2007-09-19 2:14 ` Andrew Morton
2007-09-19 17:08 ` Christoph Lameter
2007-09-19 17:08 ` Christoph Lameter
2007-09-19 17:06 ` Christoph Lameter
2007-09-19 17:06 ` Christoph Lameter
2007-09-12 1:38 ` [PATCH 2/6] cpuset write pdflush nodemask Ethan Solomita
2007-09-12 1:38 ` Ethan Solomita
2007-09-12 1:39 ` [PATCH 3/6] cpuset write throttle Ethan Solomita
2007-09-12 1:39 ` Ethan Solomita
[not found] ` <20070914161517.5ea3847f.akpm@linux-foundation.org>
2007-10-03 0:38 ` Ethan Solomita
2007-10-03 17:46 ` Christoph Lameter
2007-10-03 20:46 ` Ethan Solomita
2007-10-04 3:56 ` Christoph Lameter
2007-10-04 7:37 ` Peter Zijlstra [this message]
2007-10-04 7:56 ` Paul Jackson
2007-10-04 8:15 ` Peter Zijlstra
2007-10-04 8:25 ` Peter Zijlstra
2007-10-04 9:06 ` Paul Jackson
2007-10-04 9:04 ` Paul Jackson
2007-10-05 19:34 ` Ethan Solomita
2007-09-12 1:40 ` [PATCH 4/6] cpuset write vmscan Ethan Solomita
2007-09-12 1:40 ` Ethan Solomita
2007-09-12 1:41 ` [PATCH 5/6] cpuset write vm writeout Ethan Solomita
2007-09-12 1:41 ` Ethan Solomita
2007-09-12 1:42 ` [PATCH 6/6] cpuset dirty limits Ethan Solomita
2007-09-12 1:42 ` Ethan Solomita
2007-09-14 23:15 ` Andrew Morton
2007-09-14 23:15 ` Andrew Morton
2007-09-17 19:00 ` Christoph Lameter
2007-09-17 19:00 ` Christoph Lameter
2007-09-19 0:23 ` Ethan Solomita
2007-09-19 0:23 ` Ethan Solomita
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=1191483450.13204.96.camel@twins \
--to=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=linux-mm@kvack.org \
--cc=solo@google.com \
/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.