Re: PROBLEM: Crash after mm: fix initialization of struct page for holes in memory layout

From: Łukasz Majczak
Date: Wed Jan 27 2021 - 08:17:39 EST


Hi Mike,

I have started bisecting your patch and I have figured out that there
might be something wrong with clamping - with comments out these lines
it started to work.
The full log (with logs from below patch) can be found here:
https://gist.github.com/semihalf-majczak-lukasz/3cecbab0ddc59a6c3ce11ddc29645725
it's fresh - I haven't analyze it yet, just sharing with hope it will help.

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index eed54ce26ad1..9f4468c413a1 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -7093,9 +7093,11 @@ static u64 __init
init_unavailable_range(unsigned long spfn, unsigned long epfn,
zone_spfn = arch_zone_lowest_possible_pfn[zone];
zone_epfn = arch_zone_highest_possible_pfn[zone];

- spfn = clamp(spfn, zone_spfn, zone_epfn);
- epfn = clamp(epfn, zone_spfn, zone_epfn);
-
+ //spfn = clamp(spfn, zone_spfn, zone_epfn);
+ //epfn = clamp(epfn, zone_spfn, zone_epfn);
+ pr_info("LMA DBG: zone_spfn: %llx, zone_epfn %llx\n",
zone_spfn, zone_epfn);
+ pr_info("LMA DBG: spfn: %llx, epfn %llx\n", spfn, epfn);
+ pr_info("LMA DBG: clamp_spfn: %llx, clamp_epfn %llx\n",
clamp(spfn, zone_spfn, zone_epfn), clamp(epfn, zone_spfn, zone_epfn));
for (pfn = spfn; pfn < epfn; pfn++) {
if (!pfn_valid(ALIGN_DOWN(pfn, pageblock_nr_pages))) {
pfn = ALIGN_DOWN(pfn, pageblock_nr_pages)

Best regards,
Lukasz


śr., 27 sty 2021 o 13:15 Łukasz Majczak <lma@xxxxxxxxxxxx> napisał(a):
>
> Unfortunately nothing :( my current kernel command line contains:
> console=ttyS0,115200n8 debug earlyprintk=serial loglevel=7
>
> I was thinking about using earlycon, but it seems to be blocked.
> (I think the lack of earlycon might be related to Chromebook HW
> security design. There is an EC controller which is a part of AP ->
> serial chain as kernel messages are considered sensitive from a
> security standpoint.)
>
> Best regards,
> Lukasz
>
> śr., 27 sty 2021 o 12:19 Mike Rapoport <rppt@xxxxxxxxxxxxx> napisał(a):
> >
> > On Wed, Jan 27, 2021 at 11:08:17AM +0100, Łukasz Majczak wrote:
> > > Hi Mike,
> > >
> > > Actually I have a serial console attached (via servo device), but
> > > there is no output :( and also the reboot/crash is very fast/immediate
> > > after power on.
> >
> > If you boot with earlyprintk=serial are there any messages?
> >
> > > Best regards
> > > Lukasz
> > >
> > > śr., 27 sty 2021 o 11:05 Mike Rapoport <rppt@xxxxxxxxxxxxx> napisał(a):
> > > >
> > > > Hi Lukasz,
> > > >
> > > > On Wed, Jan 27, 2021 at 10:22:29AM +0100, Łukasz Majczak wrote:
> > > > > Crash after mm: fix initialization of struct page for holes in memory layout
> > > > >
> > > > > Hi,
> > > > > I was trying to run v5.11-rc5 on my Samsung Chromebook Pro (Caroline),
> > > > > but I've noticed it has crashed - unfortunately it seems to happen at
> > > > > a very early stage - No output to the console nor to the screen, so I
> > > > > have started a bisect (between 5.11-rc4 - which works just find - and
> > > > > 5.11-rc5),
> > > > > bisect results points to:
> > > > >
> > > > > d3921cb8be29 mm: fix initialization of struct page for holes in memory layout
> > > > >
> > > > > Reproduction is just to build and load the kernel.
> > > > >
> > > > > If it will help any how I am attaching:
> > > > > - /proc/cpuinfo (from healthy system):
> > > > > https://gist.github.com/semihalf-majczak-lukasz/3517867bf39f07377c1a785b64a97066
> > > > > - my .config file (for a broken system):
> > > > > https://gist.github.com/semihalf-majczak-lukasz/584b329f1bf3e43b53efe8e18b5da33c
> > > > >
> > > > > If there is anything I could add/do/test to help fix this please let me know.
> > > >
> > > > Chris Wilson also reported boot failures on several Chromebooks:
> > > >
> > > > https://lore.kernel.org/lkml/161160687463.28991.354987542182281928@xxxxxxxxxxxxxxxxxxxxx
> > > >
> > > > I presume serial console is not an option, so if you could boot with
> > > > earlyprintk=vga and see if there is anything useful printed on the screen
> > > > it would be really helpful.
> > > >
> > > > > Best regards
> > > > > Lukasz
> > > >
> > > > --
> > > > Sincerely yours,
> > > > Mike.
> >
> > --
> > Sincerely yours,
> > Mike.