[RFC PATCH v2 0/3] mm/fs: Implement faster stable page writes on filesystems

Darrick J. Wong darrick.wong at oracle.com
Thu Nov 1 03:58:06 EDT 2012

Hi all,

This patchset makes some key modifications to the original 'stable page writes'
patchset.  First, it provides users (devices and filesystems) of a
backing_dev_info the ability to declare whether or not it is necessary to
ensure that page contents cannot change during writeout, whereas the current
code assumes that this is true.  Second, it relaxes the wait_on_page_writeback
calls so that they only occur if something needs it.  Third, it fixes up (most)
of the remaining filesystems to use this improved conditional-wait logic in the
hopes of providing stable page writes on all filesystems.

It is hoped that (for people not using checksumming devices, anyway) this
patchset will give back unnecessary performance decreases since the original
stable page write patchset went into 3.0.  It seems possible, though, that iscsi
and raid5 may wish to use the new stable page write support to enable zero-copy

Unfortunately, it seems that ext3 is still broken wrt stable page writes.  One
workaround would be to use ext4 instead, or avoid the use of ext3.ko + DIF/DIX.
Hopefully it doesn't take long to sort out.

Another thing I noticed is that there are several filesystems that call
wait_on_page_writeback before returning VM_FAULT_LOCKED in their page_mkwrite
delegates.  It might be possible to convert some of these to
wait_for_stable_pages unless there's some other reason that we always want to
wait for writeback.

Finally, if a filesystem wants the VM to help it provide stable pages, it's now
possible to use the *_require_stable_pages() functions to turn that on.  It
might be useful for checksumming data blocks during write.

This patchset has been lightly tested on 3.7.0-rc3 on x64.


More information about the linux-mtd mailing list