Josef 'Jeff' Sipek wrote:
> On Fri, Mar 14, 2008 at 11:23:43PM -0500, Eric Sandeen wrote:
>> Josef 'Jeff' Sipek wrote:
>>> Shouldn't this be unconditional? Just because it ends up being ok on x86
>>> doesn't mean that it won't break some time later on...(do we want another
>>> bad_features2 incident?)
>> I think that packing structures when they don't need to be can actually
>> be harmful, efficiency-wise. I read a nice explanation of this....
>> which I can't find now.
>
> Agreed. For in-memory only structures it makes sense to let the compiler do
> whatever is the best, but for structures that are on-disk, you really have
> no choice, you have to have the same layout in memory - which frequently
> means packed. Unless I missed it, the structs you modified are on-disk, and
> therefore _must_ be the way the docs say - which happens to be packed.
Well, the docs probably don't actually say "packed" :) ... they just
assume standard/predictable layout of the structures.
So on almost all architectures they _don't_ need to be explicitly
packed, and it's my understanding that doing so when it's not neccessary
is harmful. But these 3 cases, on the odd arm abi, do need it.
A QA test to run pahole on all disk structures to look for proper sizes
/ no holes might be good... though it require debug xfs (well, xfs built
with -g).
-Eric
|