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

Bug#490542: k7 transitition



On Wednesday 16 July 2008, dann frazier wrote:
> 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().

This is exactly the reason why I did not want to do this myself in the 
first place: I just don't have the right background for it.
Basically this is the best I and a few people on #d-boot could come up 
with and it seemed plausible enough to act on instead of ignoring the 
whole issue for *newer* systems.
I asked repeatedly for comments from maks, fs and cjwatson before 
committing, but none of them replied.

The only thing I do know is that at least maks and probably also cjwatson 
have told me in the past that not all k7s will work correctly with a 686 
kernel. And as maks has been doing a lot of BTS work for the kernel team 
I'm inclined to trust him on this.
I also doubt that the original code fell back to 486 for all k7/k8s 
without any reason. The challenge here is to either *find* those reasons 
or show solid argumentation that all k7s *are* supported by 686.

> 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.

Even if SSE is not the cause of potential problems, there could be others. 
Have those been checked as well? Do we have bug reports about problems 
with k7 and 686?

Having said all that, if there is indeed a problem, it is most likely to 
be with early k7 models, so the new logic is very likely to be a major 
improvement even if the rationale is completely wrong and I see no real 
reason to revert it or to change it to default to 686 for _all_ family 6 
systems until hard additional info is provided.

If someone can come up with the correct rationale, I'll be happy to update 
the changelog and revision comment etc for that, or even to default to 
686 for all k7 systems after all.

I also still feel that some effort should be made to check whether or not 
this is something that could cause Etch->Lenny upgrade problems for some 
users, given that k7 will be updated to 686 by default.

Cheers,
FJP



Reply to: