aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-07-21 14:01:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-07-21 14:01:42 -0400
commitb91da88fed84843313a1b6fd1b1c834a24bbcf9e (patch)
tree0c9456266a09f247a875fd3b55073ad42dc7445d
parentb307d4655a71749ac3f91c6dbe33d28cc026ceeb (diff)
vfs: drop conditional inode prefetch in __do_lookup_rcu
It seems to hurt performance in real life. Yes, the inode will be used later, but the conditional doesn't seem to predict all that well (negative dentries are not uncommon) and it looks like the cost of prefetching is simply higher than depending on the cache doing the right thing. As usual. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--fs/dcache.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/fs/dcache.c b/fs/dcache.c
index 6e4ea6d87774..fbdcbca40725 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1813,8 +1813,6 @@ seqretry:
1813 tname = dentry->d_name.name; 1813 tname = dentry->d_name.name;
1814 i = dentry->d_inode; 1814 i = dentry->d_inode;
1815 prefetch(tname); 1815 prefetch(tname);
1816 if (i)
1817 prefetch(i);
1818 /* 1816 /*
1819 * This seqcount check is required to ensure name and 1817 * This seqcount check is required to ensure name and
1820 * len are loaded atomically, so as not to walk off the 1818 * len are loaded atomically, so as not to walk off the