Hi, On Mon, Sep 20, 2021 at 08:00:31AM +0200, Juergen Gross wrote: > On 19.09.21 19:15, Borislav Petkov wrote: > > On Sun, Sep 19, 2021 at 06:55:16PM +0200, Mike Galbraith wrote: > > > On Thu, 2021-09-16 at 10:50 +0000, tip-bot2 for Juergen Gross wrote: > > > > The following commit has been merged into the x86/urgent branch of > > > > tip: > > > > > > > > x86/setup: Call early_reserve_memory() earlier > > > > > > This commit rendered tip toxic to my i4790 desktop box and i5-6200U > > > lappy. Boot for both is instantly over without so much as a twitch. > > > > > > Post bisect revert made both all better. > > > > I had a suspicion that moving stuff around like that would not just > > simply work in all cases, as our boot order is very lovely and fragile. > > > > And it booted just fine on my machines here. > > > > ;-\ > > > > Anyway, commit zapped from the x86/urgent lineup. We'll have to have a > > third try later. > > > > How will that try look like? I'm seeing the following alternatives: > > 1. Just revert a799c2bd29d19c565 ("x86/setup: Consolidate early memory > reservations"). > > 2. Try to move the call of early_reserve_memory() just before the call > of e820__memory_setup(). > > 3. Split early_reserve_memory() into two parts, with the first part > doing the memblock_reserve() calls for the kernel text, initrd and > page 0 right at the start of setup_arch(), and the second part for > the rest at the same place it is handled now. > > 4. Analyze why Mike's systems fail to boot and try to fix his issue(s) > (probably via one of the above ways). > > Looking at the calls done in early_reserve_memory() I have my doubts > that memblock_x86_reserve_range_setup_data() will work before > early_ioremap_init() has been called, as it is using early_memremap(). > This would suggest variant 2 could be a working solution. > > In case I'm wrong with my doubts I'd prefer variant 3. I actually prefer variant 2 to keep the early memory reservations together as much as possible. I tend to agree with your doubts about memblock_x86_reserve_range_setup_data(), but it should be fine to move early_reserve_memory() just before e820__memory_setup(). Anyway, I'd like to understand why Mike's systems fail before moving on with the fixes. -- Sincerely yours, Mike.