Subject: Re: Boot failures with "mm/sparse: Remove CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER" on powerpc (was Re: mmotm 2018-07-10-16-50 uploaded)

From: Michael Ellerman <[email-masked]>
Date: Thu, 12 Jul 2018 15:24:38 +1000

Oscar Salvador <[email-masked]> writes:
> El dc., 11 jul. 2018 , 15:56, Pavel Tatashin <[email-masked]> va
> escriure:
>
>> I am OK, if this patch is removed from Baoquan's series. But, I would
>> still like to get rid of CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER, I
>> can work on this in my sparse_init re-write series. ppc64 should
>> really fallback safely to small chunks allocs, and if it does not
>> there is some existing bug. Michael please send the config that you
>> used.
>>
>> Thank you,
>> Pavel
>> On Wed, Jul 11, 2018 at 9:37 AM Oscar Salvador
>> <[email-masked]> wrote:
>> >
>> > On Wed, Jul 11, 2018 at 10:49:58PM +1000, Michael Ellerman wrote:
>> > > [email-masked] writes:
>> > > > The mm-of-the-moment snapshot 2018-07-10-16-50 has been uploaded to
>> > > >
>> > > >    http://www.ozlabs.org/~akpm/mmotm/
>> > > ...
>> > >
>> > > > * mm-sparse-add-a-static-variable-nr_present_sections.patch
>> > > > * mm-sparsemem-defer-the-ms-section_mem_map-clearing.patch
>> > > > * mm-sparsemem-defer-the-ms-section_mem_map-clearing-fix.patch
>> > > > *
>> mm-sparse-add-a-new-parameter-data_unit_size-for-alloc_usemap_and_memmap.patch
>> > > > * mm-sparse-optimize-memmap-allocation-during-sparse_init.patch
>> > > > *
>> mm-sparse-optimize-memmap-allocation-during-sparse_init-checkpatch-fixes.patch
>> > >
>> > > > * mm-sparse-remove-config_sparsemem_alloc_mem_map_together.patch
>> > >
>> > > This seems to be breaking my powerpc pseries qemu boots.
>> > >
>> > > The boot log with some extra debug shows eg:
>> > >
>> > >   $ make pseries_le_defconfig
>> >
>> > Could you please share the config?
>> > I was not able to find such config in the kernel tree.
>>
>>
> I just roughly check, but if I checked the right place,
> vmemmap_populated() checks for the section to contain the flags we are
> setting in sparse_init_one_section().

Yes.

> But with this patch, we populate first everything, and then we call
> sparse_init_one_section() in sparse_init().
> As I said I could be mistaken because I just checked the surface.

Yeah I think that's correct.

This might just be a bug in our code, let me look at it a bit.

cheers