What are these CPU cache settings? Snoop Filter, ACL prefetch, HW prefetch
- by eater
I was in my BIOS setup turning on VT-x support today and saw these other settings. A little googling indicates that they each seem to turn on some sort of optimization to do with the CPU's L2 cache. They were all turned off by default.
The processor in question is an Intel Xeon quad-core 3.4GHz (X5492). My OS is
Linux 2.6.35.10-74.fc14.x86_64 #1 SMP Thu Dec 23 16:04:50 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux. I have 4GB of RAM if that matters.
Here's what the BIOS manufacturer has to say:
Snoop Filter
Enabling the snoop filter typically
improves performance by reducing snoop
traffic on the frontside bus in dual
processor configurations.
Well I like the sound of improved performance. Why would the BIOS have this off by default? Or by dual processor do they not mean multi-core? Regardless, is there a downside if this is on?
ACL Prefetch
When enabled, the Adjacent Cache Line
Prefetcher fetches both cache lines
that comprise a cache line pair when
it determines required data is not
currently in its cache. When disabled,
the processor will only fetch the
cache line required by the processor.
HW Prefetch
Fetches an extra line of data into L2
from external memory.
Both of these sound like optimizations that have some drawbacks. What are the reasons to turn them on? What are the reasons to leave them off. Why is the default off?