Messages in this thread | | | Date | Mon, 7 Feb 2011 10:51:42 +0100 | From | Daniel Tiron <> | Subject | Does the scheduler know about the cache topology? |
| |
Hi all.
I did some performance tests on a Core 2 Quad machine [1] with QEMU. A QEMU instance creates one main thread and one thread for each virtual CPU. There were two vms with one CPU each, which make four threads.
I tried different combinations where I pinned one tgread to one physical core with taskset and measured the network performance between the vms with iperf [2]. The best result was achieved with each vm (main and CPU thread) assigned to one cache group (core 0 & 1 and 2 & 3).
But it also turns out that letting the scheduler handle the assignment works well, too: The results where no pinning was done were just slightly below the best. So I was wondering, is the Linux scheduler aware of the CPU's cache topology?
I'm curious to hear your opinion.
Thanks, Daniel
[1] Core 0 and 1 share one L2 cache and so do 2 and 3 [2] The topic of my research is networking performance. My interest in cache awareness is only a side effect.
| |