Messages in this thread | | | Subject | spinlock contention of files->file_lock | From | Eric Dumazet <> | Date | Mon, 30 Sep 2013 18:05:03 -0700 |
| |
Speaking of spinlock contention, the files->file_lock is a good example.
Multi threaded programs hit this spinlock three times per fd :
alloc_fd() / fd_install() / close()
I think fd_install() could be done without this spinlock.
we want to protect fd_install() from a concurrent resize of the fd table.
We could either :
- Add a spinlock used for resize, and fd_install(). A bit suboptimal but easy to code and review.
- Add a seqcount, and cmpxchg() to synchronize fd_install() with the potential resizer. (Might need additional RCU locking)
| |