2.6.13-ck1

From: Con Kolivas
Date: Mon Aug 29 2005 - 02:13:52 EST


These are patches designed to improve system responsiveness and interactivity.
It is configurable to any workload but the default ck* patch is aimed at the
desktop and ck*-server is available with more emphasis on serverspace.


Apply to 2.6.13
http://ck.kolivas.org/patches/2.6/2.6.13/2.6.13-ck1/patch-2.6.13-ck1.bz2
or development version:
http://ck.kolivas.org/patches/2.6/2.6.13/2.6.13-ck1/patch-2.6.13-ck1+.bz2

or server version:
http://ck.kolivas.org/patches/2.6/2.6.13/2.6.13-ck1/patch-2.6.13-ck1-server.bz2


web:
http://kernel.kolivas.org
all patches:
http://ck.kolivas.org/patches/
Split patches available.


Changes since 2.6.12-ck6:

Changed:
-2.6.12_to_staircase11.3.diff
+2.6.13_to_staircase12.diff
Minor cleanups. Restore 10ms round robin intervals. 5ms, while giving better
interactive feel, caused problems on dual core amd64 and 250Hz (for
reasons that I have yet to track down). The ck1+ patch has 5ms RR intervals.

-smp-nice-support6.diff
-smpnice6-smpnice7.diff
+smp-nice-support7.diff
Rollup

-batch_ionice.diff
+isobatch_ionice2.diff
Update the link between i/o priorities and SCHED_ISO

-mapped_watermark3.diff
This has been replaced with the split out patches that build on this work:

+vm-mapped.diff
Turn the "swappiness" knob into one with well defined semantics. Rename it
"mapped" to correspond directly with the percentage of mapped ram or
"applications" as users think of it. Currently the swappiness algorithm can
easily lead to swapping situations on simple file copies due to the distress
algorithm which too easily overrides the swappiness value. Add a
"hardmaplimit" tunable, on by default, which only allows the vm to override
the "mapped" tunable when distress is at its greatest to prevent false
out-of-memory situations.

+vm-lots_watermark.diff
The vm currently performs scanning when allocating ram once the watermarks
are below the pages_low value and tries to restore them to the pages_high
watermark. The disadvantage of this is that we are scanning most aggresssively
at the same time we are allocating ram regardless of the stress the vm is
under. Add a pages_lots watermark and allow the watermark to be relaxed
according to the stress the vm is at the time (according to the priority
value). Thus we have more in reserve next time we are allocating ram and end
up scanning less aggresssively.


Added:
+sched-iso3.1.patch
Here is a complete rewrite of the SCHED_ISO code. Having dropped SCHED_ISO in
the stable series in preference for RT RLIMITS it was clear that there is
still indication for SCHED_ISO for the following reasons:
It provides real-time performance without risking starvation/DoS
It is much easier to set up than RT RLIMITS without any knowledge and you can
benefit from it without knowing anything about it (unprivileged tasks trying
to start real time get demoted to SCHED_ISO)
Userspace support for it is here and now

This version of SCHED_ISO is actually much more robust than the one in
previous -ck kernels which just had a lowish latency version of SCHED_NORMAL.
SCHED_ISO tasks now actually run like real time tasks at the equivalent
priority as nice -20 tasks unless they use more than 70% of the cpu for a
rolling 3 second time period. Then they're demoted to behave like SCHED_NORMAL
tasks.

+vm-background_scan.diff
Add a background scanning timer to restore the watermarks to the pages_lots
level and only call on it if kswapd has not been called upon for the last 5
seconds. This allows us to balance all zones to the more generous pages_lots
watermark at a time unrelated to page allocation thus leading to lighter
levels of vm load when called upon under page allocation.

+pdflush-tweaks.patch
The speed we write out dirty data to disk can clash with the average time disk
journals write out. This tweaks it to write out dirty data slightly more
frequently and minimise prolonged write starvation.

+hz-default_values.patch
Hz is now configurable, so set some useful defaults as 250 is no good to
either desktop or server. Set 1000 for most desktop architectures (or 100 in
ck-server).

+2613ck1-version.diff
Version


Rolled into mainline or above patches or removed:
-cfq-2.6.12-mm1.patch
-sched-fix_up_build.patch
-cfq-ts-2.diff
-cfq-ts-4.diff
-s11.3_s11.4.diff
-s11.4_s11.6.diff
-patch-2.6.12.5.bz2
-2612ck6-version.diff


In 2.6.13-ck1+ only:
+sched-staircase12_tweak.patch
As mentioned above, set round robin intervals to 5ms (unsuitable on some
hardware). Please try and if you have problems, email me with information.

+vm-swap-prefetch.patch
This patch stores a list of ram that is put to swap and if the memory
subsystem is idle for a time it starts swapping the ram pages back in gently
in the reverse order they went out. The idea is that when you come back to
your pc after it has been idle for a while, if any applications have been
swapped out they should have swapped back in quietly. It does not delete the
page entries from the swap so that if there is any stress, these pages can
effectively be swapped back out for free without further disk access. The
patch is still new so has had limited testing only. Please test and report
back. This depends on the previous 2 vm patches to patch cleanly.


Full patchlist:
sched-run_normal_with_rt_on_sibling.diff
2.6.13_to_staircase12.diff
schedrange.diff
schedbatch2.9.diff
sched-iso3.1.patch
smp-nice-support7.diff
1g_lowmem1_i386.diff
defaultcfq.diff
isobatch_ionice2.diff
rt_ionice.diff
pdflush-tweaks.patch
hz-default_values.patch
vm-mapped.diff
vm-lots_watermark.diff
vm-background_scan.diff
2613ck1-version.diff
vm-swap-prefetch.patch
sched-staircase12_tweak.patch


Cheers,
Con Kolivas

Attachment: pgp00000.pgp
Description: PGP signature