btree cleanups and unification
cover btree cleanups and unification
This is the full btree unficiation based on Dave's initial patches plus various cleanups. This second versions post now contains the complete btree refactoring, and passes XFSQA.
The two first patches from the first round have been merged, so they are not included anymore. In the reposted patches not much has changed, only the readahead helpers have been renamed and the tracing infrastructure has been improved a little.
The real news is the missing btree operations, including all the hairy ones. These have been reimplemented looking at the three original btrees and Daves code, in doubt going with the former. That means the small helpers to insert/remove/move records are gone now in favour of following the original code more closely. This fixed the one off error showing up in the intial refactoring.
There's a lot of new comments and empty lines, so by diffstat the new code isn't all that much smaller:
36 files changed, 6041 insertions(+), 7128 deletions(-)
but the (debug) binary modules is almost 15kb smaller:
text data bss dec hex filename 631577 4227 3092 638896 9bfb0 fs/xfs/xfs.ko.old 616929 4435 3124 624488 98768 fs/xfs/xfs.ko.btree
I have not run any benchmarks yet to see what the performance impact is, and I still have some ideas to optimize the code.
Quoted 3 lines · Christoph Hellwig
This is the full btree unficiation based on Dave's initial patches plus various cleanups. This second versions post now contains the complete btree refactoring, and passes XFSQA.
Cool. Are the first few patches unchanged from the ones I reviewed earlier?
Quoted 6 lines
The real news is the missing btree operations, including all the hairy ones. These have been reimplemented looking at the three original btrees and Daves code, in doubt going with the former. That means the small helpers to insert/remove/move records are gone now in favour of following the original code more closely. This fixed the one off error showing up in the intial refactoring.
I'll have a close look at this ;)
Quoted 4 lines
There's a lot of new comments and empty lines, so by diffstat the new code isn't all that much smaller:
36 files changed, 6041 insertions(+), 7128 deletions(-)
'bout the same as my original change series...
Quoted 5 lines
but the (debug) binary modules is almost 15kb smaller:
text data bss dec hex filename 631577 4227 3092 638896 9bfb0 fs/xfs/xfs.ko.old 616929 4435 3124 624488 98768 fs/xfs/xfs.ko.btree
And again, roughly the same. The difference will really be seen when we implement new btrees.....
Cheers,,
Dave.
Signature · 2 lines
Dave Chinner [email protected]
Quoted 7 lines · Dave Chinner
Quoted 3 lines · Christoph Hellwig
This is the full btree unficiation based on Dave's initial patches plus various cleanups. This second versions post now contains the complete btree refactoring, and passes XFSQA.
Cool. Are the first few patches unchanged from the ones I reviewed earlier?
As mentioned below only the trace and readahead patches changed a little bit.