On 13.03.2012, at 04:30, David Gibson wrote: > Currently the virtio-pci driver advertises the virtio balloon device > as having the PCI class code PCI_CLASS_MEMORY_RAM. Although the > balloon device is vaguely related to RAM management, it doesn't > operate anything like a PCI memory device in the sense of the class > code (in fact it's all about taking RAM away from the guest, not > obtaining it). Nor does this PCI class code appear to be suggested by > the virtio PCI specification. > > This recently caused problems on the pseries machine - the class code > caused the firmware to mark the corresponding device tree node as a > memory node, which cause the guest to get horribly confused attempting > to discover memory early in boot. That was due to a guest kernel bug, > but since the bug is widespread in existing deployed kernels, we don't > really want to trigger it from qemu. > > We can work around the problem in the guest firmware for now, but > using PCI_CLASS_MEMORY_RAM for the balloon just seems wrong. Are > there things out there already that rely on this, or should we just > drop the class code?
CC'ing Michael. Alex