From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933732AbeEWPQO (ORCPT ); Wed, 23 May 2018 11:16:14 -0400 Received: from m50-134.163.com ([123.125.50.134]:56206 "EHLO m50-134.163.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933517AbeEWPQF (ORCPT ); Wed, 23 May 2018 11:16:05 -0400 From: Huaisheng Ye To: akpm@linux-foundation.org, linux-mm@kvack.org Cc: mhocko@suse.com, willy@infradead.org, hch@lst.de, vbabka@suse.cz, mgorman@techsingularity.net, kstewart@linuxfoundation.org, gregkh@linuxfoundation.org, colyli@suse.de, chengnt@lenovo.com, hehy1@lenovo.com, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, xen-devel@lists.xenproject.org, linux-btrfs@vger.kernel.org, Huaisheng Ye , Minchan Kim , Nitin Gupta , Sergey Senozhatsky , Christoph Hellwig Subject: [RFC PATCH v3 7/9] mm/zsmalloc: update usage of zone modifiers Date: Wed, 23 May 2018 22:57:52 +0800 Message-Id: <1527087474-93986-8-git-send-email-yehs2007@163.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1527087474-93986-1-git-send-email-yehs2007@163.com> References: <1527087474-93986-1-git-send-email-yehs2007@163.com> X-CM-TRANSID: DtGowAAXEWSIgQVbCQ9NAA--.108S9 X-Coremail-Antispam: 1Uf129KBjvJXoW7trykKryDJrW8Aw4xWr13XFb_yoW8Cr13pF 9Fkw1xWFZ5Zr1aqa48AF4xAFySkwn7Gr17Kw43J348Zw1qqFyYgFnF9a45Za4rurWvkF1f ArZrKw1rCFs8XwUanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07b2cTdUUUUU= X-Originating-IP: [103.244.59.4] X-CM-SenderInfo: p1hk2jqqqxqiywtou0bp/xtbBFRdPT1Xlblwj6gAAsJ Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Huaisheng Ye Use __GFP_ZONE_MOVABLE to replace (__GFP_HIGHMEM | __GFP_MOVABLE). ___GFP_DMA, ___GFP_HIGHMEM and ___GFP_DMA32 have been deleted from GFP bitmasks, the bottom three bits of GFP mask is reserved for storing encoded zone number. __GFP_ZONE_MOVABLE contains encoded ZONE_MOVABLE and __GFP_MOVABLE flag. With GFP_ZONE_TABLE, __GFP_HIGHMEM ORing __GFP_MOVABLE means gfp_zone should return ZONE_MOVABLE. In order to keep that compatible with GFP_ZONE_TABLE, Use GFP_NORMAL_UNMOVABLE() to clear bottom 4 bits of GFP bitmaks. Signed-off-by: Huaisheng Ye Cc: Minchan Kim Cc: Nitin Gupta Cc: Sergey Senozhatsky Cc: Christoph Hellwig --- mm/zsmalloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 61cb05d..e250c69 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -345,7 +345,7 @@ static void destroy_cache(struct zs_pool *pool) static unsigned long cache_alloc_handle(struct zs_pool *pool, gfp_t gfp) { return (unsigned long)kmem_cache_alloc(pool->handle_cachep, - gfp & ~(__GFP_HIGHMEM|__GFP_MOVABLE)); + GFP_NORMAL_UNMOVABLE(gfp)); } static void cache_free_handle(struct zs_pool *pool, unsigned long handle) @@ -356,7 +356,7 @@ static void cache_free_handle(struct zs_pool *pool, unsigned long handle) static struct zspage *cache_alloc_zspage(struct zs_pool *pool, gfp_t flags) { return kmem_cache_alloc(pool->zspage_cachep, - flags & ~(__GFP_HIGHMEM|__GFP_MOVABLE)); + GFP_NORMAL_UNMOVABLE(flags)); } static void cache_free_zspage(struct zs_pool *pool, struct zspage *zspage) -- 1.8.3.1