Messages in this thread | | | Date | Wed, 05 Feb 2014 22:08:35 -0500 | From | Waiman Long <> | Subject | Re: [PATCH v11 0/4] Introducing a queue read/write lock implementation |
| |
On 02/02/2014 04:03 AM, Ingo Molnar wrote: > * Waiman Long<waiman.long@hp.com> wrote: > >> How about making the selection of MCS or ticket queuing either user >> configurable or depending on the setting of NR_CPUS, NUMA, etc? > No! > > There are lots of disadvantages to adding such CONFIG_NUMA Kconfig > variants for locking primitives: > > - an doubling of the test matrix > > - an doubling of the review matrix and a halving of effective review > capacity: we've just about go the capacity to review and validate > patches like this. Splitting out a 'only NUMA cares' variant is a > non-starter really. > > - but most importantly, there's absolutely no reason to not be fast > on 128 CPU systems in the low contended case either! Sacrificing > the low contended case with 'on 128 CPU systems it is the contended > path that matters' is an idiotic argument. > > Essentially the only area were we allow Kconfig dependencies are > unyielding physical forces: such as lots of CPUs needing a wider CPU > mask. > > As Peter said it, the right solution is to fix the contended case. If > that also happens to speed up or better organize the uncondended code > then that's good, but it should not make it worse. > > Thanks, > > Ingo
You are right. I am trying to measure the performance impact of MCS queuing has on a lightly contended system. I need to write some custom test code to get that information. With that information, I may be able to tune it to perform more or less on par with ticket lock.
As for the additional cache line access of the MCS lock, I don't think it is really an issued as the MCS node is allocated on local stack which is likely to be in the cache anyway. I will report back when I have more data.
-Longman
| |