[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1359620228.1391.0.camel@kernel>
Date: Thu, 31 Jan 2013 02:17:08 -0600
From: Simon Jeons <simon.jeons@...il.com>
To: Tang Chen <tangchen@...fujitsu.com>
Cc: akpm@...ux-foundation.org, rientjes@...gle.com,
len.brown@...el.com, benh@...nel.crashing.org, paulus@...ba.org,
cl@...ux.com, minchan.kim@...il.com,
kosaki.motohiro@...fujitsu.com, isimatu.yasuaki@...fujitsu.com,
wujianguo@...wei.com, wency@...fujitsu.com, hpa@...or.com,
linfeng@...fujitsu.com, laijs@...fujitsu.com, mgorman@...e.de,
yinghai@...nel.org, glommer@...allels.com, x86@...nel.org,
linux-mm@...ck.org, linux-kernel@...r.kernel.org,
linuxppc-dev@...ts.ozlabs.org, linux-acpi@...r.kernel.org,
linux-s390@...r.kernel.org, linux-sh@...r.kernel.org,
linux-ia64@...r.kernel.org, cmetcalf@...era.com,
sparclinux@...r.kernel.org
Subject: Re: [PATCH v6 00/15] memory-hotplug: hot-remove physical memory
Hi Tang,
On Thu, 2013-01-31 at 15:10 +0800, Tang Chen wrote:
> On 01/31/2013 02:19 PM, Simon Jeons wrote:
> > Hi Tang,
> > On Thu, 2013-01-31 at 11:31 +0800, Tang Chen wrote:
> >> Hi Simon,
> >>
> >> Please see below. :)
> >>
> >> On 01/31/2013 09:22 AM, Simon Jeons wrote:
> >>>
> >>> Sorry, I still confuse. :(
> >>> update node_states[N_NORMAL_MEMORY] to node_states[N_MEMORY] or
> >>> node_states[N_NORMAL_MEMOR] present 0...ZONE_MOVABLE?
> >>>
> >>> node_states is what? node_states[N_NORMAL_MEMOR] or
> >>> node_states[N_MEMORY]?
> >>
> >> Are you asking what node_states[] is ?
> >>
> >> node_states[] is an array of nodemask,
> >>
> >> extern nodemask_t node_states[NR_NODE_STATES];
> >>
> >> For example, node_states[N_NORMAL_MEMOR] represents which nodes have
> >> normal memory.
> >> If N_MEMORY == N_HIGH_MEMORY == N_NORMAL_MEMORY, node_states[N_MEMORY] is
> >> node_states[N_NORMAL_MEMOR]. So it represents which nodes have 0 ...
> >> ZONE_MOVABLE.
> >>
> >
> > Sorry, how can nodes_state[N_NORMAL_MEMORY] represents a node have 0 ...
> > *ZONE_MOVABLE*, the comment of enum nodes_states said that
> > N_NORMAL_MEMORY just means the node has regular memory.
> >
>
> Hi Simon,
>
> Let's say it in this way.
>
> If we don't have CONFIG_HIGHMEM, N_HIGH_MEMORY == N_NORMAL_MEMORY. We
> don't have a separate
> macro to represent highmem because we don't have highmem.
> This is easy to understand, right ?
>
> Now, think it just like above:
> If we don't have CONFIG_MOVABLE_NODE, N_MEMORY == N_HIGH_MEMORY ==
> N_NORMAL_MEMORY.
> This means we don't allow a node to have only movable memory, not we
> don't have movable memory.
> A node could have normal memory and movable memory. So
> nodes_state[N_NORMAL_MEMORY] represents
> a node have 0 ... *ZONE_MOVABLE*.
>
> I think the point is: CONFIG_MOVABLE_NODE means we allow a node to have
> only movable memory.
> So without CONFIG_MOVABLE_NODE, it doesn't mean a node cannot have
> movable memory. It means
> the node cannot have only movable memory. It can have normal memory and
> movable memory.
>
> 1) With CONFIG_MOVABLE_NODE:
> N_NORMAL_MEMORY: nodes who have normal memory.
> normal memory only
> normal and highmem
> normal and highmem and movablemem
> normal and movablemem
> N_MEMORY: nodes who has memory (any memory)
> normal memory only
> normal and highmem
> normal and highmem and movablemem
> normal and movablemem ---------------- We can have
> movablemem.
> highmem only -------------------------
> highmem and movablemem ---------------
> movablemem only ---------------------- We can have
> movablemem only. ***
>
> 2) With out CONFIG_MOVABLE_NODE:
> N_MEMORY == N_NORMAL_MEMORY: (Here, I omit N_HIGH_MEMORY)
> normal memory only
> normal and highmem
> normal and highmem and movablemem
> normal and movablemem ---------------- We can have
> movablemem.
> No movablemem only ------------------- We cannot
> have movablemem only. ***
>
> The semantics is not that clear here. So we can only try to understand
> it from the code where
> we use N_MEMORY. :)
>
> That is my understanding of this.
Thanks for your clarify, very clear now. :)
>
> Thanks. :)
>
>
>
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo@...ck.org. For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont@...ck.org"> email@...ck.org </a>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists