[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <87h8ekk19s.fsf@linux.ibm.com>
Date: Mon, 07 Jan 2019 19:39:19 +0530
From: "Aneesh Kumar K.V" <aneesh.kumar@...ux.ibm.com>
To: Fengguang Wu <fengguang.wu@...el.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Linux Memory Management List <linux-mm@...ck.org>,
Fan Du <fan.du@...el.com>, kvm@...r.kernel.org,
LKML <linux-kernel@...r.kernel.org>,
Yao Yuan <yuan.yao@...el.com>,
Peng Dong <dongx.peng@...el.com>,
Huang Ying <ying.huang@...el.com>,
Liu Jingqi <jingqi.liu@...el.com>,
Dong Eddie <eddie.dong@...el.com>,
Dave Hansen <dave.hansen@...el.com>,
Zhang Yi <yi.z.zhang@...ux.intel.com>,
Dan Williams <dan.j.williams@...el.com>
Subject: Re: [RFC][PATCH v2 10/21] mm: build separate zonelist for PMEM and DRAM node
Fengguang Wu <fengguang.wu@...el.com> writes:
> On Tue, Jan 01, 2019 at 02:44:41PM +0530, Aneesh Kumar K.V wrote:
>>Fengguang Wu <fengguang.wu@...el.com> writes:
>>
>>> From: Fan Du <fan.du@...el.com>
>>>
>>> When allocate page, DRAM and PMEM node should better not fall back to
>>> each other. This allows migration code to explicitly control which type
>>> of node to allocate pages from.
>>>
>>> With this patch, PMEM NUMA node can only be used in 2 ways:
>>> - migrate in and out
>>> - numactl
>>
>>Can we achieve this using nodemask? That way we don't tag nodes with
>>different properties such as DRAM/PMEM. We can then give the
>>flexibilility to the device init code to add the new memory nodes to
>>the right nodemask
>
> Aneesh, in patch 2 we did create nodemask numa_nodes_pmem and
> numa_nodes_dram. What's your supposed way of "using nodemask"?
>
IIUC the patch is to avoid allocation from PMEM nodes and the way you
achieve it is by checking if (is_node_pmem(n)). We already have
abstractness to avoid allocation from a node using node mask. I was
wondering whether we can do the equivalent of above using that.
ie, __next_zone_zonelist can do zref_in_nodemask(z,
default_exclude_nodemask)) and decide whether to use the specific zone
or not.
That way we don't add special code like
+ PGDAT_DRAM, /* Volatile DRAM memory node */
+ PGDAT_PMEM, /* Persistent memory node */
The reason is that there could be other device memory that would want to
get excluded from that default allocation like you are doing for PMEM
-aneesh
Powered by blists - more mailing lists