[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 15/15] xen: fixup RAM memory region initialization
From: |
Paolo Bonzini |
Subject: |
[PULL 15/15] xen: fixup RAM memory region initialization |
Date: |
Thu, 2 Apr 2020 15:06:40 -0400 |
From: Igor Mammedov <address@hidden>
Since bd457782b3b0 ("x86/pc: use memdev for RAM") Xen
machine fails to start with:
qemu-system-i386: xen: failed to populate ram at 0
The reason is that xen_ram_alloc() which is called by
memory_region_init_ram(), compares memory region with
statically allocated 'global' ram_memory memory region
that it uses for RAM, and does nothing in case it matches.
While it's possible feed machine->ram to xen_ram_alloc()
in the same manner to keep that hack working, I'd prefer
not to keep that circular dependency and try to untangle that.
However it doesn't look trivial to fix, so as temporary
fixup opt out Xen machine from memdev based RAM allocation,
and let xen_ram_alloc() do its trick for now.
Reported-by: Anthony PERARD <address@hidden>
Signed-off-by: Igor Mammedov <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
hw/xen/xen-common.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c
index 15650d7f6a..a15070f7f6 100644
--- a/hw/xen/xen-common.c
+++ b/hw/xen/xen-common.c
@@ -19,6 +19,7 @@
#include "sysemu/runstate.h"
#include "migration/misc.h"
#include "migration/global_state.h"
+#include "hw/boards.h"
//#define DEBUG_XEN
@@ -151,6 +152,8 @@ static void xen_setup_post(MachineState *ms, AccelState
*accel)
static int xen_init(MachineState *ms)
{
+ MachineClass *mc = MACHINE_GET_CLASS(ms);
+
xen_xc = xc_interface_open(0, 0, 0);
if (xen_xc == NULL) {
xen_pv_printf(NULL, 0, "can't open xen interface\n");
@@ -170,6 +173,10 @@ static int xen_init(MachineState *ms)
return -1;
}
qemu_add_vm_change_state_handler(xen_change_state_handler, NULL);
+ /*
+ * opt out of system RAM being allocated by generic code
+ */
+ mc->default_ram_id = NULL;
return 0;
}
--
2.18.2
- [PULL 06/15] util/bufferiszero: assign length_to_accel value for each accelerator case, (continued)
- [PULL 06/15] util/bufferiszero: assign length_to_accel value for each accelerator case, Paolo Bonzini, 2020/04/02
- [PULL 07/15] util/bufferiszero: improve avx2 accelerator, Paolo Bonzini, 2020/04/02
- [PULL 08/15] vl: fix broken IPA range for ARM -M virt with KVM enabled, Paolo Bonzini, 2020/04/02
- [PULL 11/15] target/i386: do not set unsupported VMX secondary execution controls, Paolo Bonzini, 2020/04/02
- [PULL 12/15] migration: fix cleanup_bh leak on resume, Paolo Bonzini, 2020/04/02
- [PULL 09/15] i386: hvf: Reset IRQ inhibition after moving RIP, Paolo Bonzini, 2020/04/02
- [PULL 14/15] object-add: don't create return value if failed, Paolo Bonzini, 2020/04/02
- [PULL 05/15] MAINTAINERS: Add an entry for the HVF accelerator, Paolo Bonzini, 2020/04/02
- [PULL 13/15] qmp: fix leak on callbacks that return both value and error, Paolo Bonzini, 2020/04/02
- [PULL 10/15] serial: Fix double migration data, Paolo Bonzini, 2020/04/02
- [PULL 15/15] xen: fixup RAM memory region initialization,
Paolo Bonzini <=
- Re: [PULL 00/15] Misc patches for 5.0-rc2, no-reply, 2020/04/02
- Re: [PULL 00/15] Misc patches for 5.0-rc2, no-reply, 2020/04/02
- Re: [PULL 00/15] Misc patches for 5.0-rc2, no-reply, 2020/04/02
- Re: [PULL 00/15] Misc patches for 5.0-rc2, Peter Maydell, 2020/04/03