From: Ethan Solomita <solo@google.com>
To: Christoph Lameter <clameter@sgi.com>,
a.p.zijlstra@chello.nl, linux-mm@kvack.org
Cc: Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 3/6] cpuset write throttle
Date: Tue, 02 Oct 2007 17:38:53 -0700 [thread overview]
Message-ID: <4702E49D.2030206@google.com> (raw)
In-Reply-To: <20070914161517.5ea3847f.akpm@linux-foundation.org>
Andrew Morton wrote:
> On Tue, 11 Sep 2007 18:39:27 -0700
> Ethan Solomita <solo@google.com> wrote:
>
>> Make page writeback obey cpuset constraints
>
> akpm:/usr/src/25> pushpatch
> patching file mm/page-writeback.c
> Hunk #1 FAILED at 103.
> Hunk #2 FAILED at 129.
> Hunk #3 FAILED at 166.
> Hunk #4 FAILED at 252.
> Hunk #5 FAILED at 267.
> Hunk #6 FAILED at 282.
> Hunk #7 FAILED at 301.
> Hunk #8 FAILED at 313.
> Hunk #9 FAILED at 329.
> Hunk #10 succeeded at 563 (offset 175 lines).
> Hunk #11 FAILED at 575.
> Hunk #12 FAILED at 607.
> 11 out of 12 hunks FAILED -- saving rejects to file mm/page-writeback.c.rej
> Failed to apply cpuset-write-throttle
>
> :(
>
>
> Huge number of rejects against Peter's stuff. Please redo for next -mm.
I've been looking at how to merge my cpuset write throttling changes
with Peter's per-BDI write throttling changes that have just been taken
by akpm. (Quick simplifying summary: my proposed patchset will only
throttle a process based upon dirty pages in the nodes to which the
process has access, as limited by cpuset's mems_allowed, thus protecting
one cpuset from the dirtying tendencies of other cpusets)
This is essential if cpusets are to isolate tasks from each other, so
we need to find a way to make it work with per-BDI. Theoretically we
could track of the per-BDI information within per-node structures
instead of globally, but that could lead to a scary increase in code
complexity and CPU time spent in get_dirty_limits. We don't want the
disk to finish flushing all its pages to disk before we calculate the
dirty limit. 8)
We could keep my changes and Peter's changes completely independent
calculations, and make it an "or", i.e. the caller of get_dirty_limits
will decide to throttle if either the per-BDI stats signal a throttling
or if the per-cpuset stats signal a throttling.
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.
If we used "and" instead of "or", i.e. the caller is only throttled if
get_dirty_limits would throttle because of both per-BDI stats and
per-cpuset stats we make my cpusets case happy, but in the above
scenario the other cpuset can continue to dirty an overly-dirtied BDI
until they hit their own cpuset limits.
I'm hoping to get some input from Christoph, Peter, and anyone else who
can think of a good way to bring this all together.
-- Ethan
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-10-03 0:38 UTC|newest]
Thread overview: 41+ 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:32 ` [PATCH 1/6] cpuset write dirty map Ethan Solomita
2007-07-17 21:33 ` [PATCH 2/6] cpuset write pdflush nodemask Ethan Solomita
2007-07-17 21:34 ` [PATCH 3/6] cpuset write throttle Ethan Solomita
2007-07-17 21:35 ` [PATCH 4/6] cpuset write vmscan Ethan Solomita
2007-07-17 21:36 ` [PATCH 5/6] cpuset write vm writeout Ethan Solomita
2007-07-17 21:37 ` [PATCH 6/6] cpuset dirty limits Ethan Solomita
2007-07-23 20:18 ` [PATCH 0/6] cpuset aware writeback Christoph Lameter
2007-07-23 21:30 ` Ethan Solomita
2007-07-23 21:53 ` Christoph Lameter
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:47 ` Satyam Sharma
2007-09-15 0:07 ` Andrew Morton
2007-09-15 0:16 ` Satyam Sharma
2007-09-17 18:37 ` Mike Travis
2007-09-17 19:10 ` Christoph Lameter
2007-09-19 0:51 ` Ethan Solomita
2007-09-19 2:14 ` Andrew Morton
2007-09-19 17:08 ` 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:39 ` [PATCH 3/6] cpuset write throttle Ethan Solomita
[not found] ` <20070914161517.5ea3847f.akpm@linux-foundation.org>
2007-10-03 0:38 ` Ethan Solomita [this message]
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
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:41 ` [PATCH 5/6] cpuset write vm writeout Ethan Solomita
2007-09-12 1:42 ` [PATCH 6/6] cpuset dirty limits Ethan Solomita
2007-09-14 23:15 ` Andrew Morton
2007-09-17 19:00 ` Christoph Lameter
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=4702E49D.2030206@google.com \
--to=solo@google.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=clameter@sgi.com \
--cc=linux-mm@kvack.org \
/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;
as well as URLs for NNTP newsgroup(s).