Comment 7 for bug 1902654

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

The type does:
1197 compat_props_add(m->compat_props, hw_compat_2_3, hw_compat_2_3_len);

Defined as:
 198 GlobalProperty hw_compat_2_3[] = {
 199 { "virtio-blk-pci", "any_layout", "off" },
 200 { "virtio-balloon-pci", "any_layout", "off" },
 201 { "virtio-serial-pci", "any_layout", "off" },
 202 { "virtio-9p-pci", "any_layout", "off" },
 203 { "virtio-rng-pci", "any_layout", "off" },
 204 { TYPE_PCI_DEVICE, "x-pcie-lnksta-dllla", "off" },
 205 { "migration", "send-configuration", "off" },
 206 { "migration", "send-section-footer", "off" },
 207 { "migration", "store-global-state", "off" },
 208 };
 209 const size_t hw_compat_2_3_len = G_N_ELEMENTS(hw_compat_2_3);

311 static inline void
312 compat_props_add(GPtrArray *arr,
313 GlobalProperty props[], size_t nelem)
314 {
315 int i;
316 for (i = 0; i < nelem; i++) {
317 g_ptr_array_add(arr, (void *)&props[i]);
318 }
319 }

So in debug on the init of the wily type we should see
   { "virtio-balloon-pci", "any_layout", "off" }
be added.

$ apt install qemu-system-x86-dbgsym
$ apt source qemu
$ cd qemu-4.2
$ gdb /usr/bin/qemu-system-x86_64
(gdb) b compat_props_add
Breakpoint 1 at 0x4aadd1: compat_props_add. (83 locations)
(gdb) b pc_i440fx_wily_machine_options
Breakpoint 2 at 0x4acdcb: file ./hw/i386/pc_piix.c, line 1198.
(gdb) run -m 128 -M pc-i440fx-wily,accel=kvm --nodefaults --nographic --monitor stdio -device virtio-balloon-pci,id=balloon0

Unfortunately on a normal build these functions like pc_i440fx_wily_machine_options and compat_props_add are very much inlined and arguments optimized out - so we might need a debug build to be able to track where this is lost more easily.