Messages in this thread | ![/](/images/icornerl.gif) | | Date | Sat, 8 Mar 2003 08:10:29 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: [PATCH] 6/6 cacheline align files_lock |
| |
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/
| ![\](/images/icornerr.gif) |