Re: [PATCH RFC 1/2] qrwlock: A queue read/write lock implementation

From: George Spelvin
Date: Thu Jul 18 2013 - 09:18:38 EST


In the interest of more useful Kconfig help, could I recommend the
following text:

config QUEUE_RWLOCK
bool "Generic queue read/write lock"
depends on ARCH_QUEUE_RWLOCK
help
Use an alternative reader-writer lock (rwlock) implementation,
optimized for larger NUMA systems. These locks use more memory,
but perform better under high contention. (Specifically, readers
waiting for a writer to release the lock will be queued rather
than all spinning on the same cache line.)

The kernel will operate correctly either way; this only
affects performance.

For common desktop and server systems systems with only one
or two CPU sockets, the performance benefits are not worth
the additional memory; say N here.

My goal is to give someone stumbling across this question for the first
time in "make oldconfig" the information htey need to answer it.


That said, I think Ingo's idea for simplfying the waiting reader side
is excellent and should be tried before bifurcating the implementation.

Looking at the lock system, it *seems* like that patch to __read_lock_failed
is literally the *only* thing that needs changing, since the write
lock/unlock is all done with relative add/sub anyway. But I keep thinking
"there must have been a reason why it wasn't done that way in the first
place".
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/