The patch titled Subject: mm: zpool: remove zpool_malloc_support_movable() has been added to the -mm mm-unstable branch. Its filename is mm-zpool-remove-zpool_malloc_support_movable.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-zpool-remove-zpool_malloc_support_movable.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Yosry Ahmed <yosry.ahmed@xxxxxxxxx> Subject: mm: zpool: remove zpool_malloc_support_movable() Date: Wed, 5 Mar 2025 06:11:33 +0000 zpool_malloc_support_movable() always returns true for zsmalloc, the only remaining zpool driver. Remove it and set the gfp flags in zswap_compress() accordingly. Opportunistically use GFP_NOWAIT instead of __GFP_NOWARN | __GFP_KSWAPD_RECLAIM for conciseness as they are equivalent. Link: https://lkml.kernel.org/r/20250305061134.4105762-6-yosry.ahmed@xxxxxxxxx Signed-off-by: Yosry Ahmed <yosry.ahmed@xxxxxxxxx> Reviewed-by: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx> Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx> Acked-by: Nhat Pham <nphamcs@xxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Chengming Zhou <chengming.zhou@xxxxxxxxx> Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Cc: Minchan Kim <minchan@xxxxxxxxxx> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/zpool.h | 3 --- mm/zpool.c | 16 ---------------- mm/zsmalloc.c | 1 - mm/zswap.c | 4 +--- 4 files changed, 1 insertion(+), 23 deletions(-) --- a/include/linux/zpool.h~mm-zpool-remove-zpool_malloc_support_movable +++ a/include/linux/zpool.h @@ -21,8 +21,6 @@ const char *zpool_get_type(struct zpool void zpool_destroy_pool(struct zpool *pool); -bool zpool_malloc_support_movable(struct zpool *pool); - int zpool_malloc(struct zpool *pool, size_t size, gfp_t gfp, unsigned long *handle); @@ -65,7 +63,6 @@ struct zpool_driver { void *(*create)(const char *name, gfp_t gfp); void (*destroy)(void *pool); - bool malloc_support_movable; int (*malloc)(void *pool, size_t size, gfp_t gfp, unsigned long *handle); void (*free)(void *pool, unsigned long handle); --- a/mm/zpool.c~mm-zpool-remove-zpool_malloc_support_movable +++ a/mm/zpool.c @@ -221,22 +221,6 @@ const char *zpool_get_type(struct zpool } /** - * zpool_malloc_support_movable() - Check if the zpool supports - * allocating movable memory - * @zpool: The zpool to check - * - * This returns if the zpool supports allocating movable memory. - * - * Implementations must guarantee this to be thread-safe. - * - * Returns: true if the zpool supports allocating movable memory, false if not - */ -bool zpool_malloc_support_movable(struct zpool *zpool) -{ - return zpool->driver->malloc_support_movable; -} - -/** * zpool_malloc() - Allocate memory * @zpool: The zpool to allocate from. * @size: The amount of memory to allocate. --- a/mm/zsmalloc.c~mm-zpool-remove-zpool_malloc_support_movable +++ a/mm/zsmalloc.c @@ -503,7 +503,6 @@ static struct zpool_driver zs_zpool_driv .owner = THIS_MODULE, .create = zs_zpool_create, .destroy = zs_zpool_destroy, - .malloc_support_movable = true, .malloc = zs_zpool_malloc, .free = zs_zpool_free, .obj_read_begin = zs_zpool_obj_read_begin, --- a/mm/zswap.c~mm-zpool-remove-zpool_malloc_support_movable +++ a/mm/zswap.c @@ -964,9 +964,7 @@ static bool zswap_compress(struct page * goto unlock; zpool = pool->zpool; - gfp = __GFP_NORETRY | __GFP_NOWARN | __GFP_KSWAPD_RECLAIM; - if (zpool_malloc_support_movable(zpool)) - gfp |= __GFP_HIGHMEM | __GFP_MOVABLE; + gfp = GFP_NOWAIT | __GFP_NORETRY | __GFP_HIGHMEM | __GFP_MOVABLE; alloc_ret = zpool_malloc(zpool, dlen, gfp, &handle); if (alloc_ret) goto unlock; _ Patches currently in -mm which might be from yosry.ahmed@xxxxxxxxx are mm-z3fold-remove-z3fold.patch mm-zbud-remove-zbud.patch mm-zpool-add-interfaces-for-object-read-write-apis.patch mm-zswap-use-object-read-write-apis-instead-of-object-mapping-apis.patch mm-zpool-remove-object-mapping-apis.patch mm-zsmalloc-remove-object-mapping-apis-and-per-cpu-map-areas.patch mm-zsmalloc-remove-object-mapping-apis-and-per-cpu-map-areas-fix.patch mm-zpool-remove-zpool_malloc_support_movable.patch