On Tue, Aug 06, 2013 at 01:03:34PM +0200, Andreas Färber wrote:
Am 06.08.2013 12:44, schrieb Gleb Natapov:
On Tue, Aug 06, 2013 at 01:19:53PM +0300, Michael S. Tsirkin wrote:
It's a QEMU issue, devices that are added with -device are documented in -device help and removed by dropping them from command line. Devices added by default have no way to be dropped from QOM except -nodefaults.
Are you saying that because pvpanic is added automatically QEMU -device help does not print help about it? Why not fix that? What QEMU --help issues has to do with deciding which devices should or should not be present by default?
No, I'm saying what I said: that there's no way to remove a device added by default except -nodefaults, and no way to find out what does -nodefaults exclude so you can add things you need back selectively.
And what are the rules that govern device exclusion from -nodefaults list? Why -nodefaults does not create empty machine?
We have -M none to create an empty machine.
FWIW -M q35 does not create all Q35 devices, there's -readconfig docs/q35-chipset.cfg for the rest. The criteria certainly is not migratability, since ICH9 AHCI (part of -M q35) is unmigratable, unfortunately. One practical reason not to create everything via config is that we cannot create SysBusDevices via -device when they require MMIO mapping or IRQ setup. For ISADevices such as pvpanic that's not a problem. Anthony has proposed QOM'ifying MemoryRegions and qemu_irq as solution to do the wiring-up from command line or config file, but those attempts got stuck a long time ago.
But -M creates not only things that cannot be created from a command line, it includes some default set of devices, so what is the criteria for those?