Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp434462imm; Mon, 21 May 2018 08:21:15 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqb95kNKXoZ+EV8XqomRiffm0ruc2qcjMdiBRn39Z2cJj/Zbna2y8c63FzYvtGNKu/ph4cd X-Received: by 2002:a17:902:8ec4:: with SMTP id x4-v6mr20613916plo.370.1526916075782; Mon, 21 May 2018 08:21:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526916075; cv=none; d=google.com; s=arc-20160816; b=Gy8+/1Ab43pB/LmrLyRmx/ztyN+/ITwSzsAE+JJyVdnU2YgVv4ZzEUFeetNt5SyyRv 0RQGT7Nd8g1bGxYAvL/j5n9Cg/U1NKJSHywNo47lCNB7uZ5ojqg9i2498TQFZOYw7Ixo FOTA7meJjVnIbUssj0rJE167XtfONfwS5nYq2JBJU2IwqYmPI0BxTTT6LtcrYiY2mvkT J4ND6iFUfVV9R9zMn+soo7mbsyRwYkvO8Qz2dWjIaJLFfJYliroWTxpOSiW5tQ577O8i kJZfp2pdcj/cj0W3k6EpPmg2mkTd0beBKajF9Us3cTDbhPNodetEFLUoFFjiJq4LeyS7 6oVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=G8TTXbKLrxMwtFaM3DlGa+eBKWQt/8m2+RFUkp9qT2U=; b=hveY36PoD3DlNbKOuamoPfily49g1zFIh6RRlKXKfTZQCI7Aaz0X0hvI+5etVVGwXJ qqLmxjs9nlx+h+BZYEwmoW78LDPrwOFh1y3CMBX3DT/iujEd1D6ggFcpF+5GHgh/ofxn ONWXYodtxxeIoE0gPph1aQoj6HLk5qpZvwwvU2Vhrh8v2NPEWM3AKL2vNdWCQzU3LFci qk/eSGoTMuCKquJ8Zk7pGC3G58AGmxSl2nbo78Mc0YgnbehSgHODg8ZJhVzp3g53qeqs rv/tI+NUtMAv0TWpGgQYf14ee+oBQrbzliA0gjWTKBzPI2w8bSuHOGGkgLGG7M+JkoRh Xo8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=YTpu4tOS; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a8-v6si14074512ple.222.2018.05.21.08.21.00; Mon, 21 May 2018 08:21:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=YTpu4tOS; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753160AbeEUPUq (ORCPT + 99 others); Mon, 21 May 2018 11:20:46 -0400 Received: from mail-pg0-f66.google.com ([74.125.83.66]:32847 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752701AbeEUPUm (ORCPT ); Mon, 21 May 2018 11:20:42 -0400 Received: by mail-pg0-f66.google.com with SMTP id e21-v6so1602610pgv.0; Mon, 21 May 2018 08:20:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=G8TTXbKLrxMwtFaM3DlGa+eBKWQt/8m2+RFUkp9qT2U=; b=YTpu4tOSw0j9uv/tEgI7ATqO3w0ZDbvlpunTTpWmIcD3Ywaqu0l87U0Sci7ekenTH7 fkq/KQExhFsXKcN+Us3o6iOjf1g95FhqvXvGA1L/JAqL9KeKgIfqtr16Jjp4XThFJUd5 kt1fuSJBVgbPTzrPD8EI1MzAHn4krPNVtAs1P9HsY4853/uwVnb+OZwoKfWD670aPbqp ec8S4D9djMNHNbQ2qu7Qff0A5/2Xl+W7zp7nCSEBDk5SJkzyG/VHW+EvFWtGwv0ZAs09 YznExHiyM1sxkeYpFOOis3k4F3Uq3ELgRViRpW8rKmoOxHKCRRs5DBuYhriLKFd2YShc hD+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=G8TTXbKLrxMwtFaM3DlGa+eBKWQt/8m2+RFUkp9qT2U=; b=lavVrauW4a0ZmmFRvMtqhT0dGV1g62uELrFbBzSgNdJ+tqfPKsW8//j0QINqaQc71I K8oL/+AGPd08JSwptHG8u4NHdPP2TVk6ARuOn4wBhdKydRMIHlx83sPe5WQvfrw5VwOd 3j9Is2X3K4679fpGyU4zuRw6z2IAdrD15JeXpmz64gePnLqDTFZTRAUtbSA5rUxMy2l4 eAgyx447qcx7ixwMZQv9bKAUsxtGH5gZhgiBeFKFyzJBoaDC4DGGhn4/SsQsGNuUojtj 6Fj8ahjGMbCBUtSr3oj4WfwN8e2OoyuRF/opq9EL44IyAzDUgtSobQETTVhGhEUclmZj tB/A== X-Gm-Message-State: ALKqPwe2Spp7Eg52E/KfoLjnWWYBAp2jEmdsCP0BE1Ez/Q9OnRZlsFcI bpOA62FVCHcGX0VHWYpEChg= X-Received: by 2002:a63:6fcb:: with SMTP id k194-v6mr1693905pgc.349.1526916042142; Mon, 21 May 2018 08:20:42 -0700 (PDT) Received: from localhost.localdomain ([125.33.105.40]) by smtp.gmail.com with ESMTPSA id t14-v6sm30844344pfh.109.2018.05.21.08.20.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 21 May 2018 08:20:41 -0700 (PDT) From: Huaisheng Ye To: akpm@linux-foundation.org, linux-mm@kvack.org Cc: mhocko@suse.com, willy@infradead.org, vbabka@suse.cz, mgorman@techsingularity.net, kstewart@linuxfoundation.org, alexander.levin@verizon.com, 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 Subject: [RFC PATCH v2 00/12] get rid of GFP_ZONE_TABLE/BAD Date: Mon, 21 May 2018 23:20:21 +0800 Message-Id: <1526916033-4877-1-git-send-email-yehs2007@gmail.com> X-Mailer: git-send-email 1.8.3.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Huaisheng Ye Replace GFP_ZONE_TABLE and GFP_ZONE_BAD with encoded zone number. Delete ___GFP_DMA, ___GFP_HIGHMEM and ___GFP_DMA32 from GFP bitmasks, the bottom three bits of GFP mask is reserved for storing encoded zone number. The encoding method is XOR. Get zone number from enum zone_type, then encode the number with ZONE_NORMAL by XOR operation. The goal is to make sure ZONE_NORMAL can be encoded to zero. So, the compatibility can be guaranteed, such as GFP_KERNEL and GFP_ATOMIC can be used as before. Reserve __GFP_MOVABLE in bit 3, so that it can continue to be used as a flag. Same as before, __GFP_MOVABLE respresents movable migrate type for ZONE_DMA, ZONE_DMA32, and ZONE_NORMAL. But when it is enabled with __GFP_HIGHMEM, ZONE_MOVABLE shall be returned instead of ZONE_HIGHMEM. __GFP_ZONE_MOVABLE is created to realize it. With this patch, just enabling __GFP_MOVABLE and __GFP_HIGHMEM is not enough to get ZONE_MOVABLE from gfp_zone. All callers should use GFP_HIGHUSER_MOVABLE or __GFP_ZONE_MOVABLE directly to achieve that. Decode zone number directly from bottom three bits of flags in gfp_zone. The theory of encoding and decoding is, A ^ B ^ B = A Changes since v1, v2: Add __GFP_ZONE_MOVABLE and modify GFP_HIGHUSER_MOVABLE to help callers to get ZONE_MOVABLE. Add __GFP_ZONE_MASK to mask lowest 3 bits of GFP bitmasks. Modify some callers' gfp flag to update usage of address zone modifiers. Modify inline function gfp_zone to get better performance according to Matthew's suggestion. Link: https://marc.info/?l=linux-mm&m=152596791931266&w=2 Huaisheng Ye (12): include/linux/gfp.h: get rid of GFP_ZONE_TABLE/BAD arch/x86/kernel/amd_gart_64: update usage of address zone modifiers arch/x86/kernel/pci-calgary_64: update usage of address zone modifiers drivers/iommu/amd_iommu: update usage of address zone modifiers include/linux/dma-mapping: update usage of address zone modifiers drivers/xen/swiotlb-xen: update usage of address zone modifiers fs/btrfs/extent_io: update usage of address zone modifiers drivers/block/zram/zram_drv: update usage of address zone modifiers mm/vmpressure: update usage of address zone modifiers mm/zsmalloc: update usage of address zone modifiers include/linux/highmem: update usage of movableflags arch/x86/include/asm/page.h: update usage of movableflags arch/x86/include/asm/page.h | 3 +- arch/x86/kernel/amd_gart_64.c | 2 +- arch/x86/kernel/pci-calgary_64.c | 2 +- drivers/block/zram/zram_drv.c | 6 +-- drivers/iommu/amd_iommu.c | 2 +- drivers/xen/swiotlb-xen.c | 2 +- fs/btrfs/extent_io.c | 2 +- include/linux/dma-mapping.h | 2 +- include/linux/gfp.h | 98 +++++----------------------------------- include/linux/highmem.h | 4 +- mm/vmpressure.c | 2 +- mm/zsmalloc.c | 4 +- 12 files changed, 26 insertions(+), 103 deletions(-) -- 1.8.3.1