Messages in this thread | | | From | <> | Subject | Re: [RFC] exit_thread() speedups in x86 process.c | Date | Tue, 14 Jun 2005 00:26:11 -0400 |
| |
The problem with that approach is GCC would still just relocate the push/pop block to the bottom of the function. This means you won't be likely to pick up anything useful in L1 or L2 as the function exits normally - in fact you'd typically be guaranteed to be picking up a partial line of gorp that is completely worthless later on.
This is one of my issues with the notion of unlikely() being smoothed on everywhere like Bondo<g> - it also makes it "unlikely" that you'll get any serendipitous L1/L2 advantages that could be had by locating related functions next to each other.
When you take the unlikely stuff completely out of line in a seperate functions located elsewhere, the mainline code can make better use of the caches. The Intel parts thrive on L1 hits and die if they're not getting them.
----- Original Message ----- From: "Coywolf Qi Hunt" <coywolf@gmail.com>
I see the effect, But I think it would be better to leave the job to gcc to generate better code for unlikely, imho.
-- Coywolf Qi Hunt http://ahbl.org/~coywolf/
- 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/
| |