Re: [00/41] Large Blocksize Support V7 (adds memmap support)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Sun, 16 Sep 2007, Jörn Engel wrote:
> 
> My approach is to have one for mount points and ramfs/tmpfs/sysfs/etc.
> which are pinned for their entire lifetime and another for regular
> files/inodes.  One could take a three-way approach and have
> always-pinned, often-pinned and rarely-pinned.
> 
> We won't get never-pinned that way.

That sounds pretty good. The problem, of course, is that most of the time, 
the actual dentry allocation itself is done before you really know which 
case the dentry will be in, and the natural place for actually giving the 
dentry lifetime hint is *not* at "d_alloc()", but when we "instantiate" 
it with d_add() or d_instantiate().

But it turns out that most of the filesystems we care about already use a 
special case of "d_add()" that *already* replaces the dentry with another 
one in some cases: "d_splice_alias()".

So I bet that if we just taught "d_splice_alias()" to look at the inode, 
and based on the inode just re-allocate the dentry to some other slab 
cache, we'd already handle a lot of the cases!

And yes, you'd end up with the reallocation overhead quite often, but at 
least it would now happen only when filling in a dentry, not in the 
(*much* more critical) cached lookup path.

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux