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 --]
next prev parent reply other threads:[~2021-04-12 20:53 UTC|newest]
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
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
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).