From: Tang Chen <tangchen@cn.fujitsu.com>
To: wujianguo <wujianguo106@gmail.com>
Cc: hpa@zytor.com, akpm@linux-foundation.org, rob@landley.net,
isimatu.yasuaki@jp.fujitsu.com, laijs@cn.fujitsu.com,
wency@cn.fujitsu.com, linfeng@cn.fujitsu.com,
jiang.liu@huawei.com, yinghai@kernel.org,
kosaki.motohiro@jp.fujitsu.com, minchan.kim@gmail.com,
mgorman@suse.de, rientjes@google.com, rusty@rustcorp.com.au,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-doc@vger.kernel.org
Subject: Re: [PATCH v2 5/5] page_alloc: Bootmem limit with movablecore_map
Date: Mon, 26 Nov 2012 20:53:01 +0800 [thread overview]
Message-ID: <50B3662D.50102@cn.fujitsu.com> (raw)
In-Reply-To: <50B35F0E.1090905@gmail.com>
On 11/26/2012 08:22 PM, wujianguo wrote:
> On 2012-11-23 18:44, Tang Chen wrote:
>> This patch make sure bootmem will not allocate memory from areas that
>> may be ZONE_MOVABLE. The map info is from movablecore_map boot option.
>>
>> Signed-off-by: Tang Chen<tangchen@cn.fujitsu.com>
>> Signed-off-by: Lai Jiangshan<laijs@cn.fujitsu.com>
>> Reviewed-by: Wen Congyang<wency@cn.fujitsu.com>
>> Tested-by: Lin Feng<linfeng@cn.fujitsu.com>
>> ---
>> include/linux/memblock.h | 1 +
>> mm/memblock.c | 15 ++++++++++++++-
>> 2 files changed, 15 insertions(+), 1 deletions(-)
>>
>> diff --git a/include/linux/memblock.h b/include/linux/memblock.h
>> index d452ee1..6e25597 100644
>> --- a/include/linux/memblock.h
>> +++ b/include/linux/memblock.h
>> @@ -42,6 +42,7 @@ struct memblock {
>>
>> extern struct memblock memblock;
>> extern int memblock_debug;
>> +extern struct movablecore_map movablecore_map;
>>
>> #define memblock_dbg(fmt, ...) \
>> if (memblock_debug) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
>> diff --git a/mm/memblock.c b/mm/memblock.c
>> index 6259055..33b3b4d 100644
>> --- a/mm/memblock.c
>> +++ b/mm/memblock.c
>> @@ -101,6 +101,7 @@ phys_addr_t __init_memblock memblock_find_in_range_node(phys_addr_t start,
>> {
>> phys_addr_t this_start, this_end, cand;
>> u64 i;
>> + int curr = movablecore_map.nr_map - 1;
>>
>> /* pump up @end */
>> if (end == MEMBLOCK_ALLOC_ACCESSIBLE)
>> @@ -114,13 +115,25 @@ phys_addr_t __init_memblock memblock_find_in_range_node(phys_addr_t start,
>> this_start = clamp(this_start, start, end);
>> this_end = clamp(this_end, start, end);
>>
>> - if (this_end< size)
>> +restart:
>> + if (this_end<= this_start || this_end< size)
>> continue;
>>
>> + for (; curr>= 0; curr--) {
>> + if (movablecore_map.map[curr].start< this_end)
>
> movablecore_map[curr].start should be movablecore_map[curr].start<< PAGE_SHIFT.
> May be you can change movablecore_map[].start/end to movablecore_map[].start_pfn/end_pfn
> to avoid confusion.
Hi Wu,
Yes, it was my mistake that I forgot to shift the pfn.
And this was tested out by my partner too. And I have fixed it in my v3
patch.
Thanks for the comments. :)
>
>> + break;
>> + }
>> +
>> cand = round_down(this_end - size, align);
>> + if (curr>= 0&& cand< movablecore_map.map[curr].end) {
>> + this_end = movablecore_map.map[curr].start;
>
> Ditto.
>
>> + goto restart;
>> + }
>> +
>> if (cand>= this_start)
>> return cand;
>> }
>> +
>> return 0;
>> }
>>
>>
>
>
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Tang Chen <tangchen@cn.fujitsu.com>
To: wujianguo <wujianguo106@gmail.com>
Cc: hpa@zytor.com, akpm@linux-foundation.org, rob@landley.net,
isimatu.yasuaki@jp.fujitsu.com, laijs@cn.fujitsu.com,
wency@cn.fujitsu.com, linfeng@cn.fujitsu.com,
jiang.liu@huawei.com, yinghai@kernel.org,
kosaki.motohiro@jp.fujitsu.com, minchan.kim@gmail.com,
mgorman@suse.de, rientjes@google.com, rusty@rustcorp.com.au,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-doc@vger.kernel.org
Subject: Re: [PATCH v2 5/5] page_alloc: Bootmem limit with movablecore_map
Date: Mon, 26 Nov 2012 20:53:01 +0800 [thread overview]
Message-ID: <50B3662D.50102@cn.fujitsu.com> (raw)
In-Reply-To: <50B35F0E.1090905@gmail.com>
On 11/26/2012 08:22 PM, wujianguo wrote:
> On 2012-11-23 18:44, Tang Chen wrote:
>> This patch make sure bootmem will not allocate memory from areas that
>> may be ZONE_MOVABLE. The map info is from movablecore_map boot option.
>>
>> Signed-off-by: Tang Chen<tangchen@cn.fujitsu.com>
>> Signed-off-by: Lai Jiangshan<laijs@cn.fujitsu.com>
>> Reviewed-by: Wen Congyang<wency@cn.fujitsu.com>
>> Tested-by: Lin Feng<linfeng@cn.fujitsu.com>
>> ---
>> include/linux/memblock.h | 1 +
>> mm/memblock.c | 15 ++++++++++++++-
>> 2 files changed, 15 insertions(+), 1 deletions(-)
>>
>> diff --git a/include/linux/memblock.h b/include/linux/memblock.h
>> index d452ee1..6e25597 100644
>> --- a/include/linux/memblock.h
>> +++ b/include/linux/memblock.h
>> @@ -42,6 +42,7 @@ struct memblock {
>>
>> extern struct memblock memblock;
>> extern int memblock_debug;
>> +extern struct movablecore_map movablecore_map;
>>
>> #define memblock_dbg(fmt, ...) \
>> if (memblock_debug) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
>> diff --git a/mm/memblock.c b/mm/memblock.c
>> index 6259055..33b3b4d 100644
>> --- a/mm/memblock.c
>> +++ b/mm/memblock.c
>> @@ -101,6 +101,7 @@ phys_addr_t __init_memblock memblock_find_in_range_node(phys_addr_t start,
>> {
>> phys_addr_t this_start, this_end, cand;
>> u64 i;
>> + int curr = movablecore_map.nr_map - 1;
>>
>> /* pump up @end */
>> if (end == MEMBLOCK_ALLOC_ACCESSIBLE)
>> @@ -114,13 +115,25 @@ phys_addr_t __init_memblock memblock_find_in_range_node(phys_addr_t start,
>> this_start = clamp(this_start, start, end);
>> this_end = clamp(this_end, start, end);
>>
>> - if (this_end< size)
>> +restart:
>> + if (this_end<= this_start || this_end< size)
>> continue;
>>
>> + for (; curr>= 0; curr--) {
>> + if (movablecore_map.map[curr].start< this_end)
>
> movablecore_map[curr].start should be movablecore_map[curr].start<< PAGE_SHIFT.
> May be you can change movablecore_map[].start/end to movablecore_map[].start_pfn/end_pfn
> to avoid confusion.
Hi Wu,
Yes, it was my mistake that I forgot to shift the pfn.
And this was tested out by my partner too. And I have fixed it in my v3
patch.
Thanks for the comments. :)
>
>> + break;
>> + }
>> +
>> cand = round_down(this_end - size, align);
>> + if (curr>= 0&& cand< movablecore_map.map[curr].end) {
>> + this_end = movablecore_map.map[curr].start;
>
> Ditto.
>
>> + goto restart;
>> + }
>> +
>> if (cand>= this_start)
>> return cand;
>> }
>> +
>> return 0;
>> }
>>
>>
>
>
next prev parent reply other threads:[~2012-11-26 12:54 UTC|newest]
Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-23 10:44 [PATCH v2 0/5] Add movablecore_map boot option Tang Chen
2012-11-23 10:44 ` Tang Chen
2012-11-23 10:44 ` [PATCH v2 1/5] x86: get pg_data_t's memory from other node Tang Chen
2012-11-23 10:44 ` Tang Chen
2012-11-24 1:19 ` Jiang Liu
2012-11-24 1:19 ` Jiang Liu
2012-11-26 1:19 ` Tang Chen
2012-11-26 1:19 ` Tang Chen
2012-12-02 15:11 ` Jiang Liu
2012-12-02 15:11 ` Jiang Liu
2012-11-23 10:44 ` [PATCH v2 2/5] page_alloc: add movable_memmap kernel parameter Tang Chen
2012-11-23 10:44 ` Tang Chen
2012-11-23 10:44 ` [PATCH v2 3/5] page_alloc: Introduce zone_movable_limit[] to keep movable limit for nodes Tang Chen
2012-11-23 10:44 ` Tang Chen
2012-12-05 15:46 ` Jiang Liu
2012-12-05 15:46 ` Jiang Liu
2012-12-06 1:20 ` Tang Chen
2012-12-06 1:20 ` Tang Chen
2012-11-23 10:44 ` [PATCH v2 4/5] page_alloc: Make movablecore_map has higher priority Tang Chen
2012-11-23 10:44 ` Tang Chen
2012-12-05 15:43 ` Jiang Liu
2012-12-05 15:43 ` Jiang Liu
2012-12-06 1:26 ` Tang Chen
2012-12-06 1:26 ` Tang Chen
2012-12-06 2:26 ` Jiang Liu
2012-12-06 2:26 ` Jiang Liu
2012-12-06 2:51 ` Jianguo Wu
2012-12-06 2:51 ` Jianguo Wu
2012-12-06 2:57 ` Tang Chen
2012-12-06 2:57 ` Tang Chen
2012-12-09 8:10 ` Tang Chen
2012-12-09 8:10 ` Tang Chen
2012-12-10 2:15 ` Jiang Liu
2012-12-10 2:15 ` Jiang Liu
2012-11-23 10:44 ` [PATCH v2 5/5] page_alloc: Bootmem limit with movablecore_map Tang Chen
2012-11-23 10:44 ` Tang Chen
2012-11-26 12:22 ` wujianguo
2012-11-26 12:22 ` wujianguo
2012-11-26 12:53 ` Tang Chen [this message]
2012-11-26 12:53 ` Tang Chen
2012-11-26 12:40 ` wujianguo
2012-11-26 12:40 ` wujianguo
2012-11-26 13:15 ` Tang Chen
2012-11-26 13:15 ` Tang Chen
2012-11-26 15:48 ` H. Peter Anvin
2012-11-26 15:48 ` H. Peter Anvin
2012-11-27 0:58 ` Jianguo Wu
2012-11-27 0:58 ` Jianguo Wu
2012-11-27 3:19 ` Wen Congyang
2012-11-27 3:19 ` Wen Congyang
2012-11-27 3:22 ` Jianguo Wu
2012-11-27 3:22 ` Jianguo Wu
2012-11-27 3:34 ` Wen Congyang
2012-11-27 3:34 ` Wen Congyang
2012-11-27 1:12 ` Jiang Liu
2012-11-27 1:12 ` Jiang Liu
2012-11-27 1:20 ` H. Peter Anvin
2012-11-27 1:20 ` H. Peter Anvin
2012-11-27 3:15 ` Wen Congyang
2012-11-27 3:15 ` Wen Congyang
2012-11-27 5:31 ` H. Peter Anvin
2012-11-27 5:31 ` H. Peter Anvin
2012-12-06 17:28 ` Jiang Liu
2012-12-06 17:28 ` Jiang Liu
2012-12-06 17:41 ` H. Peter Anvin
2012-12-06 17:41 ` H. Peter Anvin
2012-12-07 0:18 ` Jiang Liu
2012-12-07 0:18 ` Jiang Liu
2012-12-19 9:17 ` Tang Chen
2012-12-19 9:17 ` Tang Chen
2012-11-27 3:10 ` [PATCH v2 0/5] Add movablecore_map boot option wujianguo
2012-11-27 3:10 ` wujianguo
2012-11-27 5:43 ` Tang Chen
2012-11-27 5:43 ` Tang Chen
2012-11-27 6:20 ` H. Peter Anvin
2012-11-27 6:20 ` H. Peter Anvin
2012-11-27 6:47 ` Jianguo Wu
2012-11-27 6:47 ` Jianguo Wu
2012-11-28 3:47 ` Tang Chen
2012-11-28 3:47 ` Tang Chen
2012-11-28 4:01 ` Jiang Liu
2012-11-28 4:01 ` Jiang Liu
2012-11-28 5:21 ` Wen Congyang
2012-11-28 5:21 ` Wen Congyang
2012-11-28 5:17 ` Jiang Liu
2012-11-28 5:17 ` Jiang Liu
2012-11-28 4:53 ` Jianguo Wu
2012-11-28 4:53 ` Jianguo Wu
2012-11-27 8:00 ` Bob Liu
2012-11-27 8:00 ` Bob Liu
2012-11-27 8:29 ` Tang Chen
2012-11-27 8:29 ` Tang Chen
2012-11-27 8:49 ` H. Peter Anvin
2012-11-27 8:49 ` H. Peter Anvin
2012-11-27 9:47 ` Wen Congyang
2012-11-27 9:47 ` Wen Congyang
2012-11-27 9:53 ` H. Peter Anvin
2012-11-27 9:53 ` H. Peter Anvin
2012-11-27 9:59 ` Yasuaki Ishimatsu
2012-11-27 9:59 ` Yasuaki Ishimatsu
2012-11-27 12:09 ` Bob Liu
2012-11-27 12:09 ` Bob Liu
2012-11-27 12:49 ` Tang Chen
2012-11-27 12:49 ` Tang Chen
2012-11-28 3:24 ` Bob Liu
2012-11-28 3:24 ` Bob Liu
2012-11-28 4:08 ` Jiang Liu
2012-11-28 4:08 ` Jiang Liu
2012-11-28 6:16 ` Tang Chen
2012-11-28 6:16 ` Tang Chen
2012-11-28 7:03 ` Jiang Liu
2012-11-28 7:03 ` Jiang Liu
2012-11-28 8:29 ` Wen Congyang
2012-11-28 8:29 ` Wen Congyang
2012-11-28 8:28 ` Jiang Liu
2012-11-28 8:28 ` Jiang Liu
2012-11-28 8:38 ` Wen Congyang
2012-11-28 8:38 ` Wen Congyang
2012-11-29 0:43 ` Jaegeuk Hanse
2012-11-29 0:43 ` Jaegeuk Hanse
2012-11-29 1:24 ` Tang Chen
2012-11-29 1:24 ` Tang Chen
2012-11-30 9:20 ` Lai Jiangshan
2012-11-30 9:20 ` Lai Jiangshan
2012-11-28 8:47 ` Jiang Liu
2012-11-28 8:47 ` Jiang Liu
2012-11-28 21:34 ` Luck, Tony
2012-11-28 21:34 ` Luck, Tony
2012-11-28 21:38 ` H. Peter Anvin
2012-11-28 21:38 ` H. Peter Anvin
2012-11-29 11:00 ` Mel Gorman
2012-11-29 11:00 ` Mel Gorman
2012-11-29 16:07 ` H. Peter Anvin
2012-11-29 16:07 ` H. Peter Anvin
2012-11-29 22:41 ` Luck, Tony
2012-11-29 22:41 ` Luck, Tony
2012-11-29 22:45 ` H. Peter Anvin
2012-11-29 22:45 ` H. Peter Anvin
2012-11-30 2:56 ` Jiang Liu
2012-11-30 2:56 ` Jiang Liu
2012-11-30 3:15 ` Yasuaki Ishimatsu
2012-11-30 3:15 ` Yasuaki Ishimatsu
2012-11-30 15:36 ` Jiang Liu
2012-11-30 15:36 ` Jiang Liu
2012-11-30 2:58 ` Luck, Tony
2012-11-30 2:58 ` Luck, Tony
2012-11-30 3:28 ` H. Peter Anvin
2012-11-30 3:28 ` H. Peter Anvin
2012-11-30 10:19 ` Glauber Costa
2012-11-30 10:19 ` Glauber Costa
2012-11-30 10:52 ` Mel Gorman
2012-11-30 10:52 ` Mel Gorman
2012-11-29 10:38 ` Yasuaki Ishimatsu
2012-11-29 10:38 ` Yasuaki Ishimatsu
2012-11-29 11:05 ` Mel Gorman
2012-11-29 11:05 ` Mel Gorman
2012-11-29 15:47 ` Jiang Liu
2012-11-29 15:47 ` Jiang Liu
2012-11-29 15:53 ` Jiang Liu
2012-11-29 15:53 ` Jiang Liu
2012-11-29 1:42 ` Jaegeuk Hanse
2012-11-29 1:42 ` Jaegeuk Hanse
2012-11-29 2:25 ` Jiang Liu
2012-11-29 2:25 ` Jiang Liu
2012-11-29 2:49 ` Wanpeng Li
2012-11-29 2:59 ` Jiang Liu
2012-11-29 2:59 ` Jiang Liu
2012-11-29 2:49 ` Wanpeng Li
2012-11-30 22:27 ` Toshi Kani
2012-11-30 22:27 ` Toshi Kani
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=50B3662D.50102@cn.fujitsu.com \
--to=tangchen@cn.fujitsu.com \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=isimatu.yasuaki@jp.fujitsu.com \
--cc=jiang.liu@huawei.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=laijs@cn.fujitsu.com \
--cc=linfeng@cn.fujitsu.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=minchan.kim@gmail.com \
--cc=rientjes@google.com \
--cc=rob@landley.net \
--cc=rusty@rustcorp.com.au \
--cc=wency@cn.fujitsu.com \
--cc=wujianguo106@gmail.com \
--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.