On 8/23/22 03:40, Xu, Min M wrote:
On August 23, 2022 3:38 PM, Gerd Hoffmann wrote:
   Hi,

Ah, I forget to reserve the work-area as RT_Data in below code:
       BuildMemoryAllocationHob (
         (EFI_PHYSICAL_ADDRESS)(UINTN)FixedPcdGet32
(PcdOvmfWorkAreaBase),
         (UINT64)(UINTN)FixedPcdGet32 (PcdOvmfWorkAreaSize),
         PlatformInfoHob->S3Supported ? EfiACPIMemoryNVS :
EfiRuntimeServicesData  <-- ACPI_NVS is not accessible either in OS-Runtime.
         );

https://github.com/tianocore/edk2/blob/master/OvmfPkg/Library/Platform
InitLib/MemDetect.c#L1022-L1026

With that changed to use EfiRuntimeServicesData unconditionally the page
fault is gone.

Gerd, do you think we can reserve Ovmf WorkArea as RT_Data even when
S3 is supported?

Hmm, not fully sure how the various memory types are handled when the
VM is suspended.

Tom suggested that the work area should not  be kept around. In stead a PCD 
should be used.
https://edk2.groups.io/g/devel/message/92617

But the dynamic PCD is not thread-safe and it cannot be accessed by APs.

Now we have 2 solutions to fix this issue.
1. Reserve the Ovmf work area as RT_DATA.
2. Split the CcProbeLib into 2 instances. See 
https://edk2.groups.io/g/devel/message/91132

Gerd & Tom, what's your thought?

Runtime service call are restricted so that you don't have concurrent threads executing (see section 8.1 of the specification). Without that you would have problems with runtime services today.

Thanks,
Tom


Thanks
Min



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#92678): https://edk2.groups.io/g/devel/message/92678
Mute This Topic: https://groups.io/mt/93173995/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to