Re: [PATCH] 6/6 cacheline align files_lock

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


On Sat, 8 Mar 2003, Christoph Hellwig wrote:
>
> The free list should go away - we have slab for that. The tty stuff should
> get a per-tty lock.

I doubt either of these would actually fix the lock contention, though.

The tty stuff is not likely to be a real issue for any real load (just how
often do you kill off sessions etc?) And the free list isn't the reason
for the file lock - ues, the file lock protects it, but every time we
touch the free list we touch _real_ lists too (ie either we move a file
from the free list to another list, _or_ we move a unused entry from a
real list to the free list), so we'd need the lock anyway.

So to actually fix file_lock, you need to do something else. I _think_
that "something else" may be to make it be a per-super-block lock, since I
think that's the only thing the f_list thing is actually used for. Then
you should probably pass in the superblock pointer to "get_empty_filp()",
and _then_ you can get rid of the free list and the current global lock.

Oh, and you need to make the "tty" stuff be a superblock too. Of course,
it might actually be a perfectly fine thing to make that tty stuff use a
totally separate pointer chain anyway, the current thing makes me worry
that "umount()" actually might do the wrong thing if the only file open on
a filesystem are tty files.

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/