On 08/25/14 at 06:34am, Zheng, Lv wrote:
> Hi,
>
> > From: Dave Young [mailto:[email protected]]
> > Sent: Monday, August 25, 2014 2:07 PM
> > To: Matt Fleming
> > Cc: Zheng, Lv; Fleming, Matt; [email protected];
> > [email protected]; [email protected]; [email protected];
> > [email protected]; 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 <[email protected]>
> > > > > 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 [email protected] 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-efi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html