From: Vishal Moola <vishal.moola@gmail.com>
To: Alex Shi <seakeel@gmail.com>
Cc: alexs@kernel.org, Vitaly Wool <vitaly.wool@konsulko.com>,
Miaohe Lin <linmiaohe@huawei.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
minchan@kernel.org, willy@infradead.org,
senozhatsky@chromium.org, david@redhat.com, 42.hyeyoo@gmail.com,
Yosry Ahmed <yosryahmed@google.com>,
nphamcs@gmail.com
Subject: Re: [PATCH v4 06/22] mm/zsmalloc: convert create_page_chain() and its users to use zpdesc
Date: Thu, 8 Aug 2024 11:25:02 -0700 [thread overview]
Message-ID: <66b50d7f.170a0220.2171ed.8a4f@mx.google.com> (raw)
In-Reply-To: <a3cc7157-6ea0-4493-8baf-c988b9fa4dcb@gmail.com>
On Mon, Aug 05, 2024 at 04:20:15PM +0800, Alex Shi wrote:
>
>
> On 8/3/24 3:09 AM, Vishal Moola wrote:
> > On Mon, Jul 29, 2024 at 07:25:18PM +0800, alexs@kernel.org wrote:
> >> From: Alex Shi <alexs@kernel.org>
> >>
> >> Introduce a few helper functions for conversion to convert create_page_chain()
> >> to use zpdesc, then use zpdesc in replace_sub_page() too.
> >
> > As a general note, I've been having trouble keeping track of your helper
> > functions throughout your patchset. Things get confusing when helper
> > functions are "add-ons" to patches and are then replaced/rewritten
> > in various subsequent patches - might just be me though.
>
> Right, maybe too much helper doesn't give necessary help.
>
> >
> >> Originally-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
> >> Signed-off-by: Alex Shi <alexs@kernel.org>
> >> ---
> >> mm/zpdesc.h | 6 +++
> >> mm/zsmalloc.c | 115 +++++++++++++++++++++++++++++++++-----------------
> >> 2 files changed, 82 insertions(+), 39 deletions(-)
> >>
> >> diff --git a/mm/zpdesc.h b/mm/zpdesc.h
> >> index 79ec40b03956..2293453f5d57 100644
> >> --- a/mm/zpdesc.h
> >> +++ b/mm/zpdesc.h
> >> @@ -102,4 +102,10 @@ static inline struct zpdesc *pfn_zpdesc(unsigned long pfn)
> >> {
> >> return page_zpdesc(pfn_to_page(pfn));
> >> }
> >> +
> >> +static inline void __zpdesc_set_movable(struct zpdesc *zpdesc,
> >> + const struct movable_operations *mops)
> >> +{
> >> + __SetPageMovable(zpdesc_page(zpdesc), mops);
> >> +}
> >> #endif
> >> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
> >> index bbc165cb587d..a8f390beeab8 100644
> >> --- a/mm/zsmalloc.c
> >> +++ b/mm/zsmalloc.c
> >> @@ -248,6 +248,41 @@ static inline void *zpdesc_kmap_atomic(struct zpdesc *zpdesc)
> >> return kmap_atomic(zpdesc_page(zpdesc));
> >> }
> >>
> >> +static inline void zpdesc_set_zspage(struct zpdesc *zpdesc,
> >> + struct zspage *zspage)
> >> +{
> >> + zpdesc->zspage = zspage;
> >> +}
> >> +
> >> +static inline void zpdesc_set_first(struct zpdesc *zpdesc)
> >> +{
> >> + SetPagePrivate(zpdesc_page(zpdesc));
> >> +}
> >> +
> >
> > I'm not a fan of the names above. IMO, naming should follow some
> > semblance of consistency regarding their purpose (or have comments
> > that describe their purpose instead).
> >
> > At a glance zpdesc_set_zspage() and zpdesc_set_first() sound like they
> > are doing similar things, but I don't think they serve similar purposes?
>
> zpdesc_set_zspage() only used in one place, a helper maynot needed. Let me remove it.
> Same thing for the alloc_zpdesc() and free_zpdesc(), they could be merge into using place.
alloc_zpdesc() and free_zpdesc() are fine as is. The helper functions
will be useful whenever memdescs can be allocated on their own, so its
better to introduce it now.
> Thanks
> Alex
> >
> >> +static inline void zpdesc_inc_zone_page_state(struct zpdesc *zpdesc)
> >> +{
> >> + inc_zone_page_state(zpdesc_page(zpdesc), NR_ZSPAGES);
> >> +}
> >> +
> >> +static inline void zpdesc_dec_zone_page_state(struct zpdesc *zpdesc)
> >> +{
> >> + dec_zone_page_state(zpdesc_page(zpdesc), NR_ZSPAGES);
> >> +}
> >> +
> >> +static inline struct zpdesc *alloc_zpdesc(gfp_t gfp)
> >> +{
> >> + struct page *page = alloc_page(gfp);
> >> +
> >> + return page_zpdesc(page);
> >> +}
> >> +
> >> +static inline void free_zpdesc(struct zpdesc *zpdesc)
> >> +{
> >> + struct page *page = zpdesc_page(zpdesc);
> >> +
> >> + __free_page(page);
> >> +}
> >> +
> >
next prev parent reply other threads:[~2024-08-08 18:25 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-29 11:25 [PATCH v4 00/22] mm/zsmalloc: add zpdesc memory descriptor for zswap.zpool alexs
2024-07-29 11:25 ` [PATCH v4 01/22] " alexs
2024-08-02 18:52 ` Vishal Moola
2024-08-05 4:06 ` Alex Shi
2024-08-08 18:21 ` Vishal Moola
2024-08-09 1:57 ` Alex Shi
2024-08-02 19:30 ` Matthew Wilcox
2024-08-05 4:36 ` Alex Shi
2024-07-29 11:25 ` [PATCH v4 02/22] mm/zsmalloc: use zpdesc in trylock_zspage/lock_zspage alexs
2024-08-02 19:02 ` Vishal Moola
2024-08-05 7:55 ` Alex Shi
2024-07-29 11:25 ` [PATCH v4 03/22] mm/zsmalloc: convert __zs_map_object/__zs_unmap_object to use zpdesc alexs
2024-07-30 9:38 ` Sergey Senozhatsky
2024-07-29 11:25 ` [PATCH v4 04/22] mm/zsmalloc: add and use pfn/zpdesc seeking funcs alexs
2024-07-29 11:25 ` [PATCH v4 05/22] mm/zsmalloc: convert obj_malloc() to use zpdesc alexs
2024-07-29 11:25 ` [PATCH v4 06/22] mm/zsmalloc: convert create_page_chain() and its users " alexs
2024-08-02 19:09 ` Vishal Moola
2024-08-05 8:20 ` Alex Shi
2024-08-08 18:25 ` Vishal Moola [this message]
2024-08-09 1:57 ` Alex Shi
2024-07-29 11:25 ` [PATCH v4 07/22] mm/zsmalloc: convert obj_allocated() and related helpers " alexs
2024-07-29 11:25 ` [PATCH v4 08/22] mm/zsmalloc: convert init_zspage() " alexs
2024-07-29 11:25 ` [PATCH v4 09/22] mm/zsmalloc: convert obj_to_page() and zs_free() " alexs
2024-07-29 11:25 ` [PATCH v4 10/22] mm/zsmalloc: add zpdesc_is_isolated/zpdesc_zone helper for zs_page_migrate alexs
2024-07-29 11:25 ` [PATCH v4 11/22] mm/zsmalloc: rename reset_page to reset_zpdesc and use zpdesc in it alexs
2024-07-29 11:25 ` [PATCH v4 12/22] mm/zsmalloc: convert __free_zspage() to use zdsesc alexs
2024-07-29 11:25 ` [PATCH v4 13/22] mm/zsmalloc: convert location_to_obj() to take zpdesc alexs
2024-07-29 11:25 ` [PATCH v4 14/22] mm/zsmalloc: convert migrate_zspage() to use zpdesc alexs
2024-07-29 11:25 ` [PATCH v4 15/22] mm/zsmalloc: convert get_zspage() to take zpdesc alexs
2024-07-29 11:25 ` [PATCH v4 16/22] mm/zsmalloc: convert SetZsPageMovable and remove unused funcs alexs
2024-07-29 11:25 ` [PATCH v4 17/22] mm/zsmalloc: convert get/set_first_obj_offset() to take zpdesc alexs
2024-07-29 11:25 ` [PATCH v4 18/22] mm/zsmalloc: introduce __zpdesc_clear_movable alexs
2024-07-30 9:34 ` Sergey Senozhatsky
2024-07-30 11:38 ` Alex Shi
2024-07-29 11:25 ` [PATCH v4 19/22] mm/zsmalloc: introduce __zpdesc_clear_zsmalloc alexs
2024-07-29 11:25 ` [PATCH v4 20/22] mm/zsmalloc: introduce __zpdesc_set_zsmalloc() alexs
2024-08-02 19:11 ` Vishal Moola
2024-08-05 8:28 ` Alex Shi
2024-07-29 11:25 ` [PATCH v4 21/22] mm/zsmalloc: fix build warning from lkp testing alexs
2024-08-02 19:13 ` Vishal Moola
2024-08-05 8:38 ` Alex Shi
2024-07-29 11:25 ` [PATCH v4 22/22] mm/zsmalloc: update comments for page->zpdesc changes alexs
2024-07-30 9:37 ` Sergey Senozhatsky
2024-07-30 11:45 ` Alex Shi
2024-07-31 2:16 ` Sergey Senozhatsky
2024-07-31 4:14 ` Alex Shi
2024-08-01 3:13 ` Sergey Senozhatsky
2024-08-01 3:35 ` Matthew Wilcox
2024-08-01 8:06 ` Alex Shi
2024-07-30 12:31 ` [PATCH 23/23] mm/zsmalloc: introduce zpdesc_clear_first() helper alexs
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=66b50d7f.170a0220.2171ed.8a4f@mx.google.com \
--to=vishal.moola@gmail.com \
--cc=42.hyeyoo@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=alexs@kernel.org \
--cc=david@redhat.com \
--cc=linmiaohe@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=minchan@kernel.org \
--cc=nphamcs@gmail.com \
--cc=seakeel@gmail.com \
--cc=senozhatsky@chromium.org \
--cc=vitaly.wool@konsulko.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.