Hi,

Reading through arch/i386/kernel/setup.c in 2.4.5, I noticed that the code
which sets x86_cache_size sets it to the size of the chip's L2 cache if
present.

Which is fine for everything except the Athlon/Duron, which have exclusive
L1/L2 caches, so surely they should be added together in this case to give
the total cache size? Or am I just missing something stupid?

--- arch/i386/kernel/setup.c.orig       Sun Jun  3 21:49:45 2001
+++ arch/i386/kernel/setup.c    Sun Jun  3 22:16:58 2001
@@ -1098,7 +1098,15 @@
        if ( l2size == 0 )
                return;         /* Again, no L2 cache is possible */
 
-       c->x86_cache_size = l2size;
+       /*
+        * Athlon/Duron have exclusive L1/L2 cache, so sum them,
+        * for everyone else set cache size to be L2 only.
+        */
+       if (c->x86_vendor == X86_VENDOR_AMD && c->x86 == 6) {
+               c->x86_cache_size += l2size;
+       } else {
+               c->x86_cache_size = l2size;
+       }
 
        printk(KERN_INFO "CPU: L2 Cache: %dK (%d bytes/line)\n",
               l2size, ecx & 0xFF);

-- 
James Slater
[EMAIL PROTECTED]

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to