On Mon, 28/03/2011 at 07:08 +0200, Ingo Molnar wrote: > Have you looked at the disassembly, why does the size increase? I'd expect such > a straight assembly optimization to result in smaller code: in the non-constant > case it should be the same size as before, in the constant case it should be > smaller, because BSR should be smaller than an open-coded search loop, right? Here is disassembly of patched get_order() with "inline" from "kernel/kexec.c": a6c: 48 8b 5d c8 mov -0x38(%rbp),%rbx a70: e8 0b fd ff ff callq 780 <get_order.clone.7> 0000000000000780 <get_order.clone.7>: 780: 55 push %rbp 781: b8 01 00 00 00 mov $0x1,%eax 786: 48 89 e5 mov %rsp,%rbp 789: c9 leaveq 78a: c3 retq My version of gcc is gcc (Debian 4.5.2-4) 4.5.2, probably I should upgrade my gcc version for better inline expansions. -- Thanks, Maksym Planeta -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html