Re: [PATCH] mips: sgi-ip27: switch from DISCONTIGMEM to SPARSEMEM

Mike Rapoport
2019-09-06T13:02:33Z

On Thu, Sep 05, 2019 at 11:38:00PM +0200, Thomas Bogendoerfer wrote:
> On Thu, 5 Sep 2019 18:47:49 +0300
> Mike Rapoport <rppt@kernel.org> wrote:
>
> > On Thu, Sep 05, 2019 at 03:48:31PM +0200, Thomas Bogendoerfer wrote:
> > > On Thu, 5 Sep 2019 16:32:53 +0300
> > > Mike Rapoport <rppt@kernel.org> wrote:
> > >
> > > > On Thu, Sep 05, 2019 at 03:21:50PM +0200, Thomas Bogendoerfer wrote:
> > > > > On Thu, 5 Sep 2019 08:47:57 +0300
> > > > > Mike Rapoport <rppt@kernel.org> wrote:
> > > > >
> > > > > > From: Mike Rapoport <rppt@linux.ibm.com>
> > > > > >
> > > > > > The memory initialization of SGI-IP27 is already half-way to support
> > > > > > SPARSEMEM and only a call to sparse_init() was missing. Add it to
> > > > > > prom_meminit() and adjust arch/mips/Kconfig to enable SPARSEMEM and
> > > > > > SPARSEMEM_EXTREME for SGI-IP27
> > > > > >
> > > > > > Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
> > > > > > ---
> > > > > >
> > > > > > Thomas, could you please test this on your Origin machine?
> > > > >
> > > > > it crashes in sparse_early_usemaps_alloc_pgdat_section(). Since there is
> > > > > already a sparse_init() in arch_mem_setup() I removed it from ip27-memory.c.
> > > >
> > > > Oops, missed that.
> > > >
> > > > > With this booting made more progress but I get an unaligned access in
> > > > > kernel_init_free_pages().
> > > >
> > > > Can you please share the log?
> > >
> > > sure
> >
> > Nothing looked particularly suspicious, but I've found that I've missed the
> > definition of pfn_to_nid() is for DISCONTIGMEM only, maybe making it
> > available for SPARSE would help :)
> >
> > I'm pretty much shooting in the dark here, but can you please try the patch
> > below on top of the original one:
>
> doesn't compile:
>
> /home/tbogendoerfer/wip/mips/linux/include/linux/mmzone.h:1367:0: warning: "pfn_to_nid" redefined
> #define pfn_to_nid(pfn) \
>
>
> For testing I've removed the version in linux/mmzone.h, but kernel still crashes. Only
> difference is that several CPUs are printing the oops in unaligned handler in parallel.
> With the sparse_init() in prom_meminit() kernel dies at the same spot as before.

Well, apparently the generic pfn_to_nid() is better :)

I suspect that unaligned access comes from __page_to_pfn, can you please
check what scripts/fadd2line reports for kernel_init_free_pages+0xcc/0x138?

> Thomas.
>
> --
> SUSE Software Solutions Germany GmbH
> HRB 247165 (AG München)
> Geschäftsführer: Felix Imendörffer

--
Sincerely yours,
Mike.