So I was doing some profiling of memcpy() calls to try and tune the UltraSPARC-III memcpy a little more, and you wouldn't believe what was at the top of the list during a kernel build :-) It's bh_lru_install. On a 64-bit system every time the local cpu's lru->bh[0] doesn't match 'bh' we do a 64-byte memcpy() from the stack into the lru->bh[] array. It shouldn't be too hard to make the code just work without an on-stack copy, shuffling the lru->bh[] array entries directly. For the curious, attached is profiling output after a full kernel build on this box. I basically rigged it such that the per-cpu timer profiling stuff didn't touch prof_buffer, and every memcpy() call recorded __builtin_return_address(0). It also keeps alignment and length distribution information accessible via proc. Example dumps and that debugging patch are attached too.