Closed cclaudio closed 3 months ago
From @tlendacky: The following patch to Qemu works around the issue, but I'm unsure if this is a proper fix. The error can either be in Qemu or the IGVM creation process.
diff --git a/backends/igvm.c b/backends/igvm.c
index df663b300b..1923d31ad6 100644
--- a/backends/igvm.c
+++ b/backends/igvm.c
@@ -675,7 +675,7 @@ void igvm_process(ConfidentialGuestSupport *cgs)
* to reduce the number of memory regions we create. Make sure the
last group is
* processed with this call.
*/
- process_mem_page(cgs, i, NULL);
+ process_mem_page(cgs, i - 1, NULL);
QTAILQ_FOREACH(parameter, ¶meter_data, next)
{
As your workaround shows, the problem is in the QEMU handling of combining IGVM pages in to memory regions in igvm.c
. This has actually been fixed but the svsm-igvm
coconut QEMU branch has not yet pulled in the required fixes. I'll work on getting this updated.
I've created a PR to update the coconut QEMU svsm-igvm
branch: https://github.com/coconut-svsm/qemu/pull/6. This should fix this issue.
I updated the svsm-igvm
branch in the COCONUT QEMU repository with the changes from @roy-hopkins. Can you please test if the new branch fixes your issues?
I tested the updated qemu/svsm-igvm
branch. The IGVM fixes worked for me.
Thank you @roy-hopkins and @joergroedel !!
Closing this issue
It looks like this regression was added in the commit d22a17add22c65356e0144b8ccf86452b828f362. Could someone with more experience in the
igvmbuilder
help with this?