All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tang Chen <tangchen@cn.fujitsu.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Don Morris <don.morris@hp.com>,
	Tim Gardner <tim.gardner@canonical.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Tejun Heo <tj@kernel.org>, Tony Luck <tony.luck@intel.com>,
	Thomas Renninger <trenn@suse.de>,
	linux-kernel@vger.kernel.org, tglx@linutronix.de,
	mingo@redhat.com, a.p.zijlstra@chello.nl,
	jarkko.sakkinen@intel.com
Subject: Re: sched: CPU #1's llc-sibling CPU #0 is not on the same node!
Date: Wed, 27 Feb 2013 15:11:21 +0800	[thread overview]
Message-ID: <512DB199.5050203@cn.fujitsu.com> (raw)
In-Reply-To: <CAE9FiQV9JRk1SYLkBXsQmrSEDHrYZDpBV6UZb+U5rB7=4gFhVA@mail.gmail.com>

On 02/27/2013 02:54 PM, Yinghai Lu wrote:
> On Tue, Feb 26, 2013 at 9:49 PM, Yasuaki Ishimatsu
> <isimatu.yasuaki@jp.fujitsu.com>  wrote:
>> 2013/02/27 14:11, Yinghai Lu wrote:
>>>
>>> On Tue, Feb 26, 2013 at 8:43 PM, Yasuaki Ishimatsu
>>> <isimatu.yasuaki@jp.fujitsu.com>  wrote:
>>>>
>>>> 2013/02/27 13:04, Yinghai Lu wrote:
>>>>>
>>>>>
>>>>> On Tue, Feb 26, 2013 at 7:38 PM, Yasuaki Ishimatsu
>>>>> <isimatu.yasuaki@jp.fujitsu.com>  wrote:
>>>>>>
>>>>>>
>>>>>> 2013/02/27 11:30, Yinghai Lu wrote:
>>>>>>>
>>>>>>>
>>>>>>> Do you mean you can not boot one socket system with 1G ram ?
>>>>>>> Assume socket 0 does not support hotplug, other 31 sockets support hot
>>>>>>> plug.
>>>>>>>
>>>>>>> So we could boot system only with socket0, and later one by one hot
>>>>>>> add other cpus.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> In this case, system can boot. But other cpus with bunch of ram hot
>>>>>> plug may fails, since system does not have enough memory for cover
>>>>>> hot added memory. When hot adding memory device, kernel object for the
>>>>>> memory is allocated from 1G ram since hot added memory has not been
>>>>>> enabled.
>>>>>>
>>>>>
>>>>> yes, it may fail, if the one node memory need page table and vmemmap
>>>>> is more than 1g ...
>>>>>
>>>>
>>
>>>>> for hot add memory we need to
>>>>> 1. add another wrapper for init_memory_mapping, just like
>>>>> init_mem_mapping() for booting path.
>>>>> 2. we need make memblock more generic, so we can use it with hot add
>>>>> memory during runtime.
>>>>> 3. with that we can initialize page table for hot added node with ram.
>>>>> a. initial page table for 2M near node top is from node0 ( that does
>>>>> not support hot plug).
>>>>> b. then will use 2M for memory below node top...
>>>>> c. with that we will make sure page table stay on local node.
>>>>>     alloc_low_pages need to be updated to support that.
>>>>> 4. need to make sure vmemmap on local node too.
>>>>
>>>>
>>>>
>>>> I think so too. By this, memory hot plug becomes more useful.
>>
>>
>> I agree with your idea. But I think above ideas is future work.
>> So at first we should use movable memory for memory hot plug.
>> After that, we will implement above ideas.
>>
>>
>>>>
>>>>>
>>>>> so hot-remove node will work too later.
>>>>>
>>>>> In the long run, we should make booting path and hot adding more
>>>>> similar and share at most code.
>>>>> That will make code get more test coverage.
>>>
>>>
>>> Tang,  Yasuaki, Andrew,
>>>
>>> Please check if you are ok with attached reverting patch.
>>
>>
>> We will fix this problem with no objection. So please wait a while.
>>
>> And the problem occurs by "movablemem_map=srat" not
>> "movablemem_map=nn[KMG]@ss[KMG]"
>> At least, if you want to revert it, you should revert only
>> "movablemem_map=srat" part.
>
> Those patches are tangled together.

No, they are not.

The following commits supports "movablemem_map=nn[KMG]@ss[KMG]".

commit fb06bc8e5f42f38c011de0e59481f464a82380f6
     page_alloc: bootmem limit with movablecore_map
commit 42f47e27e761fee07da69e04612ec7dd0d490edd
     page_alloc: make movablemem_map have higher priority
commit 6981ec31146cf19454c55c130625f6cee89aab95
     page_alloc: introduce zone_movable_limit[] to keep movable limit 
for nodes
commit 34b71f1e04fcba578e719e675b4882eeeb2a1f6f
     page_alloc: add movable_memmap kernel parameter
commit 4d59a75125d5a4717e57e9fc62c64b3d346e603e
     x86: get pg_data_t's memory from other node

And the following supports "movablemem_map=srat".

commit f7210e6c4ac795694106c1c5307134d3fc233e88
     mm/memblock.c: use CONFIG_HAVE_MEMBLOCK_NODE_MAP to protect 
movablecore_map in memblock_overlaps_region().
commit 01a178a94e8eaec351b29ee49fbb3d1c124cb7fb
     acpi, memory-hotplug: support getting hotplug info from SRAT
