Re: i686 quirk for AMD Geode

Willy Tarreau
2009-11-10T05:58:34Z

On Sun, Nov 08, 2009 at 01:47:59PM -0500, Andres Salomon wrote:
> > Right, but what if is_geode_lx() is called befor the x86.id change
> > takes effect? Maybe something like this?
> >
> > --- a/arch/x86/include/asm/geode.h 2009-11-08 19:13:43.531117343 +0100
> > +++ b/arch/x86/include/asm/geode.h 2009-11-08 19:19:42.130618023
> > +0100 @@ -177,7 +177,7 @@
> > static inline int is_geode_lx(void)
> > {
> > return ((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) &&
> > - (boot_cpu_data.x86 == 5) &&
> > + (boot_cpu_data.x86 == 5 || boot_cpu_data.x86 == 6) &&
> > (boot_cpu_data.x86_model == 10));
> > }
>
>
> Yeah, that looks better.

Wouldn't it be even better if we didn't touch boot_cpu_data.x86
in the first place ? We can provide the emulation to support
686 binaries without faking the CPU family/model, I think it
would be cleaner. Otherwise we would need to report "real" and
"emulated" families in /proc...

Willy