After taking a look at struct dentry, Arnd noted an alignment problem. The first four fields currently are: atomic_t d_count; unsigned int d_flags; /* protected by d_lock */ spinlock_t d_lock; /* per dentry lock */ struct inode *d_inode; /* Where the name belongs to - NULL is * negative */ On 64bit architectures, the first three take 12 bytes and d_inode is not naturally aligned, so it can be aligned to byte 16. This grows a struct dentry from 196 to 200 Bytes (assuming no funky config options like DEBUG_*, PROFILING or PREEMT && SMP are set). One possible solution would be to exchange d_inode with d_mounted, but I fear that d_inode would move from a hot cacheline to a cold one, reducing performance. Could there be a good solution or would any rearrangement here only cause regressions? Also, both 196 and 200 bytes are fairly close to 192 bytes, so I could imagine performance improvements on 64bit machines with 64 Byte cachelines. Might it make sense to trim DNAME_INLINE_LEN_MIN by 4 or 8 bytes for such machines? Jörn -- The wise man seeks everything in himself; the ignorant man tries to get everything from somebody else. -- unknown - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html