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: