Remove reader optimistic spinning
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest7 patches 3 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/7 | locking/rwsem: Better collate rwsem_read_trylock()kernel/ | +8 | 0 replies | |
| 2/7 | locking/rwsem: Introduce rwsem_write_trylock()kernel/ | +16 | 0 replies | |
| 3/7 | locking/rwsem: Fold __down_{read,write}*()kernel/ | +23 | 0 replies | |
| 4/7 | locking/rwsem: Pass the current atomic count to rwsem_down_read_slowpath()kernel/ | +10 | 0 replies | |
| 5/7 | locking/rwsem: Prevent potential lock starvationkernel/ | +13 | 0 replies | |
| 6/7 | locking/rwsem: Enable reader optimistic lock stealingkernel/ kernel/ | +29 | 0 replies | |
| 7/7 | locking/rwsem: Remove reader optimistic spinningkernel/ kernel/ | +49 | 0 replies |
Reviews trailers per patch
4 of 7 patches have a Reviewed-by or Acked-by.
| Patch | Davidlohr Bueso |
|---|---|
| 1/7 | |
| 2/7 | |
| 3/7 | |
| 4/7 | R-b |
| 5/7 | R-b |
| 6/7 | R-b |
| 7/7 | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH stable 5.10 0/7] Remove reader optimistic spinning
This patch series is to remove reader optimistic spinning in kernel 5.10 to improve the MongoDB performance. Performance measurements (10 times running average of overall throughput ops/sec) are using MongoDB 5.0.11 and YCSB [1] microbenchmark with workloadA [2] on AWS EC2 m5.4xlarge/m6g.4xlarge (16-vCPU 64GiB-memory) instances with a 512GB EBS IO1 drive disk with 5000 IOPS and separating MongoDB and YCSB load generator on 2 instances and setting recordcount=25000000 and operationcount=10000000 to see the impacts of these changes:
Before - v5.10.165 kernel in OS Amazon Linux 2
After - v5.10.165 kernel with reader spinning disabled in OS Amazon Linux 2
| Arch | Instance Type | Before | After | |---------+---------------+---------+---------| | x86_64 | m5.4xlarge | 37365.4 | 42373.9 | |---------+---------------+---------+---------| | aarch64 | m6g.4xlarge | 33823.1 | 43113.7 | |---------+---------------+---------+---------|
It can be seen that the MongoDB throughput can be improved around 13% in x86_64 and 27% in aarch64 after disabling reader optimistic spinning and these patches can be applied to 5.10 with no conflict so we wonder if it's possible to backport them to stable 5.10?
[1] https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-0.17.0.tar.gz
[2] https://github.com/brianfrankcooper/YCSB/blob/master/workloads/workloada
Thanks,
Shaoying
Peter Zijlstra (3):
locking/rwsem: Better collate rwsem_read_trylock() locking/rwsem: Introduce rwsem_write_trylock() locking/rwsem: Fold __down_{read,write}*()
Waiman Long (4):
locking/rwsem: Pass the current atomic count to
rwsem_down_read_slowpath()
locking/rwsem: Prevent potential lock starvation locking/rwsem: Enable reader optimistic lock stealing locking/rwsem: Remove reader optimistic spinning
kernel/locking/lock_events_list.h | 6 +- kernel/locking/rwsem.c | 359 +++++++++--------------------- 2 files changed, 106 insertions(+), 259 deletions(-)
Signature · 1 line
2.38.1