[Pixman] disable cache prefetch on ATOM can improve the gtkperf performance

Soeren Sandmann sandmann at daimi.au.dk
Wed Jun 9 07:38:52 PDT 2010


> To disable cache prefetch with following change, the performance of
> GtkDrawingArea_Pixbufs test case in gtkperf  can be improved about 2%.
> It only affects ATOM platform, can we disable s/w prefetch for it?

The main concerns I have are:

- What is the effect of this when the cache is cold? 

- What is the effect when actual applications are run as opposed to
  benchmarks? In that case, using prefetchnta (as opposed to
  prefetch/t0 as we do now) might be an advantage because it avoids
  kicking out application data from the caches.

- How does the effect depend on various processor architectures?

That said, running the cairo-traces benchmarks on various CPUs with no
prefetching, with prefetching, and with prefetchnta prefetching, there
was very little difference. On a Core 2 Duo with 4 MB of L2 cache, I
got small but consistent improvements from turning off the
prefetching. On an AMD Phenom with 512 KB of L2 and 512 KB of L3,
disabling prefetch was a tiny but consistent slow-down.

The Intel optimization manual does not give particularly clear
guidelines on when and how to use software prefetching.

It may be that the right answer is to just not do any prefetching
until someone can clearly show an advantage either way.

Comments and benchmark results appreciated.

As for the patch, if removing the prefetching altogether on x86 is the
right answer, then clearly it should be removed and not just commented


More information about the Pixman mailing list