Re: [PATCH 1/2] x86/mce: Pack boolean MCE boot flags into a structure

From: Naveen N. Rao
Date: Tue Aug 28 2012 - 02:57:47 EST


On 08/27/2012 07:48 PM, Borislav Petkov wrote:
On Mon, Aug 27, 2012 at 03:58:59PM +0200, Andi Kleen wrote:
On Mon, Aug 27, 2012 at 04:55:03PM +0530, Naveen N. Rao wrote:
Many MCE boot flags are boolean in nature, but are declared as integers
currently. We can pack these into a bitfield to save some space.

Note that this doesn't necessarily save anything because it needs more
code to access, and accesses are more common than the flag

cmpl $0,foo(%rip) 7 bytes
testl $1,foo(%rip) 10 bytes

I got 7 bytes:

12e9: f6 05 00 00 00 00 02 testb $0x2,0x0(%rip) # 12f0 <mce_start_timer.isra.18+0x30>

vs the old:

1654: 83 3d 00 00 00 00 00 cmpl $0x0,0x0(%rip) # 165b <mce_start_timer.clone.15+0x37>

also 7 bytes.


I'm seeing the same here. GCC v4.7 with -O2 generates testb and cmpb, which are both 7 bytes long.

Thanks,
Naveen

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