public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Dumazet <dada1@cosmosbay.com>
To: Andrew Morton <akpm@osdl.org>, linux-kernel@vger.kernel.org
Subject: [PATCH] : struct dentry : place d_hash close to d_parent and d_name to speedup lookups
Date: Thu, 01 Sep 2005 17:44:48 +0200	[thread overview]
Message-ID: <431721F0.6090402@cosmosbay.com> (raw)
In-Reply-To: <20050901035542.1c621af6.akpm@osdl.org>

[-- Attachment #1: Type: text/plain, Size: 772 bytes --]


dentry cache uses sophisticated RCU technology (and prefetching if available) 
but touches 2 cache lines per dentry during hlist lookup.

This patch moves d_hash in the same cache line than d_parent and d_name fields 
so that :

1) One cache line is needed instead of two.
2) the hlist_for_each_rcu() prefetching has a chance to bring all the needed 
data in advance, not only the part that includes d_hash.next.

I also changed one old comment that was wrong for 64bits.

A further optimisation would be to separate dentry in two parts, one that is 
mostly read, and one writen (d_count/d_lock) to avoid false sharing on 
SMP/NUMA but this would need different field placement depending on 32bits or 
64bits platform.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>


[-- Attachment #2: dentry.patch --]
[-- Type: text/plain, Size: 0 bytes --]



  parent reply	other threads:[~2005-09-01 15:44 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-01 10:55 2.6.13-mm1 Andrew Morton
2005-09-01 14:22 ` 2.6.13-mm1 Martin J. Bligh
2005-09-01 14:50   ` 2.6.13-mm1 Alan Cox
2005-09-01 20:56     ` 2.6.13-mm1 Joel Schopp
2005-09-01 21:16       ` 2.6.13-mm1 Alan Cox
2005-09-01 21:26         ` 2.6.13-mm1 Joel Schopp
2005-09-01 21:44           ` 2.6.13-mm1 Alan Cox
2005-09-12 16:34             ` tty patches in 2.6.13-mm3 (was Re: 2.6.13-mm1) serue
2005-09-12 16:55               ` Joel Schopp
2005-09-12 17:04             ` 2.6.13-mm1 serue
2005-09-01 14:59   ` 2.6.13-mm1 Adrian Bunk
2005-09-01 15:01 ` [PATCH] mips: remove typedef from struct flock Yoichi Yuasa
2005-09-01 15:38 ` 2.6.13-mm1 Dominik Karall
2005-09-01 16:09   ` 2.6.13-mm1 John Stoffel
2005-09-01 16:28     ` 2.6.13-mm1 Dominik Karall
2005-09-01 17:34       ` 2.6.13-mm1 John Stoffel
2005-09-01 18:05         ` 2.6.13-mm1 Dominik Karall
2005-09-01 18:27           ` 2.6.13-mm1 John Stoffel
2005-09-01 15:44 ` Eric Dumazet [this message]
2005-09-01 15:48   ` [PATCH] : struct dentry : place d_hash close to d_parent and d_name to speedup lookups Eric Dumazet
2005-09-01 17:36     ` Dipankar Sarma
2005-09-01 19:52       ` Eric Dumazet
2005-09-01 17:41 ` 2.6.13-mm1 - drivers/isdn/i4l/isdn_tty broken Damir Perisa
2005-09-01 21:06   ` Alan Cox
2005-09-02  1:05   ` 2.6.13-mm1 - drivers/serial/jsm/jsm_tty broken too Damir Perisa
2005-09-01 21:14 ` 2.6.13-mm1: PCMCIA problem Rafael J. Wysocki
2005-09-01 21:28   ` Andrew Morton
2005-09-02  8:30     ` Rafael J. Wysocki
2005-09-02  8:37       ` Rafael J. Wysocki
2005-09-02 10:43         ` Pavel Machek
2005-09-02 10:58           ` Rafael J. Wysocki
2005-09-02 11:09           ` Andrew Morton
2005-09-02 11:45             ` 2.6.13-mm1: swsusp problem (was: PCMCIA problem) Rafael J. Wysocki
2005-09-02 14:17               ` Rafael J. Wysocki
2005-09-04 14:29             ` 2.6.13-mm1: PCMCIA problem Pavel Machek
2005-09-01 22:19 ` 2.6.13-mm1: broken drivers/video/sis/Makefile Adrian Bunk
2005-09-01 23:24   ` Thomas Winischhofer
2005-09-01 23:25 ` 2.6.13-mm1: misc mwave issues Adrian Bunk
2005-09-02 12:36   ` Alan Cox
2005-09-02 13:57 ` 2.6.13-mm1 Benjamin LaHaise
2005-09-02 20:57   ` 2.6.13-mm1 Andrew Morton
2005-09-06 11:50     ` 2.6.13-mm1 Benjamin LaHaise
2005-09-02 14:30 ` 2.6.13-mm1 Alexander Nyberg
2005-09-02 14:40   ` 2.6.13-mm1 Zwane Mwaikambo
2005-09-03 12:21 ` 2.6.13-mm1 Adrian Bunk
2005-09-03 19:34   ` 2.6.13-mm1 Andrew Morton
2005-09-03 19:54     ` 2.6.13-mm1 Adrian Bunk
2005-09-03 20:06       ` 2.6.13-mm1 Andrew Morton
2005-09-04 20:00         ` 2.6.13-mm1 Adrian Bunk
2005-09-04 21:24         ` 2.6.13-mm1 Jesper Juhl
2005-09-04 21:30           ` 2.6.13-mm1 Andrew Morton
2005-09-04 21:36             ` 2.6.13-mm1 Jesper Juhl
2005-09-07  0:05             ` 2.6.13-mm1 Paul Jackson
2005-09-07  0:32               ` 2.6.13-mm1 Andrew Morton
2005-09-07  0:44               ` 2.6.13-mm1 Jesper Juhl
2005-09-07  2:38                 ` 2.6.13-mm1 Paul Jackson
2005-09-04 10:26 ` 2.6.13-mm1 Alexander Nyberg

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=431721F0.6090402@cosmosbay.com \
    --to=dada1@cosmosbay.com \
    --cc=akpm@osdl.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