<p>Hello Eric:</p>
<p>><br>> Well, the fact that you have 2 arches would have been highly relevant in<br>> your first email. ;) Is this the old abi or the new? Guessing old,<br>> based on the alignment issues.<br>></p>
<div>ARM compiler is producing eabi. The problem lies in: "long long" on arm is 8 bytes aligned, on x86 is 4 bytes aligned. So 4 more bytes are padded before xfs_inode_log_format::ilf_ino on arm.</div>
<div><br>><br>> Well, packing structures like mad is not a great solution[1] - it needs<br>> to be done carefully & judiciously. We don't want to pack structures<br>> that are already aligned on most arches, because this will cause<br>
> performance issues.<br>></div>
<p>Interesting. Nice tip.</p>
<p>><br>> But I see above you've found a few that were, for various reasons. Note<br>> that the dir2 types above use a funky "__arch_pack" to conditionally<br>> pack only on arm old abi:<br>></p>
<p>Get it. Thanks for the reminder.</p>
<p>> <br>> To be honest, I am not certain that this is "worth fixing" - we already<br>> have the requirement that log replay can only be done on an architecture<br>> of the same endianness, and a further requirement that it can only be<br>
> done on architectures with similar alignment rules doesn't seem so bad.<br>></p>
<div>Where is the official description of such requirment? The requirment is not obvious to new XFS users, and they should be warned :)</div>
<div><br>Why is such requirment? For backward compatibility?</div>
<div><br>I think the requirment is bad. It inhibit user from exchanging data freely between systems, which is an obvious requirment for file system design.</div>
<p>><br>> The problem is, if you go off and "fix" this on arm now, you'll find<br>> that logs created under older arm kernels can't be replayed on newer arm<br>> kernels and vice versa...<br>
></p>
<p>Compared with the above restriction("requirment"), we can afford this :)</p>
<p>Do I miss any other log/metadata needs pack on 2.6.10? </p>
<p>Thanks<br>Eddy</p>