From: Reza Arbab <arbab@linux.vnet.ibm.com>
To: Balbir Singh <bsingharora@gmail.com>
Cc: linux-mm@kvack.org, akpm@linux-foundation.org,
khandual@linux.vnet.ibm.com, benh@kernel.crashing.org,
aneesh.kumar@linux.vnet.ibm.com, paulmck@linux.vnet.ibm.com,
srikar@linux.vnet.ibm.com, haren@linux.vnet.ibm.com,
jglisse@redhat.com, mgorman@techsingularity.net,
mhocko@kernel.org, vbabka@suse.cz, cl@linux.com
Subject: Re: [RFC 1/4] mm: create N_COHERENT_MEMORY
Date: Thu, 27 Apr 2017 13:42:13 -0500 [thread overview]
Message-ID: <20170427184213.tco7hu5w2zlm4lpg@arbab-laptop.localdomain> (raw)
In-Reply-To: <20170419075242.29929-2-bsingharora@gmail.com>
On Wed, Apr 19, 2017 at 05:52:39PM +1000, Balbir Singh wrote:
>In this patch we create N_COHERENT_MEMORY, which is different
>from N_MEMORY. A node hotplugged as coherent memory will have
>this state set. The expectation then is that this memory gets
>onlined like regular nodes. Memory allocation from such nodes
>occurs only when the the node is contained explicitly in the
>mask.
Finally got around to test drive this. From what I can see, as expected,
both kernel and userspace seem to ignore these nodes, unless you
allocate specifically from them. Very convenient.
Is "online_coherent"/MMOP_ONLINE_COHERENT the right way to trigger this?
That mechanism is used to specify zone, and only for a single block of
memory. This concept applies to the node as a whole. I think it should
be independent of memory onlining.
I mean, let's say online_kernel N blocks, some of them get allocated,
and then you online_coherent block N+1, flipping the entire node into
N_COHERENT_MEMORY. That doesn't seem right.
That said, this set as it stands needs an adjustment when based on top
of Michal's onlining revamp [1]. As-is, allow_online_pfn_range() is
returning false. The patch below fixed it for me.
[1] http://lkml.kernel.org/r/20170421120512.23960-1-mhocko@kernel.org
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 4a535f1..ccb7a84 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -869,16 +869,20 @@ bool allow_online_pfn_range(int nid, unsigned long pfn, unsigned long nr_pages,
* though so let's stick with it for simplicity for now.
* TODO make sure we do not overlap with ZONE_DEVICE
*/
- if (online_type == MMOP_ONLINE_KERNEL) {
+ switch (online_type) {
+ case MMOP_ONLINE_KERNEL:
if (zone_is_empty(movable_zone))
return true;
return movable_zone->zone_start_pfn >= pfn + nr_pages;
- } else if (online_type == MMOP_ONLINE_MOVABLE) {
+ case MMOP_ONLINE_MOVABLE:
return zone_end_pfn(normal_zone) <= pfn;
+ case MMOP_ONLINE_KEEP:
+ case MMOP_ONLINE_COHERENT:
+ /* These will always succeed and inherit the current zone */
+ return true;
}
- /* MMOP_ONLINE_KEEP will always succeed and inherits the current zone */
- return online_type == MMOP_ONLINE_KEEP;
+ return false;
}
static void __meminit resize_zone_range(struct zone *zone, unsigned long start_pfn,
--
Reza Arbab
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-04-27 18:42 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-19 7:52 [RFC 0/4] RFC - Coherent Device Memory (Not for inclusion) Balbir Singh
2017-04-19 7:52 ` [RFC 1/4] mm: create N_COHERENT_MEMORY Balbir Singh
2017-04-27 18:42 ` Reza Arbab [this message]
2017-04-28 5:07 ` Balbir Singh
2017-04-19 7:52 ` [RFC 2/4] arch/powerpc/mm: add support for coherent memory Balbir Singh
2017-04-19 7:52 ` [RFC 3/4] mm: Integrate N_COHERENT_MEMORY with mempolicy and the rest of the system Balbir Singh
2017-04-19 7:52 ` [RFC 4/4] mm: Add documentation for coherent memory Balbir Singh
2017-04-19 19:02 ` [RFC 0/4] RFC - Coherent Device Memory (Not for inclusion) Christoph Lameter
2017-04-20 1:25 ` Balbir Singh
2017-04-20 15:29 ` Christoph Lameter
2017-04-20 21:26 ` Benjamin Herrenschmidt
2017-04-21 16:13 ` Christoph Lameter
2017-04-21 21:15 ` Benjamin Herrenschmidt
2017-04-24 13:57 ` Christoph Lameter
2017-04-24 0:20 ` Balbir Singh
2017-04-24 14:00 ` Christoph Lameter
2017-04-25 0:52 ` Balbir Singh
2017-05-01 20:41 ` John Hubbard
2017-05-01 21:04 ` Reza Arbab
2017-05-01 21:56 ` John Hubbard
2017-05-01 23:51 ` Reza Arbab
2017-05-01 23:58 ` John Hubbard
2017-05-02 0:04 ` Reza Arbab
2017-05-02 1:29 ` Balbir Singh
2017-05-02 5:47 ` John Hubbard
2017-05-02 7:23 ` Balbir Singh
2017-05-02 17:50 ` John Hubbard
2017-05-02 14:36 ` Michal Hocko
2017-05-04 5:26 ` Balbir Singh
2017-05-04 12:52 ` Michal Hocko
2017-05-04 15:49 ` Benjamin Herrenschmidt
2017-05-04 17:33 ` Dave Hansen
2017-05-05 3:17 ` Balbir Singh
2017-05-05 14:51 ` Dave Hansen
2017-05-05 7:49 ` Benjamin Herrenschmidt
2017-05-05 14:52 ` Michal Hocko
2017-05-05 15:57 ` Benjamin Herrenschmidt
2017-05-05 17:48 ` Jerome Glisse
2017-05-05 17:59 ` Benjamin Herrenschmidt
2017-05-09 11:36 ` Michal Hocko
2017-05-09 13:43 ` Benjamin Herrenschmidt
2017-05-15 12:55 ` Michal Hocko
2017-05-15 15:53 ` Christoph Lameter
2017-05-10 23:04 ` Balbir Singh
2017-05-09 7:51 ` Balbir Singh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170427184213.tco7hu5w2zlm4lpg@arbab-laptop.localdomain \
--to=arbab@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=bsingharora@gmail.com \
--cc=cl@linux.com \
--cc=haren@linux.vnet.ibm.com \
--cc=jglisse@redhat.com \
--cc=khandual@linux.vnet.ibm.com \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=srikar@linux.vnet.ibm.com \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox