From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Jan Beulich <jbeulich@suse.com>, Laszlo Ersek <lersek@redhat.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>,
<devel@edk2.groups.io>, <anthony.perard@citrix.com>
Subject: Re: [edk2-devel] [PATCH] OvmfPkg/XenPlatformPei: Relocate shared_info page mapping
Date: Tue, 29 Jun 2021 11:35:27 +0100 [thread overview]
Message-ID: <4960ad34-2097-0f08-553c-477e90e19fe2@citrix.com> (raw)
In-Reply-To: <f02f9324-4169-70e3-b224-934a4314bf22@suse.com>
On 29/06/2021 11:07, Jan Beulich wrote:
> On 29.06.2021 11:20, Laszlo Ersek wrote:
>> On 06/28/21 15:23, Anthony PERARD via groups.io wrote:
>>> From: Anthony PERARD <anthony.perard@citrix.com>
>>>
>>> Unfortunately, Xen isn't ready to deal with mapping at the top of the
>>> physical address space, so we relocate the mapping after the LAPIC
>>> location.
>>>
>>> See this thread about the issue with the mapping:
>>> - https://lore.kernel.org/xen-devel/f8c4151a-6dac-d87c-ef46-eb35ada07bd9@suse.com/
>>>
>>> The PhysicalAddressIdentityMapping() call isn't going to do anything
>>> anymore since everything under 4GB is already mapped, but there is no
>>> need to remove the call.
>>>
>>> CC: Jan Beulich <JBeulich@suse.com>
>>> CC: Andrew Cooper <andrew.cooper3@citrix.com>
>>> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
>>> ---
>>> OvmfPkg/XenPlatformPei/Xen.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/OvmfPkg/XenPlatformPei/Xen.c b/OvmfPkg/XenPlatformPei/Xen.c
>>> index a4e82b356936..9c6641895970 100644
>>> --- a/OvmfPkg/XenPlatformPei/Xen.c
>>> +++ b/OvmfPkg/XenPlatformPei/Xen.c
>>> @@ -569,7 +569,7 @@ CalibrateLapicTimer (
>>> EFI_STATUS Status;
>>>
>>>
>>> - SharedInfo = (VOID*)((1ULL << mPhysMemAddressWidth) - EFI_PAGE_SIZE);
>>> + SharedInfo = (VOID*)((UINTN)PcdGet32 (PcdCpuLocalApicBaseAddress) + SIZE_1MB);
>>> Status = PhysicalAddressIdentityMapping ((EFI_PHYSICAL_ADDRESS)SharedInfo);
>>> if (EFI_ERROR (Status)) {
>>> DEBUG ((DEBUG_ERROR,
>>>
>> Acked-by: Laszlo Ersek <lersek@redhat.com>
>>
>> I guess I should merge this after Jan and/or Andrew ack it.
> Well, I can informally ack that a move like this is needed, but I can't
> really give an Acked-by on the change, as I know next to nothing about
> ovmf, and hence I cannot, for example, tell whether the chosen new
> location is okay to use there.
That bit is easy, although it probably does warrant a code comment. The
choice of location doesn't matter specifically (so long as it's not too
high for 32bit toolstacks to cope with), but wants to be something which
isn't RAM, and ideally doesn't shatter a superpage.
The various MMIO ranges (IO-APIC, TPM, LAPIC) are 2M aligned, so LAPIC +
1M is firmly in the middle of a range not used by anything else, and
with APICV/AVIC, the LAPIC does have a 4k mapping to the sink page.
~Andrew
next prev parent reply other threads:[~2021-06-29 10:35 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-28 13:23 [PATCH] OvmfPkg/XenPlatformPei: Relocate shared_info page mapping Anthony PERARD
2021-06-29 9:20 ` [edk2-devel] " Laszlo Ersek
2021-06-29 10:07 ` Jan Beulich
2021-06-29 10:35 ` Andrew Cooper [this message]
2021-06-29 11:29 ` Laszlo Ersek
2021-06-29 11:41 ` Jan Beulich
2021-06-29 14:43 ` Laszlo Ersek
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=4960ad34-2097-0f08-553c-477e90e19fe2@citrix.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