Re: kernel boot fail with efi earlyprintk (bisected)

From: Dave Young
Date: Mon Aug 25 2014 - 05:05:14 EST


On 08/25/14 at 06:34am, Zheng, Lv wrote:
> Hi,
>
> > From: Dave Young [mailto:dyoung@xxxxxxxxxx]
> > Sent: Monday, August 25, 2014 2:07 PM
> > To: Matt Fleming
> > Cc: Zheng, Lv; Fleming, Matt; linux-efi@xxxxxxxxxxxxxxx; linux-acpi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; devel@xxxxxxxxxx;
> > lenb@xxxxxxxxxx; Wysocki, Rafael J; Moore, Robert
> > Subject: Re: kernel boot fail with efi earlyprintk (bisected)
> >
> > On 08/22/14 at 06:02pm, Dave Young wrote:
> > > On 08/21/14 at 09:52pm, Matt Fleming wrote:
> > > > On Tue, 19 Aug, at 04:16:58PM, Dave Young wrote:
> > > > > Hi,
> > > > >
> > > > > 3.16 kernel boot fail with earlyprintk=efi on my laptop.
> > > > > It keeps scrolling at the bottom line of screen.
> > > > >
> > > > > Bisected, the first bad commit is below:
> > > > > commit 86dfc6f339886559d80ee0d4bd20fe5ee90450f0
> > > > > Author: Lv Zheng <lv.zheng@xxxxxxxxx>
> > > > > Date: Fri Apr 4 12:38:57 2014 +0800
> > > > >
> > > > > ACPICA: Tables: Fix table checksums verification before installation.
> > > > >
> > > > >
> > > > > I did some debugging by enabling both serial and efi earlyprintk, below is
> > > > > some debug dmesg, seems early_ioremap fails in scroll up function due to
> > > > > no free slot, but I'm still not sure if the debug info is right or not.
> > > >
> > > > Thanks Dave, your callstack seems to make sense.
> > > >
> > > > Can you also enable early_ioremap_debug so that we can figure out where
> > > > all the FIXMAP slots are going?
> > >
> > > With early_ioremap_debug enabled, there will be a lot of "dropped printk", so
> > > I can not get any useful information.
> > >
> > > Will try to do more debug.
> >
> > early_ioremap_debug does not work because we are debugging early_printk but
> > early_ioremap_debug itself will print warning message at the same time.
> >
> > Tried what Lv mentioned, increasing the early ioremap slots does help.
>
> Could you send a tested patch to linux-acpi@xxxxxxxxxxxxxxx for this?
> I think the number of early mapping slots need to be increased by 1 because of this case.

Problem is I do not understand the implementation detail yet.

I did below changes:

Original values:
#define NR_FIX_BTMAPS 64
#define FIX_BTMAPS_SLOTS 4

-> new values tested:
#define NR_FIX_BTMAPS 32
#define FIX_BTMAPS_SLOTS 8


There's below comments
/*
* 256 temporary boot-time mappings, used by early_ioremap(),
* before ioremap() is functional.
*
* If necessary we round it up to the next 256 pages boundary so
* that we can have a single pgd entry and a single pte table:
*/

So seems increase it to 64 * 8 = 512 should be ok. If it's fine I can test again
and post a patch.


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