All of lore.kernel.org
 help / color / mirror / Atom feed
From: Randy Dunlap <rdunlap@infradead.org>
To: Mike Rapoport <rppt@kernel.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 13:53:34 -0700	[thread overview]
Message-ID: <d56ebb95-1c40-5994-383f-70d8f226e8c3@infradead.org> (raw)
In-Reply-To: <YHR86T15BzETVHhk@kernel.org>

[-- Attachment #1: Type: text/plain, Size: 4173 bytes --]

On 4/12/21 10:01 AM, Mike Rapoport wrote:
> 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);

s/device)/devid)/

> +
>  	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();

That prints:

[    0.000000] snb_gfx_workaround_needed: vendor: 8086, device: 126
[    0.000000] early_reserve_memory: snb_gfx: 1
...
[    0.014061] snb_gfx_workaround_needed: vendor: 8086, device: 126
[    0.014064] reserving inaccessible SNB gfx pages


The full boot log is attached.


-- 
~Randy


[-- Attachment #2: boottest002.log.gz --]
[-- Type: application/gzip, Size: 46118 bytes --]

  reply	other threads:[~2021-04-12 20:53 UTC|newest]

Thread overview: 16+ 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-10 23:50   ` 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
2021-04-12 20:53         ` Randy Dunlap [this message]
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
2021-04-14  6:22   ` [tip: x86/boot] x86/setup: Move trim_snb_memory() later in setup_arch() to fix boot hangs tip-bot2 for Mike Rapoport

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=d56ebb95-1c40-5994-383f-70d8f226e8c3@infradead.org \
    --to=rdunlap@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-next@vger.kernel.org \
    --cc=rppt@kernel.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.