From: Ingo Molnar on

* James Morris <jmorris(a)namei.org> wrote:

> On Tue, 30 Mar 2010, H. Peter Anvin wrote:
>
> > On 03/30/2010 09:49 PM, James Morris wrote:
> > >
> > > Please make NO_BOOTMEM default to n, at least for amd64, where I've found
> > > that it leads to all kinds of strange, undebuggable boot hangs and errors
> > > (with relatively current Fedora development userland).
> >
> > Have you tested it with the latest fixes that are now in Linus' tree (-rc3)?
>
> Yes, it was happening with -rc3.

Could you please send the bootlog that Yinghai asked for, plus also one that
you get with NO_BOOTMEM turned off (for comparison)?

Also, when did you first hit this bug? This code has been upstream for almost
a month, and it was in linux-next before that - so you should have hit this
much sooner. A rough timeframe would suffice. I suppose you were booting
upstream kernels during the merge window as well?

We can flip the default around if there's no fix available based on the
bootlogs. (Plus the help text should definitely be improved.)

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Dave Airlie on
On Thu, Apr 1, 2010 at 4:59 AM, Ingo Molnar <mingo(a)elte.hu> wrote:
>
> * James Morris <jmorris(a)namei.org> wrote:
>
>> On Tue, 30 Mar 2010, H. Peter Anvin wrote:
>>
>> > On 03/30/2010 09:49 PM, James Morris wrote:
>> > >
>> > > Please make NO_BOOTMEM default to n, at least for amd64, where I've found
>> > > that it leads to all kinds of strange, undebuggable boot hangs and errors
>> > > (with relatively current Fedora development userland).
>> >
>> > Have you tested it with the latest fixes that are now in Linus' tree (-rc3)?
>>
>> Yes, it was happening with -rc3.
>
> Could you please send the bootlog that Yinghai asked for, plus also one that
> you get with NO_BOOTMEM turned off (for comparison)?
>
> Also, when did you first hit this bug? This code has been upstream for almost
> a month, and it was in linux-next before that - so you should have hit this
> much sooner. A rough timeframe would suffice. I suppose you were booting
> upstream kernels during the merge window as well?
>
> We can flip the default around if there's no fix available based on the
> bootlogs. (Plus the help text should definitely be improved.)
>

Are you testing this btw with initramfs/initrds? I suspect lots of testing
is being done by people on monolithic kernels, this is just a misc guess,
considering I couldn't boot from when this landed until rc3 with this option
on a basic 32-bit install on a dual-core 64-bit CPU, it suggested a
hole of some sort
in the test coverage.

Dave
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Yinghai Lu on
On 03/31/2010 02:14 PM, Dave Airlie wrote:
> On Thu, Apr 1, 2010 at 4:59 AM, Ingo Molnar <mingo(a)elte.hu> wrote:
>>
>> * James Morris <jmorris(a)namei.org> wrote:
>>
>>> On Tue, 30 Mar 2010, H. Peter Anvin wrote:
>>>
>>>> On 03/30/2010 09:49 PM, James Morris wrote:
>>>>>
>>>>> Please make NO_BOOTMEM default to n, at least for amd64, where I've found
>>>>> that it leads to all kinds of strange, undebuggable boot hangs and errors
>>>>> (with relatively current Fedora development userland).
>>>>
>>>> Have you tested it with the latest fixes that are now in Linus' tree (-rc3)?
>>>
>>> Yes, it was happening with -rc3.
>>
>> Could you please send the bootlog that Yinghai asked for, plus also one that
>> you get with NO_BOOTMEM turned off (for comparison)?
>>
>> Also, when did you first hit this bug? This code has been upstream for almost
>> a month, and it was in linux-next before that - so you should have hit this
>> much sooner. A rough timeframe would suffice. I suppose you were booting
>> upstream kernels during the merge window as well?
>>
>> We can flip the default around if there's no fix available based on the
>> bootlogs. (Plus the help text should definitely be improved.)
>>
>
> Are you testing this btw with initramfs/initrds? I suspect lots of testing
> is being done by people on monolithic kernels, this is just a misc guess,
> considering I couldn't boot from when this landed until rc3 with this option
> on a basic 32-bit install on a dual-core 64-bit CPU, it suggested a
> hole of some sort
> in the test coverage.

so -rc3 is working your setup?

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Yinghai Lu on
On 03/31/2010 03:13 PM, Ingo Molnar wrote:
>
> * Yinghai Lu <yinghai(a)kernel.org> wrote:
>
>> --- linux-2.6.orig/arch/x86/mm/init_32.c
>> +++ linux-2.6/arch/x86/mm/init_32.c
>> @@ -875,7 +875,12 @@ void __init mem_init(void)
>> BUG_ON(!mem_map);
>> #endif
>> /* this will put all low memory onto the freelists */
>> +#if defined(CONFIG_NO_BOOTMEM) && defined(MAX_NUMNODES)
>> + /* In case some 32bit systems don't have RAM installed on node0 */
>> + totalram_pages += free_all_memory_core_early(MAX_NUMNODES);
>
> (Note: tab whitespace damage)
>
>> +#else
>> totalram_pages += free_all_bootmem();
>
> So we get into this branch if CONFIG_NO_BOOTMEM is enabled but MAX_NUMNODES is
> not defined? Doesnt look right.

yes.

free_all_bootmem() will call
free_all_memory_core_early(NODE_DATA(0)->node_id);

Thanks

Yinghai Lu
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Ingo Molnar on

* Yinghai Lu <yinghai(a)kernel.org> wrote:

> --- linux-2.6.orig/arch/x86/mm/init_32.c
> +++ linux-2.6/arch/x86/mm/init_32.c
> @@ -875,7 +875,12 @@ void __init mem_init(void)
> BUG_ON(!mem_map);
> #endif
> /* this will put all low memory onto the freelists */
> +#if defined(CONFIG_NO_BOOTMEM) && defined(MAX_NUMNODES)
> + /* In case some 32bit systems don't have RAM installed on node0 */
> + totalram_pages += free_all_memory_core_early(MAX_NUMNODES);

(Note: tab whitespace damage)

> +#else
> totalram_pages += free_all_bootmem();

So we get into this branch if CONFIG_NO_BOOTMEM is enabled but MAX_NUMNODES is
not defined? Doesnt look right.

> +#endif

Btw., and i said this before, i absolutely hate the CONFIG_NO_BOOTMEM naming
as well (a negative in the option), but it is was what expresses the 'this is
where we want to go' state better and thus CONFIG_NO_BOOTMEM removal will be a
straight removal instead of a removal of the inverse.

Thanks,

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/