From: Wu Fengguang <fengguang.wu@intel.com>
To: Jan Kara <jack@suse.cz>
Cc: "linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Andrew Morton <akpm@linux-foundation.org>,
Christoph Hellwig <hch@lst.de>,
Dave Chinner <david@fromorbit.com>,
Greg Thelen <gthelen@google.com>,
Minchan Kim <minchan.kim@gmail.com>,
Vivek Goyal <vgoyal@redhat.com>,
Andrea Righi <arighi@develer.com>, linux-mm <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/5] writeback: dirty position control
Date: Wed, 17 Aug 2011 21:49:36 +0800 [thread overview]
Message-ID: <20110817134936.GA22484@localhost> (raw)
In-Reply-To: <20110817132347.GA6628@localhost>
> > > + if (x_intercept < limit) {
> > > + x_intercept = limit; /* auxiliary control line */
> > > + setpoint += span;
> > > + pos_ratio >>= 1;
> > > + }
> > And here you stretch the control area upto the global dirty limit. I
> > understand you maybe don't want to be really strict and cut control area at
> > bdi_thresh but your choice looks like too benevolent - when you have
> > several active bdi's with different speeds this will effectively erase
> > difference between them, won't it? E.g. with 10 bdi's (x_intercept -
> > bdi_dirty) / (x_intercept - setpoint) is going to be close to 1 unless
> > bdi_dirty really heavily exceeds bdi_thresh.
>
> Yes the auxiliary control line could be very flat (small slope).
>
> However it's not normal for the bdi dirty pages to fall into the
> range of auxiliary control line at all. And once it takes effect,
> the pos_ratio is at most 0.5 (which is the value at the connection
> point with the main bdi control line) which is strong enough to pull
> the dirty pages off the auxiliary bdi control line and into the scope
> of main bdi control line.
>
> The auxiliary control line is intended for bringing down the bdi_dirty
> of the USB key before 250s (where the "pos bandwidth" line keeps low):
>
> http://www.kernel.org/pub/linux/kernel/people/wfg/writeback/dirty-throttling-v6/1UKEY+1HDD-3G/ext4-4dd-1M-8p-2945M-20%25-2.6.38-rc5-dt6+-2011-02-22-09-46/balance_dirty_pages-pages.png
>
> After that the bdi_dirty will fluctuate around bdi_thresh and won't
> grow high and step into the scope of the auxiliary control line.
Note that the main/auxiliary bdi control lines won't take effect at
the same time: the main bdi control lines works around and under the
bdi setpoint, and the auxiliary line takes over in the higher scope up
to @limit.
In the 1UKEY+1HDD test case, the bdi_dirty of the UKEY rushes at the
free run stage when global dirty pages are smaller than (thresh+bg_thresh)/2.
So it will be initially under the control the auxiliary line. Hence the
dirtier task will progress at 1/4 to 1/2 of the UKEY's write bandwidth.
This will bring down the bdi_dirty reasonably fast while still allowing
the dirtier task to make some progress.
The connection point of the main/auxiliary control lines has pos_ratio=0.5.
After 250 second, the main bdi control line takes over, indicated by
the bdi_dirty fluctuating around bdi setpoint and the position rate
(green line) fluctuating around the base ratelimit(blue line).
Thanks,
Fengguang
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-08-17 13:49 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-16 2:20 [PATCH 0/5] IO-less dirty throttling v9 Wu Fengguang
2011-08-16 2:20 ` [PATCH 1/5] writeback: account per-bdi accumulated dirtied pages Wu Fengguang
2011-08-16 2:20 ` [PATCH 2/5] writeback: dirty position control Wu Fengguang
2011-08-16 19:41 ` Jan Kara
2011-08-17 13:23 ` Wu Fengguang
2011-08-17 13:49 ` Wu Fengguang [this message]
2011-08-17 20:24 ` Jan Kara
2011-08-18 4:18 ` Wu Fengguang
2011-08-18 4:41 ` Wu Fengguang
2011-08-18 19:16 ` Jan Kara
2011-08-24 3:16 ` Wu Fengguang
2011-08-19 2:53 ` Vivek Goyal
2011-08-19 3:25 ` Wu Fengguang
2011-08-16 2:20 ` [PATCH 3/5] writeback: dirty rate control Wu Fengguang
2011-08-16 2:20 ` [PATCH 4/5] writeback: per task dirty rate limit Wu Fengguang
2011-08-16 7:17 ` Andrea Righi
2011-08-16 7:22 ` Wu Fengguang
2011-08-16 2:20 ` [PATCH 5/5] writeback: IO-less balance_dirty_pages() Wu Fengguang
2011-08-19 2:06 ` Vivek Goyal
2011-08-19 2:54 ` Wu Fengguang
2011-08-19 19:00 ` Vivek Goyal
2011-08-21 3:46 ` Wu Fengguang
2011-08-22 17:22 ` Vivek Goyal
2011-08-23 1:07 ` Wu Fengguang
2011-08-23 3:53 ` Wu Fengguang
2011-08-23 13:53 ` Vivek Goyal
2011-08-24 3:09 ` Wu Fengguang
-- strict thread matches above, loose matches on Subject: below --
2011-08-06 8:44 [PATCH 0/5] IO-less dirty throttling v8 Wu Fengguang
2011-08-06 8:44 ` [PATCH 2/5] writeback: dirty position control Wu Fengguang
2011-08-08 13:46 ` Peter Zijlstra
2011-08-08 14:11 ` Wu Fengguang
2011-08-08 14:31 ` Peter Zijlstra
2011-08-08 22:47 ` Wu Fengguang
2011-08-09 9:31 ` Peter Zijlstra
2011-08-10 12:28 ` Wu Fengguang
2011-08-08 14:41 ` Peter Zijlstra
2011-08-08 23:05 ` Wu Fengguang
2011-08-09 10:32 ` Peter Zijlstra
2011-08-09 17:20 ` Peter Zijlstra
2011-08-10 22:34 ` Jan Kara
2011-08-11 2:29 ` Wu Fengguang
2011-08-11 11:14 ` Jan Kara
2011-08-16 8:35 ` Wu Fengguang
2011-08-12 13:19 ` Wu Fengguang
2011-08-10 21:40 ` Vivek Goyal
2011-08-16 8:55 ` Wu Fengguang
2011-08-11 22:56 ` Peter Zijlstra
2011-08-12 2:43 ` Wu Fengguang
2011-08-12 3:18 ` Wu Fengguang
2011-08-12 5:45 ` Wu Fengguang
2011-08-12 9:45 ` Peter Zijlstra
2011-08-12 11:07 ` Wu Fengguang
2011-08-12 12:17 ` Peter Zijlstra
2011-08-12 9:47 ` Peter Zijlstra
2011-08-12 11:11 ` Wu Fengguang
2011-08-12 12:54 ` Peter Zijlstra
2011-08-12 12:59 ` Wu Fengguang
2011-08-12 13:08 ` Peter Zijlstra
2011-08-12 13:04 ` Peter Zijlstra
2011-08-12 14:20 ` Wu Fengguang
2011-08-22 15:38 ` Peter Zijlstra
2011-08-23 3:40 ` Wu Fengguang
2011-08-23 10:01 ` Peter Zijlstra
2011-08-23 14:15 ` Wu Fengguang
2011-08-23 17:47 ` Vivek Goyal
2011-08-24 0:12 ` Wu Fengguang
2011-08-24 16:12 ` Peter Zijlstra
2011-08-26 0:18 ` Wu Fengguang
2011-08-26 9:04 ` Peter Zijlstra
2011-08-26 10:04 ` Wu Fengguang
2011-08-26 10:42 ` Peter Zijlstra
2011-08-26 10:52 ` Wu Fengguang
2011-08-26 11:26 ` Wu Fengguang
2011-08-26 12:11 ` Peter Zijlstra
2011-08-26 12:20 ` Wu Fengguang
2011-08-26 13:13 ` Wu Fengguang
2011-08-26 13:18 ` Peter Zijlstra
2011-08-26 13:24 ` Wu Fengguang
2011-08-24 18:00 ` Vivek Goyal
2011-08-25 3:19 ` Wu Fengguang
2011-08-25 22:20 ` Vivek Goyal
2011-08-26 1:56 ` Wu Fengguang
2011-08-26 8:56 ` Peter Zijlstra
2011-08-26 9:53 ` Wu Fengguang
2011-08-29 13:12 ` Peter Zijlstra
2011-08-29 13:37 ` Wu Fengguang
2011-09-02 12:16 ` Peter Zijlstra
2011-09-06 12:40 ` Peter Zijlstra
2011-08-24 15:57 ` Peter Zijlstra
2011-08-25 5:30 ` Wu Fengguang
2011-08-23 14:36 ` Vivek Goyal
2011-08-09 2:08 ` Vivek Goyal
2011-08-16 8:59 ` Wu Fengguang
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=20110817134936.GA22484@localhost \
--to=fengguang.wu@intel.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=arighi@develer.com \
--cc=david@fromorbit.com \
--cc=gthelen@google.com \
--cc=hch@lst.de \
--cc=jack@suse.cz \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan.kim@gmail.com \
--cc=vgoyal@redhat.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 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).