* [PATCH V2] x86/mm: Fix zone ranges boot printout
@ 2014-12-09 3:27 Xishi Qiu
2014-12-09 22:50 ` Andrew Morton
0 siblings, 1 reply; 3+ messages in thread
From: Xishi Qiu @ 2014-12-09 3:27 UTC (permalink / raw)
To: Ingo Molnar, dave, Rik van Riel, H. Peter Anvin, Thomas Gleixner,
Andrew Morton
Cc: linux-tip-commits, LKML, Linux MM, Xishi Qiu
Changelog:
V2:
-fix building warnings of min(...).
This is the usual physical memory layout boot printout:
...
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00001000-0x00ffffff]
[ 0.000000] DMA32 [mem 0x01000000-0xffffffff]
[ 0.000000] Normal [mem 0x100000000-0xc3fffffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00001000-0x00099fff]
[ 0.000000] node 0: [mem 0x00100000-0xbf78ffff]
[ 0.000000] node 0: [mem 0x100000000-0x63fffffff]
[ 0.000000] node 1: [mem 0x640000000-0xc3fffffff]
...
This is the log when we set "mem=2G" on the boot cmdline:
...
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00001000-0x00ffffff]
[ 0.000000] DMA32 [mem 0x01000000-0xffffffff] // should be 0x7fffffff, right?
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00001000-0x00099fff]
[ 0.000000] node 0: [mem 0x00100000-0x7fffffff]
...
This patch fixes the printout, the following log shows the right ranges:
...
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x00001000-0x00ffffff]
[ 0.000000] DMA32 [mem 0x01000000-0x7fffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00001000-0x00099fff]
[ 0.000000] node 0: [mem 0x00100000-0x7fffffff]
...
Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
---
arch/x86/mm/init.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
index 66dba36..963945d 100644
--- a/arch/x86/mm/init.c
+++ b/arch/x86/mm/init.c
@@ -674,10 +674,12 @@ void __init zone_sizes_init(void)
memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
#ifdef CONFIG_ZONE_DMA
- max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
+ max_zone_pfns[ZONE_DMA] = min_t(unsigned long,
+ max_low_pfn, MAX_DMA_PFN);
#endif
#ifdef CONFIG_ZONE_DMA32
- max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
+ max_zone_pfns[ZONE_DMA32] = min_t(unsigned long,
+ max_low_pfn, MAX_DMA32_PFN);
#endif
max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
#ifdef CONFIG_HIGHMEM
--
2.0.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>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH V2] x86/mm: Fix zone ranges boot printout
2014-12-09 3:27 [PATCH V2] x86/mm: Fix zone ranges boot printout Xishi Qiu
@ 2014-12-09 22:50 ` Andrew Morton
2014-12-10 1:40 ` Xishi Qiu
0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2014-12-09 22:50 UTC (permalink / raw)
To: Xishi Qiu
Cc: Ingo Molnar, dave, Rik van Riel, H. Peter Anvin, Thomas Gleixner,
linux-tip-commits, LKML, Linux MM
On Tue, 9 Dec 2014 11:27:20 +0800 Xishi Qiu <qiuxishi@huawei.com> wrote:
> Changelog:
> V2:
> -fix building warnings of min(...).
>
> ...
>
> --- a/arch/x86/mm/init.c
> +++ b/arch/x86/mm/init.c
> @@ -674,10 +674,12 @@ void __init zone_sizes_init(void)
> memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
>
> #ifdef CONFIG_ZONE_DMA
> - max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
> + max_zone_pfns[ZONE_DMA] = min_t(unsigned long,
> + max_low_pfn, MAX_DMA_PFN);
MAX_DMA_PFN has type int.
> #endif
> #ifdef CONFIG_ZONE_DMA32
> - max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
> + max_zone_pfns[ZONE_DMA32] = min_t(unsigned long,
> + max_low_pfn, MAX_DMA32_PFN);
MAX_DMA32_PFN has type UL (I think?) so there's no need for min_t here.
> #endif
> max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
> #ifdef CONFIG_HIGHMEM
Let's try to get the types correct, rather than hacking around fixing
up fallout from earlier incorrect type choices?
What is the type of a pfn? Unsigned long, generally, when we bother
thinking about it.
So how about we make MAX_DMA_PFN have type UL? I assume that fixes the
warning?
If we do this, we should also be able to undo the min_t hackery in
arch/x86/kernel/e820.c:memblock_find_dma_reserve().
--
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>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH V2] x86/mm: Fix zone ranges boot printout
2014-12-09 22:50 ` Andrew Morton
@ 2014-12-10 1:40 ` Xishi Qiu
0 siblings, 0 replies; 3+ messages in thread
From: Xishi Qiu @ 2014-12-10 1:40 UTC (permalink / raw)
To: Andrew Morton
Cc: Ingo Molnar, dave, Rik van Riel, H. Peter Anvin, Thomas Gleixner,
linux-tip-commits, LKML, Linux MM
On 2014/12/10 6:50, Andrew Morton wrote:
> On Tue, 9 Dec 2014 11:27:20 +0800 Xishi Qiu <qiuxishi@huawei.com> wrote:
>
>> Changelog:
>> V2:
>> -fix building warnings of min(...).
>>
>> ...
>>
>> --- a/arch/x86/mm/init.c
>> +++ b/arch/x86/mm/init.c
>> @@ -674,10 +674,12 @@ void __init zone_sizes_init(void)
>> memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
>>
>> #ifdef CONFIG_ZONE_DMA
>> - max_zone_pfns[ZONE_DMA] = MAX_DMA_PFN;
>> + max_zone_pfns[ZONE_DMA] = min_t(unsigned long,
>> + max_low_pfn, MAX_DMA_PFN);
>
> MAX_DMA_PFN has type int.
>
>> #endif
>> #ifdef CONFIG_ZONE_DMA32
>> - max_zone_pfns[ZONE_DMA32] = MAX_DMA32_PFN;
>> + max_zone_pfns[ZONE_DMA32] = min_t(unsigned long,
>> + max_low_pfn, MAX_DMA32_PFN);
>
> MAX_DMA32_PFN has type UL (I think?) so there's no need for min_t here.
>
>> #endif
>> max_zone_pfns[ZONE_NORMAL] = max_low_pfn;
>> #ifdef CONFIG_HIGHMEM
>
>
> Let's try to get the types correct, rather than hacking around fixing
> up fallout from earlier incorrect type choices?
>
> What is the type of a pfn? Unsigned long, generally, when we bother
> thinking about it.
>
> So how about we make MAX_DMA_PFN have type UL? I assume that fixes the
> warning?
>
> If we do this, we should also be able to undo the min_t hackery in
> arch/x86/kernel/e820.c:memblock_find_dma_reserve().
>
Hi Andrew,
Thanks for your suggestion, I'll resend V3.
Thanks,
Xishi Qiu
>
> .
>
--
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>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-12-10 1:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-09 3:27 [PATCH V2] x86/mm: Fix zone ranges boot printout Xishi Qiu
2014-12-09 22:50 ` Andrew Morton
2014-12-10 1:40 ` Xishi Qiu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox