Re: [PATCH] mm/zsmalloc: inline obj_malloc() and obj_free()

From: Jenhao Chen

Date: Thu Nov 05 2026 - 20:12:58 EST


On (26/11/05 20:09), Sergey Senozhatsky wrote:
> > If we also mark obj_write() __always_inline alongside obj_malloc()
> > and obj_free() (with noinline on alloc_zspage()), the compiler CSEs
> > those redundant operations across the fast path:
> > - arm64 (Clang 22): -31.3 (-O2, -4.0%) / -34.7 (-O2 + AUTOFDO, -4.5%)
> > retired instructions per zs_store() + zs_free() pair (vs. -8.4 for
> > obj_malloc() alone), shrinking zs_store() under AUTOFDO from
> > 3,144 B to 2,448 B (-22%).
> > - x86_64 (Clang 22): -26.6 (-O2) / -31.8 (-O2 + AUTOFDO) retired
> > instructions per pair (~4.0-4.5% latency reduction).
> > - x86_64 (GCC 15 -O2): -37.1 retired instructions (-5.1%) and -5.3%
> > latency (-5.5% cycles) per pair, while keeping zs_store() slightly
> > smaller (1,997 B -> 1,943 B).
>
> Great, I'd love to see that in v2 commit message.
>
> > Would you prefer that I send v2 rebased on top of [1] (including
> > __always_inline on obj_write()), or send v2 against current mm-new
> > first?
>
> If it doesn't trouble you too much, can we finalize [1] first so then
> you can send your patch atop of it? I can ping you when [1] is done.

Sounds good to me -- no trouble at all. Let's finalize [1] first, and
I'll send v2 on top of it (with __always_inline on obj_write() and the
benchmark numbers in the commit message) once [1] is ready. Thanks for
offering to ping!

Best,
Jenhao