Re: [PATCH] Optimize generic get_unaligned / put_unaligned implementations.

From: Ralf Baechle
Date: Thu Feb 15 2007 - 21:00:02 EST


On Thu, Feb 15, 2007 at 05:27:20PM -0800, Andrew Morton wrote:

> No, icc surely supports attribute(packed). My point is that we shouldn't
> rely upon the gcc info file for this, because other compilers can (or
> could) be used to build the kernel.
>
> So it would be safer if the C spec said (or could be interpreted to say)
> "members of packed structures are always copied bytewise". So then we
> can be reasonably confident that this change won't break the use of
> those compilers.
>
> But then, I don't even know if any C standard says anything about packing.

Memory layout and alignment of structures and members are implementation
defined according to the C standard; the standard provides no means to
influence these. So it takes a compiler extension such as gcc's
__attribute__().

> Ho hum. Why are we talking about this, anyway? Does the patch make the
> code faster? Or just nicer?

Smaller binary and from looking at the disassembly a tad faster also.

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