[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <54a4ca2e-3389-dd48-1d1f-8b385fbfc0cf@amd.com>
Date: Fri, 17 Mar 2023 13:07:01 -0500
From: Tom Lendacky <thomas.lendacky@....com>
To: Dexuan Cui <decui@...rosoft.com>,
Jeremi Piotrowski <jpiotrowski@...ux.microsoft.com>
Cc: Borislav Petkov <bp@...en8.de>,
"sandipan.das@....com" <sandipan.das@....com>,
"Gupta, Pankaj" <pankaj.gupta@....com>,
"ray.huang@....com" <ray.huang@....com>,
"brijesh.singh@....com" <brijesh.singh@....com>,
"michael.roth@....com" <michael.roth@....com>,
"kvm@...r.kernel.org" <kvm@...r.kernel.org>,
"x86@...nel.org" <x86@...nel.org>,
Tianyu Lan <Tianyu.Lan@...rosoft.com>,
"linux-hyperv@...r.kernel.org" <linux-hyperv@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: Does earlyprintk=ttyS0 work for an AMD SNP guest on KVM?
On 2/17/23 20:54, Dexuan Cui wrote:
>> From: Jeremi Piotrowski <jpiotrowski@...ux.microsoft.com>
>> Sent: Friday, February 17, 2023 4:51 AM
>> To: Dexuan Cui <decui@...rosoft.com>
>>> [...]
>>> The comment before the first branch says:
>>> On 4-level paging, p4d_offset(top_level_pgt, 0) is equal to 'top_level_pgt'.
>>>
>>> IIUC this means 'top_level_pgt' is equal to '_pgtable'? i.e. without
>>> CONFIG_RANDOMIZE_BASE, pgt_data.pgt_buf_size should be 0.
>>>
>>> Not sure why it's not getting into the first branch for you.
>>
>> Sorry, I got two things confused here. The relevant part of the comment is this:
>> "If we came here via startup_32(), cr3 will be _pgtable already".
>>
>> Booting a (non-SNP) guest via BIOS I end up in the first branch. Upstream SNP
>> support requires OVMF (UEFI) so we'll always reach the kernel in 64-bit mode
>> (startup_64?), and end up in the second branch.
>>
>> Jeremi
>
> Here I'm running a C-bit mode SNP guest on Hyper-V via "direct-boot" (i.e.
> I run Set-VMFirmware to tell Hyper-V to boot the kernel directly without
> UEFI). Looks like arch/x86/boot/compressed/head_64.S: startup_32 runs
> first and calls startup_64 later (?) This might explain why I'm getting into
> the first branch, which I hope could be fixed by someone...
It sounds like there aren't enough pages available to satisfy the page
split in order to make the GHCB shared. Have you tried changing
BOOT_INIT_PGT_SIZE to increase it by 1 page. Splitting the page will
require an additional page table, I think that is all that would be needed.
Thanks,
Tom
Powered by blists - more mailing lists