Comment 235 for bug 131094

Revision history for this message
Jim Lieb (lieb) wrote :

This regression has been around since about the 2.6.18 timeframe and has eluded a lot of testing to isolate the root cause. The most promising fix is in the VM subsystem (mm) where the LRU scan has been changed to favor keeping executable pages active longer. Most of these symptoms come down to VM thrashing to make room for I/O pages. The key change/commit is ab4754d24a0f2e05920170c845bd84472814c6, "vmscan: make mapped executable pages the first class citizen". For those interested in the details and are familiar with 'git', the commit changelog entry has a complete description of the problem and the fix. You can find this in either the ubuntu-karmic git repository or on kernel.org.

This change was merged into the 2.6.31r1 kernel. The Karmic Alpha 3 snapshot, currently scheduled for the last week of July, will have a 2.6.31 kernel containing this change. Please test this version and report back whether your latency issues have been resolved. There is no guarantee that this change will solve the latency problems in any particular workload so as much testing in a variety of machines and workloads is important.

Thank you.

NOTE: This new version of the Karmic kernel will also have the new KMS patches to match the upgrade of the Xorg server. Since most of the latency complaints center around GUI latencies, this adds a new set of variables. There are mainline kernel packages available now for those who cannot wait for the Alpha 3 release that can run on either Jaunty or Karmic (alpha) but they may have problems with the older Xorg server. If you find X related problems with these kernels, please wait for the Alpha 3 release and not bother to report X problems unless they are also present in the A3 release.

Backporting note:
The commit mentioned above is just one change in the VM subsystem. Backporting this and the number of its associated patches back to a Jaunty (2.6.28) or earlier kernels would probably not be productive and may create new stability problems of their own given the amount of change between the two versions.