* Re: Suspicious compilation warning
@ 2010-04-20 23:07 ` Russell King - ARM Linux
0 siblings, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2010-04-20 23:07 UTC (permalink / raw)
To: Andrew Morton
Cc: Marcelo Jimenez, Stephen Rothwell, Christoph Lameter, Mel Gorman,
linux-kernel, linux-mm, Minchan Kim, KOSAKI Motohiro,
H. Peter Anvin, Yinghai Lu, linux-arm-kernel
On Tue, Apr 20, 2010 at 03:51:22PM -0700, Andrew Morton wrote:
> On Mon, 19 Apr 2010 20:27:43 -0300
> Marcelo Jimenez <mroberto@cpti.cetuc.puc-rio.br> wrote:
>
> > I get this warning while compiling for ARM/SA1100:
> >
> > mm/sparse.c: In function '__section_nr':
> > mm/sparse.c:135: warning: 'root' is used uninitialized in this function
> >
> > With a small patch in fs/proc/meminfo.c, I find that NR_SECTION_ROOTS
> > is zero, which certainly explains the warning.
> >
> > # cat /proc/meminfo
> > NR_SECTION_ROOTS=0
> > NR_MEM_SECTIONS=32
> > SECTIONS_PER_ROOT=512
> > SECTIONS_SHIFT=5
> > MAX_PHYSMEM_BITS=32
>
> hm, who owns sparsemem nowadays? Nobody identifiable.
>
> Does it make physical sense to have SECTIONS_PER_ROOT > NR_MEM_SECTIONS?
Well, it'll be about this number on everything using sparsemem extreme:
#define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
#define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
Clearly if we have 1 mem section, we want to have one section root, so
I think this division should round up any fractional part, thusly:
#define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
--
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] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-04-20 23:07 ` Russell King - ARM Linux
0 siblings, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2010-04-20 23:07 UTC (permalink / raw)
To: Andrew Morton
Cc: Marcelo Jimenez, Stephen Rothwell, Christoph Lameter, Mel Gorman,
linux-kernel, linux-mm, Minchan Kim, KOSAKI Motohiro,
H. Peter Anvin, Yinghai Lu, linux-arm-kernel
On Tue, Apr 20, 2010 at 03:51:22PM -0700, Andrew Morton wrote:
> On Mon, 19 Apr 2010 20:27:43 -0300
> Marcelo Jimenez <mroberto@cpti.cetuc.puc-rio.br> wrote:
>
> > I get this warning while compiling for ARM/SA1100:
> >
> > mm/sparse.c: In function '__section_nr':
> > mm/sparse.c:135: warning: 'root' is used uninitialized in this function
> >
> > With a small patch in fs/proc/meminfo.c, I find that NR_SECTION_ROOTS
> > is zero, which certainly explains the warning.
> >
> > # cat /proc/meminfo
> > NR_SECTION_ROOTS=0
> > NR_MEM_SECTIONS=32
> > SECTIONS_PER_ROOT=512
> > SECTIONS_SHIFT=5
> > MAX_PHYSMEM_BITS=32
>
> hm, who owns sparsemem nowadays? Nobody identifiable.
>
> Does it make physical sense to have SECTIONS_PER_ROOT > NR_MEM_SECTIONS?
Well, it'll be about this number on everything using sparsemem extreme:
#define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
#define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
Clearly if we have 1 mem section, we want to have one section root, so
I think this division should round up any fractional part, thusly:
#define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
^ permalink raw reply [flat|nested] 30+ messages in thread
* Suspicious compilation warning
2010-04-20 23:07 ` Russell King - ARM Linux
(?)
@ 2010-05-04 17:35 ` Marcelo Jimenez
-1 siblings, 0 replies; 30+ messages in thread
From: Marcelo Jimenez @ 2010-05-04 17:35 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Tue, Apr 20, 2010 at 20:07, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
>
> Well, it'll be about this number on everything using sparsemem extreme:
>
> #define SECTIONS_PER_ROOT ? ? ? (PAGE_SIZE / sizeof (struct mem_section))
>
> and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
> of zero. ?I think the calculation of NR_SECTIONS_ROOTS is wrong.
>
> #define NR_SECTION_ROOTS ? ? ? ?(NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
>
> Clearly if we have 1 mem section, we want to have one section root, so
> I think this division should round up any fractional part, thusly:
>
> #define NR_SECTION_ROOTS ? ? ? ?((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
Seems correct to me, Is there any idea when this gets committed?
Regards,
Marcelo.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-04 17:35 ` Marcelo Jimenez
0 siblings, 0 replies; 30+ messages in thread
From: Marcelo Jimenez @ 2010-05-04 17:35 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Andrew Morton, Stephen Rothwell, Christoph Lameter, Mel Gorman,
linux-kernel, linux-mm, Minchan Kim, KOSAKI Motohiro,
H. Peter Anvin, Yinghai Lu, linux-arm-kernel
Hi,
On Tue, Apr 20, 2010 at 20:07, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
>
> Well, it'll be about this number on everything using sparsemem extreme:
>
> #define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
>
> and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
> of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
>
> #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
>
> Clearly if we have 1 mem section, we want to have one section root, so
> I think this division should round up any fractional part, thusly:
>
> #define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
Seems correct to me, Is there any idea when this gets committed?
Regards,
Marcelo.
--
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] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-04 17:35 ` Marcelo Jimenez
0 siblings, 0 replies; 30+ messages in thread
From: Marcelo Jimenez @ 2010-05-04 17:35 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Andrew Morton, Stephen Rothwell, Christoph Lameter, Mel Gorman,
linux-kernel, linux-mm, Minchan Kim, KOSAKI Motohiro,
H. Peter Anvin, Yinghai Lu, linux-arm-kernel
Hi,
On Tue, Apr 20, 2010 at 20:07, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
>
> Well, it'll be about this number on everything using sparsemem extreme:
>
> #define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
>
> and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
> of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
>
> #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
>
> Clearly if we have 1 mem section, we want to have one section root, so
> I think this division should round up any fractional part, thusly:
>
> #define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
Seems correct to me, Is there any idea when this gets committed?
Regards,
Marcelo.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Suspicious compilation warning
2010-05-04 17:35 ` Marcelo Jimenez
(?)
@ 2010-05-04 17:45 ` Russell King - ARM Linux
-1 siblings, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2010-05-04 17:45 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, May 04, 2010 at 02:35:50PM -0300, Marcelo Jimenez wrote:
> Hi,
>
> On Tue, Apr 20, 2010 at 20:07, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
> >
> > Well, it'll be about this number on everything using sparsemem extreme:
> >
> > #define SECTIONS_PER_ROOT ? ? ? (PAGE_SIZE / sizeof (struct mem_section))
> >
> > and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
> > of zero. ?I think the calculation of NR_SECTIONS_ROOTS is wrong.
> >
> > #define NR_SECTION_ROOTS ? ? ? ?(NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
> >
> > Clearly if we have 1 mem section, we want to have one section root, so
> > I think this division should round up any fractional part, thusly:
> >
> > #define NR_SECTION_ROOTS ? ? ? ?((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
>
> Seems correct to me, Is there any idea when this gets committed?
What should be asked is whether it has been tested - if not, can we find
someone who can test and validate the change?
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-04 17:45 ` Russell King - ARM Linux
0 siblings, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2010-05-04 17:45 UTC (permalink / raw)
To: Marcelo Jimenez
Cc: Andrew Morton, Stephen Rothwell, Christoph Lameter, Mel Gorman,
linux-kernel, linux-mm, Minchan Kim, KOSAKI Motohiro,
H. Peter Anvin, Yinghai Lu, linux-arm-kernel
On Tue, May 04, 2010 at 02:35:50PM -0300, Marcelo Jimenez wrote:
> Hi,
>
> On Tue, Apr 20, 2010 at 20:07, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
> >
> > Well, it'll be about this number on everything using sparsemem extreme:
> >
> > #define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
> >
> > and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
> > of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
> >
> > #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
> >
> > Clearly if we have 1 mem section, we want to have one section root, so
> > I think this division should round up any fractional part, thusly:
> >
> > #define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
>
> Seems correct to me, Is there any idea when this gets committed?
What should be asked is whether it has been tested - if not, can we find
someone who can test and validate the change?
--
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] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-04 17:45 ` Russell King - ARM Linux
0 siblings, 0 replies; 30+ messages in thread
From: Russell King - ARM Linux @ 2010-05-04 17:45 UTC (permalink / raw)
To: Marcelo Jimenez
Cc: Andrew Morton, Stephen Rothwell, Christoph Lameter, Mel Gorman,
linux-kernel, linux-mm, Minchan Kim, KOSAKI Motohiro,
H. Peter Anvin, Yinghai Lu, linux-arm-kernel
On Tue, May 04, 2010 at 02:35:50PM -0300, Marcelo Jimenez wrote:
> Hi,
>
> On Tue, Apr 20, 2010 at 20:07, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
> >
> > Well, it'll be about this number on everything using sparsemem extreme:
> >
> > #define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
> >
> > and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
> > of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
> >
> > #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
> >
> > Clearly if we have 1 mem section, we want to have one section root, so
> > I think this division should round up any fractional part, thusly:
> >
> > #define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
>
> Seems correct to me, Is there any idea when this gets committed?
What should be asked is whether it has been tested - if not, can we find
someone who can test and validate the change?
^ permalink raw reply [flat|nested] 30+ messages in thread
* Suspicious compilation warning
2010-05-04 17:45 ` Russell King - ARM Linux
(?)
@ 2010-05-04 18:16 ` Marcelo Jimenez
-1 siblings, 0 replies; 30+ messages in thread
From: Marcelo Jimenez @ 2010-05-04 18:16 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, May 4, 2010 at 14:45, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
>
> What should be asked is whether it has been tested - if not, can we find
> someone who can test and validate the change?
I can test it, but I need help to figure out the test itself. I am
porting the kernel 2.6 to nanoengine and my resources in that
environment are still rather limited, not to mention I have not
finished the PCI port, so I still have no network.
On the other hand, the current situation is clearly broken and your
solution can hardly be worse than having NR_SECTION_ROOTS == 0.
Regards,
Marcelo.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-04 18:16 ` Marcelo Jimenez
0 siblings, 0 replies; 30+ messages in thread
From: Marcelo Jimenez @ 2010-05-04 18:16 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Andrew Morton, Stephen Rothwell, Christoph Lameter, Mel Gorman,
linux-kernel, linux-mm, Minchan Kim, KOSAKI Motohiro,
H. Peter Anvin, Yinghai Lu, linux-arm-kernel
On Tue, May 4, 2010 at 14:45, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
>
> What should be asked is whether it has been tested - if not, can we find
> someone who can test and validate the change?
I can test it, but I need help to figure out the test itself. I am
porting the kernel 2.6 to nanoengine and my resources in that
environment are still rather limited, not to mention I have not
finished the PCI port, so I still have no network.
On the other hand, the current situation is clearly broken and your
solution can hardly be worse than having NR_SECTION_ROOTS == 0.
Regards,
Marcelo.
--
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] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-04 18:16 ` Marcelo Jimenez
0 siblings, 0 replies; 30+ messages in thread
From: Marcelo Jimenez @ 2010-05-04 18:16 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Andrew Morton, Stephen Rothwell, Christoph Lameter, Mel Gorman,
linux-kernel, linux-mm, Minchan Kim, KOSAKI Motohiro,
H. Peter Anvin, Yinghai Lu, linux-arm-kernel
On Tue, May 4, 2010 at 14:45, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
>
> What should be asked is whether it has been tested - if not, can we find
> someone who can test and validate the change?
I can test it, but I need help to figure out the test itself. I am
porting the kernel 2.6 to nanoengine and my resources in that
environment are still rather limited, not to mention I have not
finished the PCI port, so I still have no network.
On the other hand, the current situation is clearly broken and your
solution can hardly be worse than having NR_SECTION_ROOTS == 0.
Regards,
Marcelo.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Suspicious compilation warning
2010-04-20 23:07 ` Russell King - ARM Linux
(?)
@ 2010-05-05 10:06 ` Sergei Shtylyov
-1 siblings, 0 replies; 30+ messages in thread
From: Sergei Shtylyov @ 2010-05-05 10:06 UTC (permalink / raw)
To: linux-arm-kernel
Hello.
Russell King - ARM Linux wrote:
>>> I get this warning while compiling for ARM/SA1100:
>>>
>>> mm/sparse.c: In function '__section_nr':
>>> mm/sparse.c:135: warning: 'root' is used uninitialized in this function
>>>
>>> With a small patch in fs/proc/meminfo.c, I find that NR_SECTION_ROOTS
>>> is zero, which certainly explains the warning.
>>>
>>> # cat /proc/meminfo
>>> NR_SECTION_ROOTS=0
>>> NR_MEM_SECTIONS=32
>>> SECTIONS_PER_ROOT=512
>>> SECTIONS_SHIFT=5
>>> MAX_PHYSMEM_BITS=32
>>>
>> hm, who owns sparsemem nowadays? Nobody identifiable.
>>
>> Does it make physical sense to have SECTIONS_PER_ROOT > NR_MEM_SECTIONS?
>>
>
> Well, it'll be about this number on everything using sparsemem extreme:
>
> #define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
>
> and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
> of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
>
> #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
>
> Clearly if we have 1 mem section, we want to have one section root, so
> I think this division should round up any fractional part, thusly:
>
> #define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
>
There's DIV_ROUND_UP() macro for this kind of calculation.
WBR, Sergei
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-05 10:06 ` Sergei Shtylyov
0 siblings, 0 replies; 30+ messages in thread
From: Sergei Shtylyov @ 2010-05-05 10:06 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Andrew Morton, Stephen Rothwell, Marcelo Jimenez,
Christoph Lameter, Mel Gorman, linux-kernel, linux-mm,
Minchan Kim, KOSAKI Motohiro, H. Peter Anvin, Yinghai Lu,
linux-arm-kernel
Hello.
Russell King - ARM Linux wrote:
>>> I get this warning while compiling for ARM/SA1100:
>>>
>>> mm/sparse.c: In function '__section_nr':
>>> mm/sparse.c:135: warning: 'root' is used uninitialized in this function
>>>
>>> With a small patch in fs/proc/meminfo.c, I find that NR_SECTION_ROOTS
>>> is zero, which certainly explains the warning.
>>>
>>> # cat /proc/meminfo
>>> NR_SECTION_ROOTS=0
>>> NR_MEM_SECTIONS=32
>>> SECTIONS_PER_ROOT=512
>>> SECTIONS_SHIFT=5
>>> MAX_PHYSMEM_BITS=32
>>>
>> hm, who owns sparsemem nowadays? Nobody identifiable.
>>
>> Does it make physical sense to have SECTIONS_PER_ROOT > NR_MEM_SECTIONS?
>>
>
> Well, it'll be about this number on everything using sparsemem extreme:
>
> #define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
>
> and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
> of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
>
> #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
>
> Clearly if we have 1 mem section, we want to have one section root, so
> I think this division should round up any fractional part, thusly:
>
> #define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
>
There's DIV_ROUND_UP() macro for this kind of calculation.
WBR, Sergei
--
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] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-05 10:06 ` Sergei Shtylyov
0 siblings, 0 replies; 30+ messages in thread
From: Sergei Shtylyov @ 2010-05-05 10:06 UTC (permalink / raw)
To: Russell King - ARM Linux
Cc: Andrew Morton, Stephen Rothwell, Marcelo Jimenez,
Christoph Lameter, Mel Gorman, linux-kernel, linux-mm,
Minchan Kim, KOSAKI Motohiro, H. Peter Anvin, Yinghai Lu,
linux-arm-kernel
Hello.
Russell King - ARM Linux wrote:
>>> I get this warning while compiling for ARM/SA1100:
>>>
>>> mm/sparse.c: In function '__section_nr':
>>> mm/sparse.c:135: warning: 'root' is used uninitialized in this function
>>>
>>> With a small patch in fs/proc/meminfo.c, I find that NR_SECTION_ROOTS
>>> is zero, which certainly explains the warning.
>>>
>>> # cat /proc/meminfo
>>> NR_SECTION_ROOTS=0
>>> NR_MEM_SECTIONS=32
>>> SECTIONS_PER_ROOT=512
>>> SECTIONS_SHIFT=5
>>> MAX_PHYSMEM_BITS=32
>>>
>> hm, who owns sparsemem nowadays? Nobody identifiable.
>>
>> Does it make physical sense to have SECTIONS_PER_ROOT > NR_MEM_SECTIONS?
>>
>
> Well, it'll be about this number on everything using sparsemem extreme:
>
> #define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
>
> and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
> of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
>
> #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
>
> Clearly if we have 1 mem section, we want to have one section root, so
> I think this division should round up any fractional part, thusly:
>
> #define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1) / SECTIONS_PER_ROOT)
>
There's DIV_ROUND_UP() macro for this kind of calculation.
WBR, Sergei
^ permalink raw reply [flat|nested] 30+ messages in thread
* Suspicious compilation warning
2010-05-05 10:06 ` Sergei Shtylyov
(?)
@ 2010-05-06 1:24 ` Kyungmin Park
-1 siblings, 0 replies; 30+ messages in thread
From: Kyungmin Park @ 2010-05-06 1:24 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, May 5, 2010 at 7:06 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote:
> Hello.
>
> Russell King - ARM Linux wrote:
>
>>>> I get this warning while compiling for ARM/SA1100:
>>>>
>>>> mm/sparse.c: In function '__section_nr':
>>>> mm/sparse.c:135: warning: 'root' is used uninitialized in this function
>>>>
>>>> With a small patch in fs/proc/meminfo.c, I find that NR_SECTION_ROOTS
>>>> is zero, which certainly explains the warning.
>>>>
>>>> # cat /proc/meminfo
>>>> NR_SECTION_ROOTS=0
>>>> NR_MEM_SECTIONS=32
>>>> SECTIONS_PER_ROOT=512
>>>> SECTIONS_SHIFT=5
>>>> MAX_PHYSMEM_BITS=32
>>>>
>>>
>>> hm, who owns sparsemem nowadays? Nobody identifiable.
>>>
>>> Does it make physical sense to have SECTIONS_PER_ROOT > NR_MEM_SECTIONS?
>>>
>>
>> Well, it'll be about this number on everything using sparsemem extreme:
>>
>> #define SECTIONS_PER_ROOT ? ? ? (PAGE_SIZE / sizeof (struct mem_section))
>>
>> and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
>> of zero. ?I think the calculation of NR_SECTIONS_ROOTS is wrong.
>>
>> #define NR_SECTION_ROOTS ? ? ? ?(NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
>>
>> Clearly if we have 1 mem section, we want to have one section root, so
>> I think this division should round up any fractional part, thusly:
>>
>> #define NR_SECTION_ROOTS ? ? ? ?((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1)
>> / SECTIONS_PER_ROOT)
>>
>
> ?There's DIV_ROUND_UP() macro for this kind of calculation.
Hi,
It tested with my board and working.
Just curious. If NR_SECTION_ROOTS is zero and uninitialized then
what's problem? Since we boot and working without patch.
Thank you,
Kyungmin Park
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-06 1:24 ` Kyungmin Park
0 siblings, 0 replies; 30+ messages in thread
From: Kyungmin Park @ 2010-05-06 1:24 UTC (permalink / raw)
To: Sergei Shtylyov
Cc: Russell King - ARM Linux, Stephen Rothwell, Marcelo Jimenez,
Christoph Lameter, Mel Gorman, linux-kernel, linux-mm,
Minchan Kim, KOSAKI Motohiro, H. Peter Anvin, Andrew Morton,
Yinghai Lu, linux-arm-kernel
On Wed, May 5, 2010 at 7:06 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote:
> Hello.
>
> Russell King - ARM Linux wrote:
>
>>>> I get this warning while compiling for ARM/SA1100:
>>>>
>>>> mm/sparse.c: In function '__section_nr':
>>>> mm/sparse.c:135: warning: 'root' is used uninitialized in this function
>>>>
>>>> With a small patch in fs/proc/meminfo.c, I find that NR_SECTION_ROOTS
>>>> is zero, which certainly explains the warning.
>>>>
>>>> # cat /proc/meminfo
>>>> NR_SECTION_ROOTS=0
>>>> NR_MEM_SECTIONS=32
>>>> SECTIONS_PER_ROOT=512
>>>> SECTIONS_SHIFT=5
>>>> MAX_PHYSMEM_BITS=32
>>>>
>>>
>>> hm, who owns sparsemem nowadays? Nobody identifiable.
>>>
>>> Does it make physical sense to have SECTIONS_PER_ROOT > NR_MEM_SECTIONS?
>>>
>>
>> Well, it'll be about this number on everything using sparsemem extreme:
>>
>> #define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
>>
>> and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
>> of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
>>
>> #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
>>
>> Clearly if we have 1 mem section, we want to have one section root, so
>> I think this division should round up any fractional part, thusly:
>>
>> #define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1)
>> / SECTIONS_PER_ROOT)
>>
>
> There's DIV_ROUND_UP() macro for this kind of calculation.
Hi,
It tested with my board and working.
Just curious. If NR_SECTION_ROOTS is zero and uninitialized then
what's problem? Since we boot and working without patch.
Thank you,
Kyungmin Park
--
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] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-06 1:24 ` Kyungmin Park
0 siblings, 0 replies; 30+ messages in thread
From: Kyungmin Park @ 2010-05-06 1:24 UTC (permalink / raw)
To: Sergei Shtylyov
Cc: Russell King - ARM Linux, Stephen Rothwell, Marcelo Jimenez,
Christoph Lameter, Mel Gorman, linux-kernel, linux-mm,
Minchan Kim, KOSAKI Motohiro, H. Peter Anvin, Andrew Morton,
Yinghai Lu, linux-arm-kernel
On Wed, May 5, 2010 at 7:06 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote:
> Hello.
>
> Russell King - ARM Linux wrote:
>
>>>> I get this warning while compiling for ARM/SA1100:
>>>>
>>>> mm/sparse.c: In function '__section_nr':
>>>> mm/sparse.c:135: warning: 'root' is used uninitialized in this function
>>>>
>>>> With a small patch in fs/proc/meminfo.c, I find that NR_SECTION_ROOTS
>>>> is zero, which certainly explains the warning.
>>>>
>>>> # cat /proc/meminfo
>>>> NR_SECTION_ROOTS=0
>>>> NR_MEM_SECTIONS=32
>>>> SECTIONS_PER_ROOT=512
>>>> SECTIONS_SHIFT=5
>>>> MAX_PHYSMEM_BITS=32
>>>>
>>>
>>> hm, who owns sparsemem nowadays? Nobody identifiable.
>>>
>>> Does it make physical sense to have SECTIONS_PER_ROOT > NR_MEM_SECTIONS?
>>>
>>
>> Well, it'll be about this number on everything using sparsemem extreme:
>>
>> #define SECTIONS_PER_ROOT (PAGE_SIZE / sizeof (struct mem_section))
>>
>> and with only 32 sections, this is going to give a NR_SECTION_ROOTS value
>> of zero. I think the calculation of NR_SECTIONS_ROOTS is wrong.
>>
>> #define NR_SECTION_ROOTS (NR_MEM_SECTIONS / SECTIONS_PER_ROOT)
>>
>> Clearly if we have 1 mem section, we want to have one section root, so
>> I think this division should round up any fractional part, thusly:
>>
>> #define NR_SECTION_ROOTS ((NR_MEM_SECTIONS + SECTIONS_PER_ROOT - 1)
>> / SECTIONS_PER_ROOT)
>>
>
> There's DIV_ROUND_UP() macro for this kind of calculation.
Hi,
It tested with my board and working.
Just curious. If NR_SECTION_ROOTS is zero and uninitialized then
what's problem? Since we boot and working without patch.
Thank you,
Kyungmin Park
^ permalink raw reply [flat|nested] 30+ messages in thread
* Suspicious compilation warning
2010-05-06 1:24 ` Kyungmin Park
(?)
@ 2010-05-06 13:24 ` Marcelo Jimenez
-1 siblings, 0 replies; 30+ messages in thread
From: Marcelo Jimenez @ 2010-05-06 13:24 UTC (permalink / raw)
To: linux-arm-kernel
Hi Kyungmin,
On Wed, May 5, 2010 at 22:24, Kyungmin Park <kmpark@infradead.org> wrote:
>
> Hi,
>
> It tested with my board and working.
> Just curious. If NR_SECTION_ROOTS is zero and uninitialized then
> what's problem? Since we boot and working without patch.
The original compiler error message was:
mm/sparse.c: In function '__section_nr':
mm/sparse.c:135: warning: 'root' is used uninitialized in this function
Leaving a variable to be used uninitialized is the issue here.
> Thank you,
> Kyungmin Park
Regards,
Marcelo.
^ permalink raw reply [flat|nested] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-06 13:24 ` Marcelo Jimenez
0 siblings, 0 replies; 30+ messages in thread
From: Marcelo Jimenez @ 2010-05-06 13:24 UTC (permalink / raw)
To: Kyungmin Park
Cc: Sergei Shtylyov, Russell King - ARM Linux, Stephen Rothwell,
Christoph Lameter, Mel Gorman, linux-kernel, linux-mm,
Minchan Kim, KOSAKI Motohiro, H. Peter Anvin, Andrew Morton,
Yinghai Lu, linux-arm-kernel
Hi Kyungmin,
On Wed, May 5, 2010 at 22:24, Kyungmin Park <kmpark@infradead.org> wrote:
>
> Hi,
>
> It tested with my board and working.
> Just curious. If NR_SECTION_ROOTS is zero and uninitialized then
> what's problem? Since we boot and working without patch.
The original compiler error message was:
mm/sparse.c: In function '__section_nr':
mm/sparse.c:135: warning: 'root' is used uninitialized in this function
Leaving a variable to be used uninitialized is the issue here.
> Thank you,
> Kyungmin Park
Regards,
Marcelo.
--
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] 30+ messages in thread
* Re: Suspicious compilation warning
@ 2010-05-06 13:24 ` Marcelo Jimenez
0 siblings, 0 replies; 30+ messages in thread
From: Marcelo Jimenez @ 2010-05-06 13:24 UTC (permalink / raw)
To: Kyungmin Park
Cc: Sergei Shtylyov, Russell King - ARM Linux, Stephen Rothwell,
Christoph Lameter, Mel Gorman, linux-kernel, linux-mm,
Minchan Kim, KOSAKI Motohiro, H. Peter Anvin, Andrew Morton,
Yinghai Lu, linux-arm-kernel
Hi Kyungmin,
On Wed, May 5, 2010 at 22:24, Kyungmin Park <kmpark@infradead.org> wrote:
>
> Hi,
>
> It tested with my board and working.
> Just curious. If NR_SECTION_ROOTS is zero and uninitialized then
> what's problem? Since we boot and working without patch.
The original compiler error message was:
mm/sparse.c: In function '__section_nr':
mm/sparse.c:135: warning: 'root' is used uninitialized in this function
Leaving a variable to be used uninitialized is the issue here.
> Thank you,
> Kyungmin Park
Regards,
Marcelo.
^ permalink raw reply [flat|nested] 30+ messages in thread