Re: [PATCH RFC} io_uring: io_kiocb alloc cache

Pekka Enberg
2020-05-13T20:32:06Z

Hi Jens,

On 5/13/20 1:20 PM, Pekka Enberg wrote:
>> So I assume if someone does "perf record", they will see significant
>> reduction in page allocator activity with Jens' patch. One possible way
>> around that is forcing the page allocation order to be much higher. IOW,
>> something like the following completely untested patch:

On 5/13/20 11:09 PM, Jens Axboe wrote:
> Now tested, I gave it a shot. This seems to bring performance to
> basically what the io_uring patch does, so that's great! Again, just in
> the microbenchmark test case, so freshly booted and just running the
> case.

Great, thanks for testing!

On 5/13/20 11:09 PM, Jens Axboe wrote:
> Will this patch introduce latencies or non-deterministic behavior for a
> fragmented system?

You have to talk to someone who is more up-to-date with how the page
allocator operates today. But yeah, I assume people still want to avoid
higher-order allocations as much as possible, because they make
allocation harder when memory is fragmented.

That said, perhaps it's not going to the page allocator as much as I
thought, but the problem is that the per-CPU cache size is just to small
for these allocations, forcing do_slab_free() to take the slow path
often. Would be interesting to know if CONFIG_SLAB does better here
because the per-CPU cache size is much larger IIRC.

- Pekka