* Linus Torvalds <torva...@linux-foundation.org> wrote: > [...] > > And your numbers for Ingo's patch: > > > After testing Ingo's anon-vma rwlock_t conversion (v2) on a 8 socket, > > 80 core system with aim7, I am quite surprised about the numbers - > > considering the lack of queuing in rwlocks. A lot of the tests didn't > > show hardly any difference, but those that really contend this lock > > (with high amounts of users) benefited quite nicely: > > > > Alltests: +28% throughput after 1000 users and runtime was reduced from > > 7.2 to 6.6 secs. > > > > Custom: +61% throughput after 100 users and runtime was reduced from 7 > > to 4.9 secs. > > > > High_systime: +40% throughput after 1000 users and runtime was reduced > > from 19 to 15.5 secs. > > > > Shared: +30.5% throughput after 100 users and runtime was reduced from > > 6.5 to 5.1 secs. > > > > Short: Lots of variance in the numbers, but avg of +29% throughput - > > no particular performance degradation either. > > Are just overwhelming, in my opinion. The conversion *from* a spinlock > never had this kind of support behind it.
Agreed. Especially given how primitive rwlock_t is especially on 80 cores, this is really a no-brainer conversion. I have to say I am surprised by the numbers - after so many years it's still amazing how powerful the "get work done and don't interrupt it" batching concept is in computing... > Btw, did anybody run Ingo's patch with lockdep and the spinlock sleep > debugging code to verify that we haven't introduced any problems wrt > sleeping since the lock was converted into a rw-semaphore? > > Because quite frankly, considering these kinds of numbers, I really > don't see how we could possibly make excuses for keeping that > rw-semaphore unless there is some absolutely _horrible_ latency issue? Given that there's only about a dozen critical sections that this lock covers I simply cannot imagine any latency problem that couldn't be fixed in some other fashion. (shrinking the critical section, breaking up a bad loop, etc.) [ Btw., if PREEMPT_RT goes upstream we might not even need to break latencies all that much: people whose usecase values scheduling latency above throughput would run such a critical section preemptible anyway. ] Thanks, Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/