From: Nhat Pham <nphamcs@gmail.com>
To: Chengming Zhou <zhouchengming@bytedance.com>
Cc: Vitaly Wool <vitaly.wool@konsulko.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Michal Hocko <mhocko@kernel.org>,
Seth Jennings <sjenning@redhat.com>,
Dan Streetman <ddstreet@ieee.org>,
Andrew Morton <akpm@linux-foundation.org>,
Yosry Ahmed <yosryahmed@google.com>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/7] mm/zswap: change dstmem size to one page
Date: Wed, 6 Dec 2023 09:12:38 -0800 [thread overview]
Message-ID: <CAKEwX=M3iYV--kn+TEhLytijAOPH0_077KzvuGBE3+2r7AcW7Q@mail.gmail.com> (raw)
In-Reply-To: <20231206-zswap-lock-optimize-v1-4-e25b059f9c3a@bytedance.com>
On Wed, Dec 6, 2023 at 1:46 AM Chengming Zhou
<zhouchengming@bytedance.com> wrote:
>
> Maybe I missed something, but the dstmem size of 2 * PAGE_SIZE is
> very confusing, since we only need at most one page when compress,
> and the "dlen" is also PAGE_SIZE in acomp_request_set_params().
>
> So change it to one page, and fix the comments.
>
> Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
> ---
> mm/zswap.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/mm/zswap.c b/mm/zswap.c
> index d93a7b58b5af..999671dcb469 100644
> --- a/mm/zswap.c
> +++ b/mm/zswap.c
> @@ -699,7 +699,7 @@ static int zswap_dstmem_prepare(unsigned int cpu)
> struct mutex *mutex;
> u8 *dst;
>
> - dst = kmalloc_node(PAGE_SIZE * 2, GFP_KERNEL, cpu_to_node(cpu));
> + dst = kmalloc_node(PAGE_SIZE, GFP_KERNEL, cpu_to_node(cpu));
> if (!dst)
> return -ENOMEM;
>
> @@ -1649,8 +1649,7 @@ bool zswap_store(struct folio *folio)
> sg_init_table(&input, 1);
> sg_set_page(&input, page, PAGE_SIZE, 0);
>
> - /* zswap_dstmem is of size (PAGE_SIZE * 2). Reflect same in sg_list */
> - sg_init_one(&output, dst, PAGE_SIZE * 2);
> + sg_init_one(&output, dst, PAGE_SIZE);
Hmm. This is very weird. It looks very intentional though, so perhaps
we should consult the maintainer or the original author of this logic
to double check this?
My best guess is for cases where the compression algorithm fails - i.e
the output (header + payload) is somehow bigger than the original
data. But not sure if this happens at all, and if the size > PAGE_SIZE
we don't wanna store the output in zswap anyway.
> acomp_request_set_params(acomp_ctx->req, &input, &output, PAGE_SIZE, dlen);
> /*
> * it maybe looks a little bit silly that we send an asynchronous request,
>
> --
> b4 0.10.1
next prev parent reply other threads:[~2023-12-06 17:12 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-06 9:46 [PATCH 0/7] mm/zswap: optimize the scalability of zswap rb-tree Chengming Zhou
2023-12-06 9:46 ` [PATCH 1/7] mm/zswap: make sure each swapfile always have " Chengming Zhou
2023-12-08 15:17 ` kernel test robot
2023-12-08 15:45 ` Chengming Zhou
2023-12-08 16:45 ` kernel test robot
2023-12-06 9:46 ` [PATCH 2/7] mm/zswap: split " Chengming Zhou
2023-12-06 9:46 ` [PATCH 3/7] mm/zswap: reuse dstmem when decompress Chengming Zhou
2023-12-12 22:58 ` Nhat Pham
2023-12-13 2:41 ` Chengming Zhou
2023-12-06 9:46 ` [PATCH 4/7] mm/zswap: change dstmem size to one page Chengming Zhou
2023-12-06 17:12 ` Nhat Pham [this message]
2023-12-07 2:59 ` Chengming Zhou
2023-12-06 9:46 ` [PATCH 5/7] mm/zswap: refactor out __zswap_load() Chengming Zhou
2023-12-12 23:13 ` Nhat Pham
2023-12-13 2:46 ` Chengming Zhou
2023-12-06 9:46 ` [PATCH 6/7] mm/zswap: cleanup zswap_load() Chengming Zhou
2023-12-06 9:46 ` [PATCH 7/7] mm/zswap: cleanup zswap_reclaim_entry() Chengming Zhou
2023-12-06 17:24 ` [PATCH 0/7] mm/zswap: optimize the scalability of zswap rb-tree Nhat Pham
2023-12-06 20:41 ` Yosry Ahmed
2023-12-07 0:43 ` Chris Li
2023-12-07 3:25 ` Chengming Zhou
2023-12-12 23:26 ` Yosry Ahmed
2023-12-12 23:33 ` Nhat Pham
2023-12-13 2:57 ` Chengming Zhou
2023-12-06 20:08 ` Nhat Pham
2023-12-07 3:13 ` Chengming Zhou
2023-12-07 15:18 ` Chengming Zhou
2023-12-07 18:15 ` Nhat Pham
2023-12-07 18:57 ` Nhat Pham
2023-12-08 15:41 ` Chengming Zhou
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='CAKEwX=M3iYV--kn+TEhLytijAOPH0_077KzvuGBE3+2r7AcW7Q@mail.gmail.com' \
--to=nphamcs@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=ddstreet@ieee.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=sjenning@redhat.com \
--cc=vitaly.wool@konsulko.com \
--cc=yosryahmed@google.com \
--cc=zhouchengming@bytedance.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