Re: io_uring/memmap: compound allocation larger than accounted region
From: Gabriel Krisman Bertazi
Date: Thu Aug 06 2026 - 12:29:48 EST
Ali Ahmet Memis <ali@xxxxxxxxxxxxxx> writes:
> io_mem_alloc_compound() allocates get_order(size) pages, while
> io_create_region() accounts reg->size >> PAGE_SHIFT. For a ring with 4096 SQ
> entries and the default CQ size that is 64 pages allocated against 37
> accounted.
>
> Is that intentional? memcg charges the full allocation, so only RLIMIT_MEMLOCK
> undercounts, and the gap is bounded by 2x. I did not want to send a patch for
> something that may well be a deliberate trade for the single folio.
I don't think that is intentional, beyond a simplification of the
code. If it is, it seems like a bad idea. Not necessarily harmful in
itself, but we should be accounting properly and not doing it if it goes
above the rlimit.
--
Gabriel Krisman Bertazi