| From: Kanchana P Sridhar <kanchana.p.sridhar@intel.com> |
| Subject: mm: zswap: modify zswap_compress() to accept a page instead of a folio |
| Date: Mon, 30 Sep 2024 22:32:17 -0700 |
| |
| For zswap_store() to be able to store a large folio by compressing it one |
| page at a time, zswap_compress() needs to accept a page as input. This |
| will allow us to iterate through each page in the folio in zswap_store(), |
| compress it and store it in the zpool. |
| |
| Link: https://lkml.kernel.org/r/20241001053222.6944-3-kanchana.p.sridhar@intel.com |
| Signed-off-by: Kanchana P Sridhar <kanchana.p.sridhar@intel.com> |
| Reviewed-by: Nhat Pham <nphamcs@gmail.com> |
| Reviewed-by: Chengming Zhou <chengming.zhou@linux.dev> |
| Acked-by: Johannes Weiner <hannes@cmpxchg.org> |
| Acked-by: Yosry Ahmed <yosryahmed@google.com> |
| Cc: "Huang, Ying" <ying.huang@intel.com> |
| Cc: Matthew Wilcox <willy@infradead.org> |
| Cc: Ryan Roberts <ryan.roberts@arm.com> |
| Cc: Shakeel Butt <shakeel.butt@linux.dev> |
| Cc: Usama Arif <usamaarif642@gmail.com> |
| Cc: Wajdi Feghali <wajdi.k.feghali@intel.com> |
| Cc: "Zou, Nanhai" <nanhai.zou@intel.com> |
| Cc: Barry Song <21cnbao@gmail.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| mm/zswap.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/mm/zswap.c~mm-zswap-modify-zswap_compress-to-accept-a-page-instead-of-a-folio |
| +++ a/mm/zswap.c |
| @@ -875,7 +875,7 @@ static int zswap_cpu_comp_dead(unsigned |
| return 0; |
| } |
| |
| -static bool zswap_compress(struct folio *folio, struct zswap_entry *entry) |
| +static bool zswap_compress(struct page *page, struct zswap_entry *entry) |
| { |
| struct crypto_acomp_ctx *acomp_ctx; |
| struct scatterlist input, output; |
| @@ -893,7 +893,7 @@ static bool zswap_compress(struct folio |
| |
| dst = acomp_ctx->buffer; |
| sg_init_table(&input, 1); |
| - sg_set_folio(&input, folio, PAGE_SIZE, 0); |
| + sg_set_page(&input, page, PAGE_SIZE, 0); |
| |
| /* |
| * We need PAGE_SIZE * 2 here since there maybe over-compression case, |
| @@ -1457,7 +1457,7 @@ bool zswap_store(struct folio *folio) |
| mem_cgroup_put(memcg); |
| } |
| |
| - if (!zswap_compress(folio, entry)) |
| + if (!zswap_compress(&folio->page, entry)) |
| goto put_pool; |
| |
| entry->swpentry = swp; |
| _ |