Re: [PATCH] 6/6 cacheline align files_lock

Linus Torvalds (torvalds@transmeta.com)
Sat, 8 Mar 2003 10:20:54 -0800 (PST)


On Sat, 8 Mar 2003, Christoph Hellwig wrote:
>
> Agreed, that's what I actually though when looking into that stuff in more
> detail a while ago - I just couldn't remember everything now that Martin
> brought it up again. Killing the freelist seems like a good idea anyway
> (or rather keep a small list for the reserved filp that is used only
> _after_ kmem_cache_alloc() failed)

Well, the sad part, though, is that the file lists are almost never
actually _used_, so even if this is made per-superblock that won't get
over the fact that

(a) much of the time you'll still get the lock overhead (not very many
superblocks would be impacted: it would usually spread out the
current load over two or three super-blocks: pipes, networking and
"real" filesystem) and

(b) it would _still_ be for something that almost never happens -
relatively speaking (ie it's currently used for hanging up terminals
and for unmounts, and nothing else, I think)

I think we might actually be able to make it really go away, if the file
list was made per-dentry or something like that (and then use the existing
dentry->lock instead of dcache_lock). We already keep track of dentries
for "umount", and if we made the tty layer use another list, we'd get rid
of this whole lock entirely.

At this point, though, the 2.6.x thing is clearly to just avoid the false
sharing. But somebody can work on this if they feel like a 2.7.x
challenge.

Linus

-
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/