From: Hyeonggon Yoo <42.hyeyoo@gmail.com>
To: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Minchan Kim <minchan@kernel.org>,
Matthew Wilcox <willy@infradead.org>,
Mike Rapoport <rppt@kernel.org>,
Yosry Ahmed <yosryahmed@google.com>,
linux-mm@kvack.org
Subject: Re: [RFC PATCH v3 00/21] mm/zsmalloc: Split zsdesc from struct page
Date: Sun, 3 Dec 2023 14:21:28 +0900 [thread overview]
Message-ID: <CAB=+i9TzwkqV4NfQSrY8hsHhdiS1X11T_EP92quUA+Ykbs9W_g@mail.gmail.com> (raw)
In-Reply-To: <20231202043637.GC404241@google.com>
On Sat, Dec 2, 2023 at 1:36 PM Sergey Senozhatsky
<senozhatsky@chromium.org> wrote:
>
> On (23/12/01 11:28), Minchan Kim wrote:
> > On Thu, Nov 30, 2023 at 07:12:21PM +0900, Hyeonggon Yoo wrote:
> > > RFC v2: https://lore.kernel.org/linux-mm/20230713042037.980211-1-42.hyeyoo@gmail.com/
> > >
> > > v2 -> v3:
> > > - rebased to the latest mm-unstable
> > > - adjusted comments from Sergey Senozhatsky (Moving zsdesc definition,
> > > kerneldoc fix) and Yosry Ahmed (adding memcg_data field to zsdesc)
> > >
> > >
> > > V3 update is a bit late, but I still believe this is worth doing.
> > > It would be nice to get comments/reviews/acks from maintainers/people.
> > >
> > > Cover Letter:
> > >
> > > The purpose of this series is to define own memory descriptor for zsmalloc,
> > > instead of re-using various fields of struct page. This is a part of the
> > > effort to reduce the size of struct page to unsigned long and enable
> > > dynamic allocation of memory descriptors.
> > >
> > > While [1] outlines this ultimate objective, the current use of struct page
> > > is highly dependent on its definition, making it challenging to separately
> > > allocate memory descriptors.
> > >
> > > Therefore, this series introduces new descriptor for zsmalloc, called
> > > zsdesc. It overlays struct page for now, but will eventually be allocated
> > > independently in the future. And apart from dynamic allocation of descriptors,
> > > this is a nice cleanup.
> >
> > And the new descriptor doesn't bloat anything for zsmalloc meta size. Right?
> > Please specify it into the description.
>
> Right, that popped up [1] previously but I'm not sure if we had a definitive
> answer.
> https://lore.kernel.org/lkml/20230720071826.GE955071@google.com/
Oh, I thought I did, maybe I missed it.
Let me explain it here, it does not bloat the struct page:
> static_assert(sizeof(struct zsdesc) <= sizeof(struct page));
Otherwise the compiler will complain.
So with this patch series, it does not bloat the size of struct page,
nor allocates
additional memory for zsmalloc. Will add that in the description of
the next revision.
As Matthew pointed, in the future struct page and zsdesc may end up being
shrunken and separately allocated. What this series does is only
separating definition
of the descriptor (but still overlaying struct page)
Thanks a lot!
--
Hyeonggon
prev parent reply other threads:[~2023-12-03 5:21 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-30 10:12 Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 01/21] mm/zsmalloc: create new struct zsdesc Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 02/21] mm/zsmalloc: add utility functions for zsdesc Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 03/21] mm/zsmalloc: replace first_page to first_zsdesc in struct zspage Hyeonggon Yoo
2023-12-01 19:23 ` Minchan Kim
2023-12-03 5:22 ` Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 04/21] mm/zsmalloc: add alternatives of frequently used helper functions Hyeonggon Yoo
2023-12-04 3:45 ` Matthew Wilcox
2023-12-05 0:35 ` Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 05/21] mm/zsmalloc: convert {try,}lock_zspage() to use zsdesc Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 06/21] mm/zsmalloc: convert __zs_{map,unmap}_object() " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 07/21] mm/zsmalloc: convert obj_to_location() and its users " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 08/21] mm/zsmalloc: convert obj_malloc() " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 09/21] mm/zsmalloc: convert create_page_chain() and its users " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 10/21] mm/zsmalloc: convert obj_allocated() and related helpers " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 11/21] mm/zsmalloc: convert init_zspage() " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 12/21] mm/zsmalloc: convert obj_to_page() and zs_free() " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 13/21] mm/zsmalloc: convert reset_page() to reset_zsdesc() Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 14/21] mm/zsmalloc: convert zs_page_{isolate,migrate,putback} to use zsdesc Hyeonggon Yoo
2023-12-04 3:32 ` Sergey Senozhatsky
2023-12-05 0:21 ` Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 15/21] mm/zsmalloc: convert __free_zspage() " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 16/21] mm/zsmalloc: convert location_to_obj() " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 17/21] mm/zsmalloc: convert migrate_zspage() " Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 18/21] mm/zsmalloc: convert get_zspage() to take zsdesc Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 19/21] mm/zsmalloc: convert SetZsPageMovable() to use zsdesc Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 20/21] mm/zsmalloc: remove now unused helper functions Hyeonggon Yoo
2023-11-30 10:12 ` [RFC PATCH v3 21/21] mm/zsmalloc: convert {get,set}_first_obj_offset() to use zsdesc Hyeonggon Yoo
2023-12-01 19:28 ` [RFC PATCH v3 00/21] mm/zsmalloc: Split zsdesc from struct page Minchan Kim
2023-12-02 4:36 ` Sergey Senozhatsky
2023-12-02 22:46 ` Matthew Wilcox
2023-12-03 5:21 ` Hyeonggon Yoo [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAB=+i9TzwkqV4NfQSrY8hsHhdiS1X11T_EP92quUA+Ykbs9W_g@mail.gmail.com' \
--to=42.hyeyoo@gmail.com \
--cc=linux-mm@kvack.org \
--cc=minchan@kernel.org \
--cc=rppt@kernel.org \
--cc=senozhatsky@chromium.org \
--cc=willy@infradead.org \
--cc=yosryahmed@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox