Jan, On Tue, Nov 22, 2011 at 01:21:57PM +0100, Jan Kara wrote: > On Tue 22-11-11 17:21:11, Wu Fengguang wrote: > > On Tue, Nov 22, 2011 at 08:11:27AM +0800, Jan Kara wrote: > > > On Mon 21-11-11 21:03:45, Wu Fengguang wrote: > > > > When dd in 512bytes, generic_perform_write() calls > > > > balance_dirty_pages_ratelimited() 8 times for the same page, but > > > > obviously the page is only dirtied once. > > > > > > > > Fix it by accounting nr_dirtied at page dirty time. > > > Well, but after this change, the interface balance_dirty_ratelimited_nr() > > > is strange because the argument is only used for per-CPU ratelimiting and > > > not for per-task ratelimiting... > > > > Yeah I was vaguely aware of this... and still choose to ignore this > > since the patchset looked already forbiddingly large at the time ;) > > > > > So if you do this switch then I'd also > > > switch bdp_ratelimits to get consistent results and a clean interface and > > > completely kill balance_dirty_pages_ratelimited_nr(). > > > > Following your suggestions to change ratelimiting as well :) > > > > I'll do the interface change with a standalone patch. > OK. It looks worthwhile to consider a better scheme to reduce calls into balance_dirty_pages_ratelimited_nr() before doing the interface change. Currently that function is called on every page in generic_perform_write(). I have no clear idea for now, so would like to delay the interface change (after this patch). Thanks, Fengguang -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html