Re: optimize DNAME_INLINE_LEN

Andreas Dilger (adilger@turbolabs.com)
Thu, 13 Dec 2001 17:03:50 -0700


On Dec 14, 2001 00:29 +0100, Andi Kleen wrote:
> On Thu, Dec 13, 2001 at 04:07:06PM -0700, Andreas Dilger wrote:
> > Alternately (also ugly) you could just define struct dentry the as now,
> > but have a fixed size declaration for d_iname, like:
> >
> > #define DNAME_INLINE_MIN 16
> >
> > unsigned char d_iname[DNAME_INLINE_MIN];
> Using [0] here would also work

Well, not really. If we wanted to have a minimum size for the d_iname
field, then if we declare it as zero and it just squeaks into a chacheline,
then we may be stuck with 0 bytes of inline names, and _all_ names will
be kmalloced.

> #define d_... has a similar problem => the potential to break previously
> compiling source code.

Again, not really. The #define d_... scheme would leave all of the fields
in their original locations, just giving them new names within the named
struct, and the defines would be the backwards compatible (and probably
still preferrable) way to access these fields. I don't _think_ it would
cause any compiler struct alignment issues to just put the same fields
in another struct, but I could be wrong.

Cheers, Andreas

--
Andreas Dilger
http://sourceforge.net/projects/ext2resize/
http://www-mddsp.enel.ucalgary.ca/People/adilger/

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/