mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Jörn Engel" <joern@wohnheim.fh-wedel.de>
To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [RFC] Alignment of fields in struct dentry
Date: Thu, 14 Sep 2006 11:31:23 +0200	[thread overview]
Message-ID: <20060914093123.GA10431@wohnheim.fh-wedel.de> (raw)

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

             reply	other threads:[~2006-09-14  9:31 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-14  9:31 Jörn Engel [this message]
2006-09-14 10:50 ` Jörn Engel
2006-09-14 18:33   ` Andreas Dilger
2006-09-14 21:02     ` Jörn Engel
2006-09-14 21:55       ` Andreas Dilger
2006-09-15 10:27         ` Jörn Engel
2006-09-15 13:41           ` Jörn Engel
2006-09-15 20:44           ` Arnd Bergmann
2006-09-18 21:24             ` Jörn Engel
2006-09-18 21:54               ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060914093123.GA10431@wohnheim.fh-wedel.de \
    --to=joern@wohnheim.fh-wedel.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®