Re: Intel P6 vs P7 system call performance

Mikael Pettersson (mikpe@csd.uu.se)
Tue, 17 Dec 2002 18:37:21 +0100


Richard B. Johnson writes:
> Actually I should be:
>
> pushl $next_address # Where to go when the call returns
> pushl $0xfffff000 # Put this on the stack
> ret # 'Return' to it (jump)
> next_address: # Were we end up after

You just killed that process' performance by causing the
return-stack branch prediction buffer to go out of sync.

It might have worked ok on a 486, but P6+ don't like it one bit.

This is also why I'm slightly unhappy about the
s/int $0x80/call <address of sysenter>/ approach, since it leads
to yet another recursion level and risk overflowing the RSB.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/