commit 27168d38fa209073219abedbe6a9de7ba9acbfad
     acpi, memory-hotplug: extend movablemem_map ranges to the end of node
commit e8d1955258091e4c92d5a975ebd7fd8a98f5d30f
     acpi, memory-hotplug: parse SRAT before memblock is ready

>
> Also it looks funny to ask user to specify mem range in boot command
> line to enable mem hotplug.

Well, I think sometimes users don't like the SRAT memory style, and want to
increase or reduce hot-pluggable memory by themselves. And also, it is 
useful
for debuging firmware bugs.

I agree that "movablemem_map=srat" functionality need more work to improve.
Can we not revert it, and improve it during 3.9rc ? I think during rc time,
at least we can fix the problems brought by early_parse_srat().

Thanks. :)

  reply	other threads:[~2013-02-27  7:11 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-25 15:02 sched: CPU #1's llc-sibling CPU #0 is not on the same node! Tim Gardner
2013-02-25 15:32 ` Tim Gardner
2013-02-25 21:27   ` Don Morris
2013-02-25 22:50     ` Yinghai Lu
2013-02-26  0:35       ` Yinghai Lu
2013-02-26  2:06         ` Yinghai Lu
2013-02-26  3:21           ` Martin Bligh
2013-02-26  4:20             ` Yinghai Lu
2013-02-26  4:51               ` Martin Bligh
2013-02-26  6:09                 ` Tang Chen
2013-02-26  6:57                   ` Yinghai Lu
2013-02-26  7:29                     ` Tang Chen
2013-02-26  7:53                     ` Yasuaki Ishimatsu
2013-03-01  6:37                 ` H. Peter Anvin
2013-03-01  8:05                   ` Yinghai Lu
2013-03-01 10:59                   ` Ingo Molnar
2013-03-01 11:03                   ` Borislav Petkov
2013-03-01 11:24                     ` Ingo Molnar
2013-03-01 15:32                       ` H. Peter Anvin
2013-02-26  1:51       ` Tang Chen
2013-02-26 21:36       ` Yinghai Lu
2013-02-26 22:44         ` Yinghai Lu
2013-02-27  0:52           ` Yasuaki Ishimatsu
2013-02-27  2:30             ` Yinghai Lu
2013-02-27  3:38               ` Yasuaki Ishimatsu
2013-02-27  4:04                 ` Yinghai Lu
2013-02-27  4:43                   ` Yasuaki Ishimatsu
2013-02-27  5:11                     ` Yinghai Lu
2013-02-27  5:49                       ` Yasuaki Ishimatsu
2013-02-27  6:54                         ` Yinghai Lu
2013-02-27  7:11                           ` Tang Chen [this message]
2013-02-27  7:25                             ` Yinghai Lu
2013-02-27  7:44                               ` Tang Chen
2013-02-28 16:07                                 ` Yinghai Lu
2013-03-01  1:39                                   ` Tang Chen
2013-02-27  8:00                       ` Lai Jiangshan
2013-02-27 21:26                         ` Andrew Morton
2013-02-28 10:01                           ` Tang Chen
2013-03-01  3:13                           ` Linus Torvalds
2013-03-01  3:46                             ` Tang Chen
2013-03-01  4:32                               ` Linus Torvalds
2013-03-01  4:38                                 ` H. Peter Anvin
     [not found]                                   ` <CAE9FiQXb7K=QTR4PgMdNSoPm2LgYkxAuXUUZ0BXtgicQOGOaUA@mail.gmail.com>
2013-03-01  6:02                                     ` Yasuaki Ishimatsu
2013-03-01  7:55                                       ` Yinghai Lu
2013-03-01 15:43                                         ` H. Peter Anvin
2013-03-01 22:51                                         ` [PATCH] x86, ACPI, mm: Revert movablemem_map support Yinghai Lu
2013-03-01  6:18                                     ` sched: CPU #1's llc-sibling CPU #0 is not on the same node! Tang Chen
2013-03-01  8:02                                       ` Yinghai Lu
2013-03-01  8:39                                         ` Yasuaki Ishimatsu
2013-03-01  7:43                                     ` Yinghai Lu
2013-03-01 11:32                                       ` Tang Chen
2013-03-01 19:31                                       ` Yinghai Lu
     [not found]                                         ` <CAD11hGx5N9Eqy5bX-SEv9c7oR6Ehz2pUJwdrK0Q=L4S44RC5gg@mail.gmail.com>
2013-03-02  5:46                                           ` Yinghai Lu
2013-03-01  4:40                                 ` Andrew Morton
2013-02-27 12:40                       ` Don Morris
2013-02-27 16:28             ` Luck, Tony
2013-02-27 17:30               ` Yinghai Lu
2013-02-27 17:50                 ` Luck, Tony
2013-02-27  2:14           ` Tang Chen
2013-02-27  2:24             ` Yinghai Lu
2013-02-27  4:32               ` Tang Chen

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=512DB199.5050203@cn.fujitsu.com \
    --to=tangchen@cn.fujitsu.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=don.morris@hp.com \
    --cc=hpa@zytor.com \
    --cc=isimatu.yasuaki@jp.fujitsu.com \
    --cc=jarkko.sakkinen@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=tim.gardner@canonical.com \
    --cc=tj@kernel.org \
    --cc=tony.luck@intel.com \
    --cc=torvalds@linux-foundation.org \
    --cc=trenn@suse.de \
    --cc=yinghai@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.