Re: i686 quirk for AMD Geode

Willy Tarreau
2009-11-11T09:35:58Z

On Wed, Nov 11, 2009 at 09:03:13AM +0100, Pavel Machek wrote:
>
> > (...)
> > > > CMOV/NOPL are rarely used, thus have no reason to cause a massive
> > > > performance drop, but are frequent enough (at least cmov) for almost
> > >
> > > *One* CMOV in the inner loop will make your performance go down 20x.
> >
> > yes, just like with emulated FPU or trapped unaligned accesses. It's
> > just like flying fishes. They exist but they aren't the most common
> > ones. If people encounter these cases on a specific program, then
> > they just have to recompile it if it is a problem. At least they
> > don't rebuild the whole distro. And once again, I've been using
> > cmpxchg/bswap emulation for years on my i386 without feeling any
> > need for a rebuild, and CMOV emulation for years now on my mini-itx
>
> And did you set cpu family to 6 for your 386?

No, not at all !

> That's the part I was objecting most. Yes, you can emulate, but
> emulation is very bad for performance... so don't lie about cpu
> family.

That's the point I agree with you, I don't like this setting either.
I don't want to incite applications to use features that are emulated.
However I think that allowing applications run when they don't/can't
perform the check is useful.

> (Imagine application that has NOPL in inner loop, for performance
> reasons. You want to use version _without_ the NOPL on processors that
> lack it.)

Exactly. Same for MMX, 3DNOW, SSE* and such.

> So... I don't like instruction emulation, but can live with it. But
> don't lie about supported instructions in /proc as original patch did.

100% agreed !

Regards,
Willy