Re: 2.4.20 amd speculative caching

From: Andi Kleen (ak@suse.de)
Date: Sat Feb 22 2003 - 00:25:33 EST


richard.brunner@amd.com writes:

> The best and reliable way to go is by the output of CPUID
> (or cat /proc/cpuinfo)
>
> if (((family == 6) && (model >= 6)) || (family == 15)) {
> printk(KERN_INFO "Advanced speculative caching feature present\n");
> return 1;
> }
>
> If your AMD processor meets the above CPUID family and model, then
> you need the patch. The decoder ring from any random
> Product name to CPUID family and model number is not yet available ;-)
>
When you have such a CPU you either need the old patch or the new patch
for change_page_attr which is in since 2.4.20 and fixes the underlying
bug of linux using conflicting cache attributes. The change_page_attr
solution is much faster because it doesn't prevent the kernel from
using 4MB pages (= less tlb misses) and also of course because it won't
cripple your CPU by disabling hardware prefetch.

However when the change_page_attr() approach is used you need to make
sure that the the agpgart driver that comes with the kernel is used
(which actually calls change_page_attr). Unfortunately it looks like
some versions of the ATI binary 3d driver install their own agpgart driver
and they don't have the change_page_attr() fixes.

So when you use the ATI driver with 2.4.20+ you need to make sure you
don't use their agpgart driver. Better would be to get ATI to fix their
agpgart included or better not ship an own agpgart at all for these
kernels.

Really there isn't much the linux kernel can do about third
party vendors replacing working included drivers with buggy own drivers.

If someone has contacts at ATI it would be good to ask them
to release a new driver with this issue fixed.

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



This archive was generated by hypermail 2b29 : Sun Feb 23 2003 - 22:00:35 EST