Updated -aa VM patches
Slightly reworked, and a lot more testing. The diffs against 2.4.19-pre4 are at
http://www.zip.com.au/~akpm/linux/patches/2.4/2.4.19-pre4/aa3/
- Removed the double underscores which offended hch.
- Shuffled the order so that zone_accounting.patch comes immediately before swap_out.patch. This is the correct ordering and the patch series now works OK at all steps.
- I added aa-230-free_zone_bhs.patch to the series.
The latter is code which purportedly fixes the "ZONE_NORMAL full of buffer_heads" problem. I wasn't able to reproduce this with a 15:1 highmem:normal split. But the problem is real.
This piece of code is not a thing of beauty, but I can't think of a different way of fixing the problem, and nobody else has proposed a different way, and the problem which it addresses is a box-killer. A killer of $100,000 boxes, indeed. It has zilch performance impact on lesser machines (I instrumented it), it is stable and I think it should go in.
I haven't done anything about the nr_dirty-doesn't-do-anything issue. The code as it stands works well. The management of writeback and dirty memory is the best I've ever seen in Linux. Sure, maybe we can get some additional benefit from making nr_dirty work as originally intended. But that's a new feature which can potentially have subtle effects. Now is not the time to be fiddling with it, somewhat invalidating all the testing which Andrea, SuSE, myself and others have performed.
The other outstanding issue is the icache and dcache shrinkage ratios. Again, I believe that tuning these should be a separate effort. It's not causing any obvious problems.
Proposed merge timing is:
writeback changes:
aa-010-show_stack.patch
aa-020-sync_buffers.patch
aa-030-writeout_scheduling.patch
aa-040-touch_buffer.patchVM changes:
aa-093-vm_tunables.patch
aa-095-zone_accounting.patch
aa-096-swap_out.patch
aa-100-local_pages.patch
aa-120-try_to_free_pages_nozone.patchThe rest:
aa-140-misc_junk.patch
aa-150-read_write_tweaks.patch
aa-160-lru_release_check.patch
aa-170-drain_cpu_caches.patch
aa-180-activate_page_cleanup.patch
aa-190-block_flushpage_check.patch
aa-200-active_page_swapout.patch
aa-230-free_zone_bhs.patch-
Quoted 2 lines · In article <[email protected]> you wrote:
writeback changes:
aa-010-show_stack.patch
The ifdef-mania in this patch is realy ugly - I'd rather prefer to make the code use show_stack unconditionally and let the currently non-conforming ports implement it, even it's is a noop.