I want to compare vanilla kernel performance to that of a kernel with some enhancing patches applied to it (like the Con Kolivas patchset, or others) not only for desktop use, but at kernel level. I was giving this a lot of thought and came to the conclusion that I wouldn't know how to measure a number of things... Here's a list of what I have thought would make meaningful tests:
- I/O performance
- Interprocess communication
- Threading
- Preemptiveness
- Low latency
I wouldn't know how to test for memory I/O, threading and Interprocess communication. I've thought of doing some I/O intensive operations like check how long and how much CPU does it take to move a rather large chunk of data from one disk to another, onto the same disk or different partitions on the same disk (which I believe would be the same as moving on the same partition), for the HDD I/O operations. Besides the standard '/sbin/hdparm -tT /dev/[hs]d?', I was thinking of something like moving a set of ~8Gb of data (fairly large amount) from one place to another (like the contents of /usr, or a rather large program files, like ut2004).
One thing I have noticed, though is that some devices are quite sensitive to how the kernel is configured. For instance, burning a DVD at 8x is not always possible (at least not on my system), especially with a vanilla kernel, at most the burning process would go up to 6x, with some patches applied (most notably libata patches) the I/O throughput to the DVD burner is much better and the process is made at 8x during the whole burning process.
However I wouldn't know how to measure interprocess communication or threading, preemptiveness or low latency. Any ideas? I know that for the most part, especially for desktop users, the "experienced" or subjective speed is what actually matters, but in this case, I'm trying to test two independent kernels and how well do they run on the same hardware independently from the "perceived" speed.
Thanks in advance.