Recently, Jake Moilanen announced a set of patches to add a genetics algorithm library to the Linux kernel. These patches supply functionality to modify the kernel's behavior experimentally and tune for peak performance. The base patches can be combined with patches that enhance the Anticipatory IO Scheduler and the CPU scheduler (zaphod patch required) with the algorithms.
The last time I tried a scheduler patch, it was with Con Kolivas' patchset. I had mixed this with PaX, and gotten nice performance results. Unfortunately, a little probing with `pspax` showed that PaX was no longer working, due to the invasive changes of the CK patches. This isn't a flaw in Con's work or in PaX, but rather in the fact that neither patch was made to function with the other. This is not an unreasonable situation; every piece of non-mainline code cannot be expected to function properly with every other piece of non-mainline code.
With the Genetics Algorithm in the kernel, though, PaX seems to work. There have been no ill side-effects caused by mixing the two, and Jake's patches even seem to be doing some good. I crossed them with the -test17 PaX patch for 2.6.10, and immediately ran `paxtest` upon rebooting as well as `pspax`. Both programs showed that PaX was performing as expected. My programs appear to start faster, so I assume the GA is working.
This brings up a simple and interesting point. Whenever combining patches, it is important to look for regressions. With security patches, other patches may cause added security layers to cease to function properly, which left unchecked creates a false sense of security and potentially more unchecked security holes. It would even be feasible for two patches to create security holes; one patch could supply a security hole but not any way to trigger it, while another reliant patch could supply a path that triggers the vulnerability.
In the case of PaX and the GA library, everything appears to be working fine. I can't comment on anything that would require a code audit; but everything seems functional. I've been running for almost seven hours with no problems. I'm looking forward to Jake's continued work; there have been many suggested enhancements to the GA and its uses already, including diploid algorithms, hillclimbing, and swap tuning. Jake seems to be very willing to experiment, which is appropriate seeing as his patch does exactly that continuously.