From: "Lendacky, Thomas" <thomas.lendacky@amd.com>
To: Gerd Hoffmann <kraxel@redhat.com>, Laszlo Ersek <lersek@redhat.com>
Cc: devel@edk2.groups.io, ray.ni@intel.com,
"ardb@kernel.org" <ardb@kernel.org>,
"Xie, Yuanhao" <yuanhao.xie@intel.com>
Subject: Re: [edk2-devel] [PATCH] UefiCpuPkg:Fixed AsmRelocateApLoopStart and ensure allocated memory <4GB
Date: Fri, 6 Jan 2023 09:42:16 -0600 [thread overview]
Message-ID: <c10c27f8-5b19-5113-55a3-af60dc13be51@amd.com> (raw)
In-Reply-To: <20230106080300.tsohpx24ddxjo5x4@sirius.home.kraxel.org>
On 1/6/23 02:03, Gerd Hoffmann wrote:
> On Fri, Jan 06, 2023 at 07:42:20AM +0100, Laszlo Ersek wrote:
>> On 1/6/23 05:12, Ni, Ray wrote:
>>>
>>> Ard,
>>>
>>> Only AMD X64 (including SEV and without SEV) runs the code that
>>> switches to 32bit paging disabled mode.
>>> Intel X64 runs the code that stays at 64bit paging mode. So no need
>>> for <4G memory.
>>> All IA32 CPUs (including intel and AMD) stays at 32bit paging disabled
>>> mode. The AllocateReservedPages() call should not return a memory
>>> above 4GB in 32bit env.
>>
>> This argument about the allocations sounds valid, thanks.
>>
>> The code still remains incredibly hard to read. It needs serious
>> cleanup.
>>
>> (1) Wherever we have "Amd" in an identifier, let's rename it to "Amd64",
>> to better reflect the revised check.
>
> Maybe even better: Use PcdConfidentialComputingGuestAttr to figure
> whenever SEV is active, if so branch into Amd assembler code. Rename
> "Amd" to "AmdSev".
>
> Otherwise just call normal X64 / Ia32 code.
>
> Amd assembler code can subsequently be simplified, the checks for SEV
> are not needed any more (but should not harm either).
>
> [ Adding Tom to CC ]
Yes, I agree with all this.
Thanks,
Tom
>
>> Commit 73ccde8f6d04 ("UefiCpuPkg: Has APs in 64 bit long-mode before
>> booting to OS.", 2022-12-20) *removed* the executable marking.
>>
>> (4a) Is that not a problem?
>
> I think so.
>
> Booting with strict NX checking (PcdDxeNxMemoryProtectionPolicy =
> 0xC000000000007FD5) and "qemu -smp 2" makes my qemu hang with 200% CPU,
> so probably both vcpus are spinning in a dead loop. For the BSP this is
> expected behavior (buggy grub.efi, see parallel thread). For the AP it
> is not, so apparently it is not running idle in hlt like it is supposed
> to.
>
>> Honestly, at this point I'm *even more convinced* that the original
>> series should be reverted, and redone from the ground up.
>
> Yes, "back to drawing board" looks like the best option at this point.
>
> take care,
> Gerd
>
prev parent reply other threads:[~2023-01-06 15:42 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-05 6:21 [PATCH] UefiCpuPkg:Fixed AsmRelocateApLoopStart and ensure allocated memory <4GB Yuanhao Xie
2023-01-05 6:28 ` [edk2-devel] " Ni, Ray
2023-01-05 7:19 ` Yuanhao Xie
2023-01-05 9:38 ` Ard Biesheuvel
2023-01-06 4:12 ` Ni, Ray
2023-01-06 6:42 ` Laszlo Ersek
2023-01-06 8:03 ` Gerd Hoffmann
2023-01-06 8:30 ` Laszlo Ersek
2023-01-06 8:39 ` Ni, Ray
2023-01-06 9:19 ` Laszlo Ersek
2023-01-06 9:45 ` Ni, Ray
2023-01-06 10:35 ` Laszlo Ersek
2023-01-06 11:14 ` Gerd Hoffmann
2023-01-06 12:20 ` Laszlo Ersek
2023-01-06 8:43 ` Yuanhao Xie
2023-01-06 9:04 ` Laszlo Ersek
2023-01-06 15:42 ` Lendacky, Thomas [this message]
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-list 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=c10c27f8-5b19-5113-55a3-af60dc13be51@amd.com \
--to=devel@edk2.groups.io \
/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