On 3/31/23 14:35, Gabriel Krisman Bertazi wrote:
Pavel Begunkov <asml.silence@xxxxxxxxx> writes:
Updating registered files and buffers is a very slow operation, which
makes it not feasible for workloads with medium update frequencies.
Rework the underlying rsrc infra for greater performance and lesser
The improvement is ~11x for a benchmark updating files in a loop
(1040K -> 11468K updates / sec).
Nice. That's a really impressive improvement.
I've been adding io_uring test cases for automated performance
regression testing with mmtests (open source). I'd love to take a look
at this test case and adapt it to mmtests, so we can pick it up and run
is it something you can share?
I'll post it later.
The test is quite stupid and with the patches less than 10% of CPU
cycles go to the update machinery (against 90+ w/o), the rest is spend
for syscalling, submitting update requests, etc., so it almost hits the
Another test we can do is to measure latency b/w the point we asked a
rsrc to be removed and when it actually got destroyed/freed, e.g. tags
will help with that. It should've been improved nicely as well as it
removes the RCU grace period and other bouncing.