Re: [RFC PATCH 2/2] zsmalloc: chain-length configuration should consider other metrics
From: Sergey Senozhatsky
Date: Mon Jan 12 2026 - 00:07:30 EST
On (26/01/12 13:01), Herbert Xu wrote:
> On Fri, Jan 09, 2026 at 04:02:51PM +0000, Yosry Ahmed wrote:
> >
> > Herbert, do you mind taking a look at this? It looks sane to me except
> > for one question below.
>
> Looks alright to me too.
>
> > > + size_t sizes[2];
> > > +
> > > + /* this object spans two pages */
> > > + sizes[0] = PAGE_SIZE - off;
> > > + sizes[1] = mem_len - sizes[0];
> > > +
> > > + sg_init_table(sg, 2);
> > > + sg_set_page(sg, zpdesc_page(zpdesc), sizes[0], off);
> > > +
> > > + zpdesc = get_next_zpdesc(zpdesc);
> > > + sg = sg_next(sg);
> >
> > Is this stateful? Will the SG list be returned pointing at the second
> > page now?
>
> It makes no difference because we just called sg_init_table(sg, 2),
> so sg_next(sg) is equivalent to &sg[1].
I did it this way for (sort of) consistency: sg next follows zpdesc next.