Celeron 2GHz Cache Detection?
EAJoe asks: "I have small problem with one Celeron 2GHz machine. Linux kernel 2.4.18-24.7 doesn't seem to switch L2 cache on! This CPU apparently _has_ 128K of L2. There is nothing about L2 in the logs, and /proc/cpuinfo shows an L1D size of 8K instead. Of course I have enabled L2 in BIOS settings (the motherboard is an ASUS P4S533-E, by the way). The CPU overclocks easily up to 3.5 GHz, running stable at 3 - it seems that cache is really switched off. At 3 GHz g++ compilation times are similar to Athlon XP 1800+ machine. I don't have windows on this computer to check this out, but Intel DOS utility shows a Celeron 2000 w/128k L2, also there is '128K' written on the CPU's die. Any suggestions?"
Hmmm, I doubt that without the L2 cache compilation times would be anywhere near the Athlon 1800+. More like an Athlon 180+. Compilation is a very random-memory-access process, so it would kill the P4 core with its relatively large memory latency without a cache.
Try running a test that repeatedly accesses a block of memory 124, 125, 126, 127, 128 etc. KB in size. If you see a significant drop in speed when the block size grows above 128, you probably have your cache.
Anyway, is it the _kernel_'s job to turn on the cache? Isn't that supposed to be the BIOS' job?