Only 70% of theoretical peak performance on FreeBSD 8/amd64, Corei7 920

Alan Cox alan.l.cox at gmail.com
Tue Apr 13 06:22:52 UTC 2010


On Tue, Apr 13, 2010 at 12:35 AM, Andrew Snow <als at modulus.org> wrote:

>
> The statements about the scheduler flipping between cores is also somewhat
> false, ULE does the right thing now for long-running computational threads.
>
> Furthermore, I can't see how a Gflops benchmark which fits in the CPU cache
> has anything to do with the memory architecture of the operating system.
>
>
It can.  Search the web for descriptions of page coloring.  Roughly
speaking, if your cache is physically indexed, the way in which the virtual
memory system allocates physical pages to virtual addresses can affect
whether or not the cache is fully utilized.  In a pathological case, those
physical pages that your application touches reside in the same part of the
cache and consequently you suffer frequent conflict misses.  Meanwhile, the
other parts of the cache go unused.  Page coloring creates a predictable
mapping between virtual and physical addresses so that a carefully written
application can avoid the pathological case.

Our support for superpages has the same effect.

Alan


More information about the freebsd-stable mailing list