Re: linux-next: Tree for Apr 9 (x86 boot problem)

From: Randy Dunlap
Date: Mon Apr 12 2021 - 11:50:02 EST


On 4/11/21 11:14 PM, Mike Rapoport wrote:
> Hi Randy,
>
> On Sun, Apr 11, 2021 at 07:41:37PM -0700, Randy Dunlap wrote:
>> On 4/9/21 4:51 AM, Stephen Rothwell wrote:
>>> Hi all,
>>>
>>> Changes since 20210408:
>>>
>>
>> Hi,
>>
>> I cannot boot linux-next 20210408 nor 20210409 on an antique
>> x86_64 laptop (Toshiba Portege).
>>
>> After many failed tests, I finally resorted to git bisect,
>> which led me to:
>>
>> # bad: [4c674481dcf9974834b96622fa4b079c176f36f9] x86/setup: Merge several reservations of start of memory
>> git bisect bad 4c674481dcf9974834b96622fa4b079c176f36f9
>>
>>
>> I reverted both of these patches and the laptop boots successfully:
>>
>> commit a799c2bd29d19c565f37fa038b31a0a1d44d0e4d
>> Author: Mike Rapoport <rppt@xxxxxxxxxx>
>> Date: Tue Mar 2 12:04:05 2021 +0200
>>
>> x86/setup: Consolidate early memory reservations
>>
>> &&
>>
>> commit 4c674481dcf9974834b96622fa4b079c176f36f9
>> Author: Mike Rapoport <rppt@xxxxxxxxxx>
>> Date: Tue Mar 2 12:04:06 2021 +0200
>>
>> x86/setup: Merge several reservations of start of memory
>>
>>
>> There is no (zero, nil) console display when I try to boot
>> next 0408 or 0409. I connected a USB serial debug cable and
>> booted with earlyprintk=dbgp,keep and still got nothing.
>>
>> The attached boot log is linux-next 20210409 minus the 2 patches
>> listed above.
>>
>> Mike- what data would you like to see?
>
> Huh, with no console this would be fun :)
> For now the only idea I have is to "bisect" the changes and move
> reservations one by one back to their original place until the system boots
> again.
>
> I'd start with trim_snb_memory() since it's surely needed on your laptop
> and quite likely it is a NOP on other systems.
>
> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
> index 776fc9b3fafe..dfca9d6b1aa6 100644
> --- a/arch/x86/kernel/setup.c
> +++ b/arch/x86/kernel/setup.c
> @@ -746,8 +746,6 @@ static void __init early_reserve_memory(void)
>
> reserve_ibft_region();
> reserve_bios_regions();
> -
> - trim_snb_memory();
> }
>
> /*
> @@ -1081,6 +1079,8 @@ void __init setup_arch(char **cmdline_p)
>
> reserve_real_mode();
>
> + trim_snb_memory();
> +
> init_mem_mapping();
>
> idt_setup_early_pf();
>
>> --

Hi Mike,
That works fine.
Can you provide another/next step?

If not, I'll try a few things.

thanks.
--
~Randy