On Tue, Mar 21, 2006 at 04:01:51PM +0000, Phillip Lougher wrote:It's one flag check, and one set of swap code actually. The point that was being made is it is better to avoid byte swapping if possible.
Perhaps, but almost all the byteswap is performed on the metadata side, reading directories and inodes, where nearly every byte will need to be swapped. As inodes are compacted and compressed in 8 KB blocks, and are on average 15 bytes in size, for each 8 KB decompress you're potentially doing 8192/15 inode byteswaps. This is probably sufficent to affect directory search and lookup on a slow processor.
Oh, please... Conversion from known endianness to host-endian is considerably
faster than checking flag + branch + two variants, not to mention being
smaller.