[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#490542: k7 transitition



A few days ago, Frans said:
> From a later discussion with some other people on IRC, it looks like
> SSE support is probably the deciding factor. According to section
> 2.2 in [1] and especially the note "Enabling SSE support" just above
> section 2.3, models 0-5 for family 6 AMD processors may not have SSE
> support and thus should continue to default to the 486 flavor.

Thanks for the research Frans and the follow-up on IRC. However, after
thinking about this, I'm not sure I follow the logic - or at least I
need some hand holding to get it.

>From reading the kernel source, it appears that a 686-configured
kernel will cause gcc to use -march=i686. The gcc manual[1] implies
that this will not cause sse instructions to be generated - pentium3
or athlon optimization (or greater) is required before SSE is
enabled. The kernel does have some assembly routines coded in assembly
that make use of SSE (e.g. the xor code used for raid checksumming),
but they dynamically check for sse support by using cpu_has_xmm().

I do see why we wouldn't want to run a k7 kernel on all family 6
cpus. Google quickly found a /proc/cpuinfo file that shows a family 6
with no sse flag. However, I don't follow why this means a 686 kernel
would not be safe on a family 6 cpu.

[1] http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
[2] http://ubuntuforums.org/showpost.php?p=5119933&postcount=32


-- 
dann frazier




Reply to: