lkml.org 
[lkml]   [2010]   [Jun]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCHv5 00/16] kill unnecessary SB sync wake-ups + cleanups
Date
Hi,

here is the v5 of the SB sync wakups killing patches, the v4 submission can be
found here: http://marc.info/?l=linux-fsdevel&m=127479544728442&w=2

Changes since v4:

- use 'sb_mark_dirty()', 'sb_mark_clean()' and 'sb_is_dirty()' names as
per Andrew's request
- use lighter locking scheme requested by Al and Andrew and provided by
Nick Piggin
- various clean-ups as a result of validation of 's_dirt' usage in FSes
as was requested by Al. To be frank, my energy ended at some point, and
I did not really validate reiserfs, sysv, UDF and UFS. The former is very
sub-standard, and the latter are ancient code and I dared not touching it.

The structure of the patch series
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. The first patch introduces s_dirt wrappers and makes all FSes use them.
Previously I submitted per-FS patches, but now I've folded them all into
one.
2. Patch 3 implements the whole logic which prevents unnecessary wake-ups.

Then go various clean-ups which I have to do to get upstreamed :-) Note, the
changes described below do not go in exactly this order in the patch series.

3. I've cleaned up AFFS and tested it.
4. Removed unneeded (IMO) code from BFS and tested.
5. Due to races between ->write_super and entities which modify the SB, it
is possible to end up with a modified SB, but nevertheless marked as clean.
So I added some more memory barriers and fixed AFFS, exofs, ext2, ext4,
and HFS. Tested only AFFS.
6. Ancient FSes disrespect the wait flag in ->sync_fs(). They also do not
wait for the buffers in ->put_super(), which is wrong AFAIU, because we
are being unmounted, so we have to make sure the stuff was submitted
to the HW. I fix this in AFFS, HFS, and HFSPLUS.

It looks like sysv, UFS and UDF also do not wait for the buffers in
->put_super, but I did not dare modifying them... I already made too man
modifications in the code I do not know well enough.

Please, review the cleanups - I tested only AFFS and BFS (the rest is only
compile-tested), and I am not really sure the 'wait for buffers' changes are
correct.

--
Best Regards,
Artem Bityutskiy (Артём Битюцкий)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2010-06-06 16:55    [from the cache]
©2003-2011 Jasper Spaans