diff options
| author | Jens Axboe <[email protected]> | 2021-02-24 13:32:30 -0700 |
|---|---|---|
| committer | Jens Axboe <[email protected]> | 2021-04-11 17:41:58 -0600 |
| commit | abc54d634334f24d9a3253b8207b42eda852f25a (patch) | |
| tree | 793bd8e420f2e5566e1f75d2ea4e698ef010ea0a /tools/perf/scripts/python/bin | |
| parent | de9b4ccad750f216616730b74ed2be16c80892a4 (diff) | |
io_uring: switch to atomic_t for io_kiocb reference count
io_uring manipulates references twice for each request, and hence is very
sensitive to performance of the reference count. This commit borrows a
trick from:
commit f958d7b528b1b40c44cfda5eabe2d82760d868c3
Author: Linus Torvalds <[email protected]>
Date: Thu Apr 11 10:06:20 2019 -0700
mm: make page ref count overflow check tighter and more explicit
and switches to atomic_t for references, while still retaining overflow
and underflow checks.
This is good for a 2-3% increase in peak IOPS on a single core. Before:
IOPS=2970879, IOS/call=31/31, inflight=128 (128)
IOPS=2952597, IOS/call=31/31, inflight=128 (128)
IOPS=2943904, IOS/call=31/31, inflight=128 (128)
IOPS=2930006, IOS/call=31/31, inflight=96 (96)
and after:
IOPS=3054354, IOS/call=31/31, inflight=128 (128)
IOPS=3059038, IOS/call=31/31, inflight=128 (128)
IOPS=3060320, IOS/call=31/31, inflight=128 (128)
IOPS=3068256, IOS/call=31/31, inflight=96 (96)
Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions