Linux-Next Archive on lore.kernel.org
 help / color / Atom feed
From: Mike Rapoport <rppt@kernel.org>
To: Randy Dunlap <rdunlap@infradead.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>,
	Linux Next Mailing List <linux-next@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	X86 ML <x86@kernel.org>
Subject: Re: linux-next: Tree for Apr 9 (x86 boot problem)
Date: Mon, 12 Apr 2021 20:01:29 +0300
Message-ID: <YHR86T15BzETVHhk@kernel.org> (raw)
In-Reply-To: <aa83b81e-a03d-b835-6b45-01efc7e08dce@infradead.org>

On Mon, Apr 12, 2021 at 08:49:49AM -0700, Randy Dunlap wrote:
> 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@kernel.org>
> >> Date:   Tue Mar 2 12:04:05 2021 +0200
> >>
> >>     x86/setup: Consolidate early memory reservations
> >>
> >> &&
> >>
> >> commit 4c674481dcf9974834b96622fa4b079c176f36f9
> >> Author: Mike Rapoport <rppt@kernel.org>
> >> 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 Randy,
 
> Hi Mike,
> That works fine.
> Can you provide another/next step?
 
I thought about adding some prints to see what's causing the hang, the
reservations or their absence. Can you replace the debug patch with this
one:

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 776fc9b3fafe..a10ac252dbcc 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -600,10 +600,13 @@ static bool __init snb_gfx_workaround_needed(void)
 		return false;
 
 	vendor = read_pci_config_16(0, 2, 0, PCI_VENDOR_ID);
+	devid = read_pci_config_16(0, 2, 0, PCI_DEVICE_ID);
+
+	pr_info("%s: vendor: %x, device: %x\n", __func__, vendor, device);
+
 	if (vendor != 0x8086)
 		return false;
 
-	devid = read_pci_config_16(0, 2, 0, PCI_DEVICE_ID);
 	for (i = 0; i < ARRAY_SIZE(snb_ids); i++)
 		if (devid == snb_ids[i])
 			return true;
@@ -747,7 +750,7 @@ static void __init early_reserve_memory(void)
 	reserve_ibft_region();
 	reserve_bios_regions();
 
-	trim_snb_memory();
+	pr_info("%s: snb_gfx: %d\n", __func__, snb_gfx_workaround_needed());
 }
 
 /*
@@ -1081,6 +1084,8 @@ void __init setup_arch(char **cmdline_p)
 
 	reserve_real_mode();
 
+	trim_snb_memory();
+
 	init_mem_mapping();
 
 	idt_setup_early_pf();

> If not, I'll try a few things.

Sure :)
 
> thanks.
> -- 
> ~Randy
> 

-- 
Sincerely yours,
Mike.

  reply index

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-09 11:51 linux-next: Tree for Apr 9 Stephen Rothwell
2021-04-10 23:50 ` linux-next: Tree for Apr 9 (drivers/iommu/intel/pasid.c) Randy Dunlap
2021-04-12  2:41 ` linux-next: Tree for Apr 9 (x86 boot problem) Randy Dunlap
2021-04-12  6:14   ` Mike Rapoport
2021-04-12 15:49     ` Randy Dunlap
2021-04-12 17:01       ` Mike Rapoport [this message]
2021-04-12 20:53         ` Randy Dunlap
2021-04-13  6:06           ` Mike Rapoport
2021-04-13  6:21             ` Randy Dunlap
2021-04-13 16:58               ` Mike Rapoport
2021-04-13 17:34                 ` Randy Dunlap
2021-04-13 18:23                   ` Mike Rapoport
2021-04-13 19:07                     ` Randy Dunlap
2021-04-13 19:09                     ` Hugh Dickins

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YHR86T15BzETVHhk@kernel.org \
    --to=rppt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=sfr@canb.auug.org.au \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-Next Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-next/0 linux-next/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-next linux-next/ https://lore.kernel.org/linux-next \
		linux-next@vger.kernel.org
	public-inbox-index linux-next

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-next


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git