From: Sergey Senozhatsky <senozhatsky@chromium.org>
To: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Cc: Minchan Kim <minchan@kernel.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Andrew Morton <akpm@linux-foundation.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
yj.chiang@mediatek.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH] zsmalloc: use copy_page for full page copy
Date: Fri, 6 Oct 2023 20:11:44 +0900 [thread overview]
Message-ID: <20231006111144.GB17924@google.com> (raw)
In-Reply-To: <20231006060245.7411-1-mark-pk.tsai@mediatek.com>
On (23/10/06 14:02), Mark-PK Tsai wrote:
> Some architectures have implemented optimized
> copy_page for full page copying, such as arm.
>
> On my arm platform, use the copy_page helper
> for single page copying is about 10 percent faster
> than memcpy.
>
> Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
TIL
I've never heard of arm's copy_page() before. Is it really much
faster than memcpy()?
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
> index c743ce7a5f49..b1c0dad7f4cf 100644
> --- a/mm/zsmalloc.c
> +++ b/mm/zsmalloc.c
> @@ -1839,7 +1839,7 @@ static int zs_page_migrate(struct page *newpage, struct page *page,
> * Here, any user cannot access all objects in the zspage so let's move.
> */
> d_addr = kmap_atomic(newpage);
> - memcpy(d_addr, s_addr, PAGE_SIZE);
> + copy_page(d_addr, s_addr);
I guess you can also look into patching zram_drv.c, which seem to have
at least one PAGE_SIZE memcpy().
WARNING: multiple messages have this Message-ID (diff)
From: Sergey Senozhatsky <senozhatsky@chromium.org>
To: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Cc: Minchan Kim <minchan@kernel.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Andrew Morton <akpm@linux-foundation.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
yj.chiang@mediatek.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-mediatek@lists.infradead.org
Subject: Re: [PATCH] zsmalloc: use copy_page for full page copy
Date: Fri, 6 Oct 2023 20:11:44 +0900 [thread overview]
Message-ID: <20231006111144.GB17924@google.com> (raw)
In-Reply-To: <20231006060245.7411-1-mark-pk.tsai@mediatek.com>
On (23/10/06 14:02), Mark-PK Tsai wrote:
> Some architectures have implemented optimized
> copy_page for full page copying, such as arm.
>
> On my arm platform, use the copy_page helper
> for single page copying is about 10 percent faster
> than memcpy.
>
> Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
TIL
I've never heard of arm's copy_page() before. Is it really much
faster than memcpy()?
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
> index c743ce7a5f49..b1c0dad7f4cf 100644
> --- a/mm/zsmalloc.c
> +++ b/mm/zsmalloc.c
> @@ -1839,7 +1839,7 @@ static int zs_page_migrate(struct page *newpage, struct page *page,
> * Here, any user cannot access all objects in the zspage so let's move.
> */
> d_addr = kmap_atomic(newpage);
> - memcpy(d_addr, s_addr, PAGE_SIZE);
> + copy_page(d_addr, s_addr);
I guess you can also look into patching zram_drv.c, which seem to have
at least one PAGE_SIZE memcpy().
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-10-06 11:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-06 6:02 [PATCH] zsmalloc: use copy_page for full page copy Mark-PK Tsai
2023-10-06 6:02 ` Mark-PK Tsai
2023-10-06 11:11 ` Sergey Senozhatsky [this message]
2023-10-06 11:11 ` Sergey Senozhatsky
2023-10-07 7:45 ` Mark-PK Tsai (蔡沛剛)
2023-10-07 7:45 ` Mark-PK Tsai (蔡沛剛)
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=20231006111144.GB17924@google.com \
--to=senozhatsky@chromium.org \
--cc=akpm@linux-foundation.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-mm@kvack.org \
--cc=mark-pk.tsai@mediatek.com \
--cc=matthias.bgg@gmail.com \
--cc=minchan@kernel.org \
--cc=yj.chiang@mediatek.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.