From 33247c39310ee3b56e196da8f41628fa60c2df08 Mon Sep 17 00:00:00 2001 From: Mark-PK Tsai Date: Fri, 6 Oct 2023 14:02:40 +0800 Subject: [PATCH] zsmalloc: use copy_page for full page copy 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. Link: https://lkml.kernel.org/r/20231006060245.7411-1-mark-pk.tsai@mediatek.com Signed-off-by: Mark-PK Tsai Reviewed-by: Sergey Senozhatsky Cc: AngeloGioacchino Del Regno Cc: Matthias Brugger Cc: Minchan Kim Cc: YJ Chiang Signed-off-by: Andrew Morton --- mm/zsmalloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index aed65338c..16f34d0e7 100755 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -2015,7 +2015,7 @@ static int zs_page_migrate(struct address_space *mapping, struct page *newpage, * 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); kunmap_atomic(d_addr); for (addr = s_addr + offset; addr < s_addr + pos;