Thread (74 messages) 74 messages, 9 authors, 2011-11-12

Re: [PATCH 17/18] writeback: fix dirtied pages accounting on redirty

From: Wu Fengguang <hidden>
Date: 2011-09-07 01:18:46
Also in: linux-fsdevel, lkml

On Wed, Sep 07, 2011 at 08:22:22AM +0800, Jan Kara wrote:
On Tue 06-09-11 18:18:56, Peter Zijlstra wrote:
quoted
On Sun, 2011-09-04 at 09:53 +0800, Wu Fengguang wrote:
quoted
De-account the accumulative dirty counters on page redirty.

Page redirties (very common in ext4) will introduce mismatch between
counters (a) and (b)

a) NR_DIRTIED, BDI_DIRTIED, tsk->nr_dirtied
b) NR_WRITTEN, BDI_WRITTEN

This will introduce systematic errors in balanced_rate and result in
dirty page position errors (ie. the dirty pages are no longer balanced
around the global/bdi setpoints).
So wtf is ext4 doing? Shouldn't a page stay dirty until its written out?

That is, should we really frob around this behaviour or fix ext4 because
its on crack?
  Fengguang, could you please verify your findings with recent kernel? I
believe ext4 got fixed in this regard some time ago already (and yes, old
delalloc writeback code in ext4 was terrible).
Jan, attached is the results for 3.1-rc4, before and after this patchset.
The test case is ext4, 1 dd, bs=4k, dirty_bytes=1GB.

Judging from global_dirtied_written.png, the dirtied/written lines are
still departing away from each other...

Thanks,
Fengguang

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help