Re: [PATCH] 2.6 workaround for Athlon/Opteron prefetch errata

From: Jamie Lokier
Date: Thu Sep 11 2003 - 12:40:18 EST


Andi Kleen wrote:
> > if ((addr & 3) == 0)
> > return 0;
>
> Maybe. But gcc generates quite good code (binary decision tree) code for
> the switch() statement already so I don't think it is worth it to go
> through complications just to avoid that.
>
> The decoder looks big in C, but when you take a look at its hot path in
> assembly it is quite fast.

I wonder. No part of the signal path looks especially slow, and yet
as a whole it isn't that fast. The odd percentage slowdown here and
there is quite bothersome.

GCC generates a decision tree. You realise that about half of the
branches in that tree will be mispredicted?

-- Jamie
-
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/