Re: [PATCH] x86: make clflush a required feature on x86_64

From: H. Peter Anvin
Date: Fri Jan 18 2008 - 09:03:24 EST


Andi Kleen wrote:
Simulators can be fixed,

They could, but why? I don't know of a good reason to require CLFLUSH.

Well, simulators are generally expected to follow the architecture, not vice versa. I would tend to agree with the coupling that recent versions of Bochs appeared to have made here -- I think we're unlikely to see any processors with sse2 sans clflush, so keeping code branches in which will never be executed seems like a bad idea in the long term. I'm much more worried about the possibility of embedded 64-bit CPUs who try to skimp on SSE2 than CLFLUSH.

Now, that being said, this being encapsulated in the required set (and unified, which means the branches will be executed on 32-bit hardware) it seems the impact of leaving them in is small for now. We can re-evaluate that as appropriate. Either way, we should *not* have #ifdef CONFIG_X86_64 around usage sites, circumventing the master switch. It either goes in the required masks or it doesn't.

I just verified that Bochs 2.3.0 lacks this CPUID bit whereas the current version, 2.3.6, enables CLFLUSH iff SSE2 is enabled. Qemu 0.9.0 has CLFLUSH. Andi, do you happen to know of any specific simulators which are problematic? I would assume any recent version of SimNow is up to date.

I don't know of any specific ones that lack CLFLUSH, although Bochs
definitely had similar problems in the past.

OK, so we're talking about outdated versions of Bochs, then?

-hpa

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