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?"
The first link that returns is an old kernel patch, specifically for enabling the L2 cache on a Celeron, although with "powerleap", whatever that is. That is something to try though, just make sure you have a backup kernel to boot from.
Also, there was a post to lkml with a similar question here without a solution.
If you don't find a solution, the best place to post isn't slashdot but to LKML.
"Why should I be content to simply live in this world, when I, as a human being, can CREATE it?" - Oertel
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?
I have a 1.7ghz p4 williamete with 128kb of L2 (celeron 1.7ghz :P) (stable at 2.1ghz+ with intel OEM HSF rated to 2.4ghz)... Some programs do actualy have trouble determining the cache of the CPU, (2 mIRC scripts say 0kb, and a few other programs display blanks under L2..)
Dont know if its related but yea......
Can you please try running your compilation benchmark with the BIOS attempting to turn the cache on and the BIOS attempting to turn the cache on, and verify that the compilation times match? Please try doing the compilation a few times each way, so you can have some sense of the variation not due to this change. That would help confirm whether the cache is indeed off in both cases.
although with "powerleap", whatever that is
:-).
"Powerleap" probably refers to the device sold by the company, that allows you to mount certain proc types on motherboards that wouldn't accept them otherwise, either because of different pinouts or whatever reason (IIRC even one where the voltages were different?), within certain limits (I don't think they sell anything that allows you to plug an 486 into a Socket A slot
Inspired by this thread, I double-checked one of my systems, found that the L2 cache wasn't being picked up because of a BIOS bug, flashed the BIOS with the newest version and got an instant, free speed boost on an aging machine.
Thanks, slashdot!
It's not the hardware problem! - in win2k with drivers from the MB's CD, Sandra cache benchmark shows great results for L2 cache, below 128KB block size beating at 3GHz everything except Xeon 2800. So the cache is definitely 128KB, running with full CPU clock. Only linux kernels are not able to switch it on, because I can't believe that the CPU itself can be twice as slow as Athlon XP at the same clock frequency. (compilation times for Cel@3000 similar to AthlonXP@1533).
I made google search, of course, found question you mentioned, but I have different problem. POST on my PC doesn't show L2 cache size, (or it disappears too fast ;] - I'll check), but in Win2K everything is OK in Sandra L2 cache benchmarks. Cache works VERY fast and performance drops above 128KB blocks.
Probably you are right suggesting to directly contact people working on kernel, thx
;) I thought the same, until I installed win2k and Sandra benchmarks which proved that L2 feels good and goes like crazy at 3000...
I don't like to be called 'lame' :( - especially when nobody posts the answer to my question. I posted the problem on comp.os.linux.hardware /or kernel, don't remember/, and got no answer. It seems that suggestion of writing to kernel mailing list is the best solution.