page fault scalability patchsets update: prezeroing, prefaulting

Christoph Lameter
2005-02-17T00:57:47Z

I thought I save myself the constant crossposting of large amounts of
patches. Patches, documentation, test results etc are available at

http://oss.sgi.com/projects/page_fault_performance/

Changes:
- Performance tests for all patchsets (i386 single processor,
Altix 8 processors and Altix 128 processors)
- Archives of patches so far
- Some docs (still needs work)
- Patches against 2.6.11-rc4-bk4

Patch specific:

atomic operations for page faults (V17)

- Avoid incrementing page count for page in do_wp_page (see discussion
with Nick Piggin on last patchset)

prezeroing (V7)

- set /proc/sys/vm/scrub_load to 1 by default to avoid slight performance
loss during kernel compile on i386
- Scrubd needs to be configured in kernel configuration as an experimental
feature.
- Patch still follows kswapd's method to bind node specific scrubd daemons
to each NUMA node. Cannot find any new infrastructure to assign tasks to
certain nodes. kthread_bind() binds to single cpu and not to a NUMA
node. Guess other API work would have to be first done to realize
Andrews proposed approach.

prefaulting (V5)

- Set default for /proc/sys/vm/max_prealloc_order to 1 to avoid
overallocating pages which led to a performance loss in some
situations.

This is pretty complex thing to manage so please tell me if I missed
anything ...