Messages in this thread | | | From | David Laight <> | Subject | RE: [RFC PATCH 5/5] locking/rwsem: Remove reader optimistic spinning | Date | Fri, 20 Nov 2020 13:11:12 +0000 |
| |
From: Waiman Long > Sent: 19 November 2020 18:40 ... > My own testing also show not too much performance difference when > removing reader spinning except in the lightly loaded cases.
I'm confused.
I got massive performance improvements from changing a driver we have to use mutex instead of the old semaphores (the driver was written a long time ago).
While these weren't 'rw' the same issue will apply.
The problem was that the semaphore/mutex was typically only held over a few instructions (eg to add an item to a list). But with semaphore if you got contention the process always slept. OTOH mutex spin 'for a while' before sleeping so the code rarely slept.
So I really expect that readers need to spin (for a while) if a rwsem (etc) is locked for writing.
Clearly you really need a CBU (Crystal Ball Unit) to work out whether to spin or not.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |