Can you please consider this patch series for 2.6.35? If you don't
want the tracing at this stage of the release process, I can redo
the series with just the bug fixes. However, given the regularity
with which we break the writeback code in subtle ways, the tracing
is probably just as important as the bug fixes.
This series contains the initial writeback tracing patches from
Jens, as well as the extensions I added to provide visibility into
writeback control structures as the are used by the writeback code.
The visibility given is sufficient to understand what is happening
in the writeback path - what path is writing data, what path is
blocking on congestion, etc, and to determine the differences in
behaviour for different sync modes and calling contexts. This
tracing really needs to be integrated into mainline so that anyone
can improve the tracing as they use it to track down problems in our
convoluted writeback paths.
The remaining patches are fixes to problems that the new tracing
- converted strncpy to strlcpy
- remove stale information from commit message for nr_to_write fixup.
- added comment to tracepoint creation to explain the unusual
placement of the tracepoint header file include.
- separated out ->writepage tracepoint addition into it's own patch.
- dropped ext4 write_cache_pages separation as it is now in mainline.
- removed ext4 tracing references to wbc->no_nrwrite_index_update as they
weren't removed in mainline.
- fixed commit message for write_cache_pages patch
- added more information to commit message for sync hold-off fixup.
- included ext4 write_cache_pages separation patch from Ted Ts'o.
- moved CREATE_TRACE_POINTS into fs-writeback.c as suggested by
- moved include of trace/events/writeback.h until after structure
definitions in fs-writeback.c
- manually revert changes made to write_cache_pages() in
17bc6c30cf6bfffd816bdc53682dd46fc34a2cf4 that caused the
regression. This restores the convention that if the fs writes
back more than a single page, it subtracts (nr_written - 1) from
wbc->nr_to_write, as suggested by Andrew Morton.
- added patch to prevent sync from looping in write_cache_pages
chasing a moving tail when an appending write workload is running
concurrently with sync.
fs/fs-writeback.c | 50 ++++++--
fs/xfs/linux-2.6/xfs_aops.c | 8 --
include/linux/writeback.h | 9 --
include/trace/events/ext4.h | 5 +-
include/trace/events/writeback.h | 252 ++++++++++++++++++++++++++++++++++++++
mm/backing-dev.c | 3 +
mm/page-writeback.c | 35 ++++--
7 files changed, 321 insertions(+), 41 deletions(-)