Hello Mike, our virt-QE team reported an interesting issue:
https://bugzilla.redhat.com/show_bug.cgi?id=1308678#c14 We have a small UEFI_APPLICATION ((open source, of course) that enrolls a set of fixed certificates into PK / KEK / DB. In the course of the gRT->SetVariable() call, using the SMM driver stack, the fault handler function that is used in SMM is invoked: SmiDefaultPFHandler() in "UefiCpuPkg/PiSmmCpuDxeSmm/X64/PageTbl.c". Now, I have no clue about any situation when this fault handler should be invoked as part of normal operation -- perhaps there are such cases. But, in this instance, the function seems to walk the page tables, find the PTE, and realize that the Present bit is set in the PTE. Then it prints: PageTable = 7FFA6000, PTIndex = 1FF, PageTable[PTIndex] = 7FFF2251 New page table overlapped with old page table! The code that prints this has a comment (rewrapped here for readability): // // Check if the entry has already existed, this issue may occur when the // different size page entries created under the same entry // Can you please help me interpret this? Is it related to 2MB / 1GB pages, as opposed to 4KB pages? Or should I be looking for a genuine fault in the variable driver? I've never seen this issue, and in my normal work environment I can't reproduce it. In the report linked above, I noticed -cpu IvyBridge which makes QEMU emulate "Intel Xeon E3-12xx v2 (Ivy Bridge)". Whereas my laptop has a Haswell CPU ("i7-4810MQ"), and with the virtual machines I use for testing, I (or rather libvirtd) doesn't pass any particular -cpu switch to QEMU. That seems to imply "qemu64" ("QEMU Virtual CPU version 2.5+"). ... I've now tried with "-cpu IvyBridge" myself; I still can't reproduce it. Thanks! Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

