Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5593179imu; Wed, 26 Dec 2018 05:41:02 -0800 (PST) X-Google-Smtp-Source: ALg8bN6Qy15u30r5bR+QaL9lI3tTHx0wR1TKBePvFOiyUqdvKqoEMZQ1kgvT1p9BONfZHyI2PYBR X-Received: by 2002:a17:902:4124:: with SMTP id e33mr19708330pld.236.1545831662759; Wed, 26 Dec 2018 05:41:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545831662; cv=none; d=google.com; s=arc-20160816; b=UhIy6MwAFMyqlWk9jMtXzVhd6gGwIUyIWuR8qn16Jz9psM4y18zHcwDjnzox06y+f9 E3nHvF3WzLyiw2ONobBLY7KkS9uw/iFbRMDfMQao9SE40hdBEu/XM9j85w+jRnUUlRir 3vcaNnuEGLAg5JqLhH9MMe1iulyYxANoXAOQyz9kShRDftNs2TRU8DhFd5aDJfG3BSxG +CUPulf8TMGWcxDaL51m1EFxw01MYCJ//NbI29clGTltzynEQWWBEZVnf535N2G+GKBE ZB90S9BIMx1hfcNBCNEJuA6dDwWHI8uFO/FdZ5oHOaRR0KHzJ/IfUc5bNOPHNNs9KrMG 0PFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-disposition:mime-version :references:subject:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:cc:to:from:date :user-agent:message-id; bh=c+luLYTm7+SGMH9nIfj/WGMlXDxTm0Th3M4ATYUWmYU=; b=kfOmoO0IW95yXUqIadMzgFhSuWSIUYCkHDm+edU/EHqZAZQIKpYsL4oo7E4c33hI5/ ZqG8dHkxhmdYp1R2g3+76Xhivt20BQx8T12Mwwny5+iDNL3mlj/RgIaY0nsBURDWXZDC jmX+nRBihdHrZdGcq4ow9TJL5ggzUnR2KOokqawcVgG+VXVWB8aLybGw/Vg95fx9lc47 MkCxWOBhLk/DW3HpEDJH4pakR0pxu5uBxpLbh2nMYqZEPv7awkgLUyEkKyMESrHTdHVU uWwlodXqy9WgZg8KpGBLGfnqbGwOsXsQo/GXDoeAvgF4vMsZTed5LBaNdnYsa3zZPWd9 JwMQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r8si32048621pgr.252.2018.12.26.05.40.47; Wed, 26 Dec 2018 05:41:02 -0800 (PST) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727321AbeLZNjO (ORCPT + 99 others); Wed, 26 Dec 2018 08:39:14 -0500 Received: from mga12.intel.com ([192.55.52.136]:31975 "EHLO mga12.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726918AbeLZNhG (ORCPT ); Wed, 26 Dec 2018 08:37:06 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 05:37:05 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,400,1539673200"; d="scan'208";a="113358927" Received: from wangdan1-mobl1.ccr.corp.intel.com (HELO wfg-t570.sh.intel.com) ([10.254.210.154]) by orsmga003.jf.intel.com with ESMTP; 26 Dec 2018 05:37:01 -0800 Received: from wfg by wfg-t570.sh.intel.com with local (Exim 4.89) (envelope-from ) id 1gc9Mr-0005OB-9m; Wed, 26 Dec 2018 21:37:01 +0800 Message-Id: <20181226133351.348801665@intel.com> User-Agent: quilt/0.65 Date: Wed, 26 Dec 2018 21:14:51 +0800 From: Fengguang Wu To: Andrew Morton cc: Linux Memory Management List , Fan Du , Fengguang Wu cc: kvm@vger.kernel.org Cc: LKML cc: Yao Yuan cc: Peng Dong cc: Huang Ying CC: Liu Jingqi cc: Dong Eddie cc: Dave Hansen cc: Zhang Yi cc: Dan Williams Subject: [RFC][PATCH v2 05/21] mmzone: new pgdat flags for DRAM and PMEM References: <20181226131446.330864849@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline; filename=0003-mmzone-Introduce-new-flag-to-tag-pgdat-type.patch Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Fan Du One system with DRAM and PMEM, we need new flag to tag pgdat is made of DRAM or peristent memory. This patch serves as preparetion one for follow up patch. Signed-off-by: Fan Du Signed-off-by: Fengguang Wu --- include/linux/mmzone.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) --- linux.orig/include/linux/mmzone.h 2018-12-23 19:29:42.430602202 +0800 +++ linux/include/linux/mmzone.h 2018-12-23 19:29:42.430602202 +0800 @@ -522,6 +522,8 @@ enum pgdat_flags { * many pages under writeback */ PGDAT_RECLAIM_LOCKED, /* prevents concurrent reclaim */ + PGDAT_DRAM, /* Volatile DRAM memory node */ + PGDAT_PMEM, /* Persistent memory node */ }; static inline unsigned long zone_end_pfn(const struct zone *zone) @@ -919,6 +921,30 @@ extern struct pglist_data contig_page_da #endif /* !CONFIG_NEED_MULTIPLE_NODES */ +static inline int is_node_pmem(int nid) +{ + pg_data_t *pgdat = NODE_DATA(nid); + + return test_bit(PGDAT_PMEM, &pgdat->flags); +} + +static inline int is_node_dram(int nid) +{ + pg_data_t *pgdat = NODE_DATA(nid); + + return test_bit(PGDAT_DRAM, &pgdat->flags); +} + +static inline void set_node_type(int nid) +{ + pg_data_t *pgdat = NODE_DATA(nid); + + if (node_isset(nid, numa_nodes_pmem)) + set_bit(PGDAT_PMEM, &pgdat->flags); + else + set_bit(PGDAT_DRAM, &pgdat->flags); +} + extern struct pglist_data *first_online_pgdat(void); extern struct pglist_data *next_online_pgdat(struct pglist_data *pgdat); extern struct zone *next_zone(struct zone *zone);