On 05/12, Masami Hiramatsu wrote: > > On Tue, 12 May 2026 13:29:52 +0200 > Oleg Nesterov <[email protected]> wrote: > > > > > > > - area = kzalloc_obj(*area); > > > + area = kzalloc_flex(*area, bitmap, BITS_TO_LONGS(UINSNS_PER_PAGE)); > > > > The downside is that kmalloc will use kmem_cache with ->object_size = > > PAGE_SIZE * 2, > > almost half of the allocated memory won't be used... > > Hmm, is the bitmap so big? > > #define UINSNS_PER_PAGE > (PAGE_SIZE/UPROBE_XOL_SLOT_BYTES) > > And even on arm64, > > #define UPROBE_XOL_SLOT_BYTES AARCH64_INSN_SIZE > > So if PAGE_SIZE is 4k, UINSNS_PER_PAGE is 1k, its BITS_TO_LONGS will > be 1024/64 = 16. So 128 bytes. So the object is allocated from > object_size = 256 ?
Indeed you are right. Sorry for the noise and thanks for correcting me! I can't even explain how can I came to conclusion that object_size can be greater than PAGE_SIZE with this change ;) So I think the patch from Rosen is fine. Thanks, Oleg.
