2.6.1-ck3 contains: O21int - Small interactivity fix (in mainline 2.6.2) am6 - Autoregulate the vm swappiness batch7 - Batch(idle) scheduling iso1 - Low latency (user non RT) scheduling htbase1 - Basis for hyperthread(HT) tweaks httweak1- Tiny HT performance tweaks htnice2 - Make "nice" HT smart htbatch1- Make batch scheduling HT smart. cfqioprio - cfq elevator and i/o priorities schedioprio - Set initial i/o priorities according to cpu policy & nice FAQ: Why do I need hyper-thread awareness for nice? If you have a hyperthread (P4HT) processor and run it as two logical cpus you can have a very low priority task running that can consume 50% of your physical cpu's capacity no matter how high priority tasks you are running. For example if you use the distributed computing client seti you will be effectively be running at half your cpu's speed even if you run seti nice 20. Hyperthread awareness prevents this by allowing a low priority task to run for a percentage of time only on a logical cpu if a higher priority task is running on the logical sibling. What's batch scheduling? Batch scheduling for normal cpus allows only idle time to be used for batch tasks rather than a percentage of the total cpu time. Hyperthread awareness for batch scheduling? Only allows batch tasks to run when both hyperthread siblings are idle. You can get the schedtools to make tasks batch scheduled here: http://freshmeat.net/projects/schedtool/?topic_id=136 It's safest to set tasks as batch after they are already running as signal handling within the kernel can cause problems with this batch scheduling. ionice.c is a very small utility which will allow you to manually set the I/O priority separately from the cpu nice. Note that 0 is idle lowest pri and 20 is real time highest prio.