qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2] qdev: Mark devices as non-hotpluggable by de


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH v2] qdev: Mark devices as non-hotpluggable by default
Date: Mon, 25 Sep 2017 23:59:56 -0300
User-agent: Mutt/1.8.3 (2017-05-23)

On Mon, Sep 25, 2017 at 07:05:26PM +0100, Peter Maydell wrote:
> On 25 September 2017 at 18:59, Eduardo Habkost <address@hidden> wrote:
> > Finding the full list of devices that can be instantiated
> > internally at hotplug-time sounds tricky.
> 
> If we just diff "list of devices marked hotplug before this patch"
> against "list of devices marked hotplug after this patch" how
> big is the list? Can we just eyeball it to see what needs
> to be specialcased?

So, the full list quite big, ~1800 device types are affected by
this patch:

https://gist.github.com/ehabkost/bd8e25c6811ac81d947ad8ad5b557f5c#file-dev-types-diff-json

If we ignore the "-cpu" classes, there ~640 affected device
types.

However, if we look only at the direct children of TYPE_DEVICE,
we have:

$ grep '"parent": "device"' dev-types-diff.json 
-{"return": {"abstract": true, "name": "adb-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "apic-common", "parent": "device", 
"user-creatable": false, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "aspeed-soc", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "aux-slave", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "adb-device", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "apic-common", "parent": "device", 
"user-creatable": false, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "aspeed-soc", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "aux-slave", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
 {"return": {"abstract": true, "name": "ccid-card", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
 {"return": {"abstract": true, "name": "ccw-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "cpu-core", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "cpu", "parent": "device", 
"user-creatable": false, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "cpu-core", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "cpu", "parent": "device", 
"user-creatable": false, "hotpluggable": false}}
-{"return": {"abstract": true, "name": "hda-codec", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "i2c-slave", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "hda-codec", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "i2c-slave", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
-{"return": {"abstract": true, "name": "ics-base", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "ide-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "ics-base", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "ide-device", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
-{"return": {"abstract": true, "name": "ipack-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "ipmi-bmc", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "isa-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "ipack-device", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "ipmi-bmc", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "isa-device", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
 {"return": {"abstract": true, "name": "pci-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "pcmcia-card", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "pcmcia-card", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
-{"return": {"abstract": true, "name": "s390-sclp-event-type", "parent": 
"device", "user-creatable": true, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "s390-sclp-event-type", "parent": 
"device", "user-creatable": true, "hotpluggable": false}}
 {"return": {"abstract": true, "name": "s390-skeys", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
 {"return": {"abstract": true, "name": "s390-storage_attributes", "parent": 
"device", "user-creatable": true, "hotpluggable": false}}
 {"return": {"abstract": true, "name": "scsi-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "spapr-dr-connector", "parent": 
"device", "user-creatable": false, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "ssi-slave", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "sys-bus-device", "parent": "device", 
"user-creatable": false, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "spapr-dr-connector", "parent": 
"device", "user-creatable": false, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "ssi-slave", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
+{"return": {"abstract": true, "name": "sys-bus-device", "parent": "device", 
"user-creatable": false, "hotpluggable": false}}
 {"return": {"abstract": true, "name": "usb-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
-{"return": {"abstract": true, "name": "vio-spapr-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "vio-spapr-device", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
-{"return": {"abstract": true, "name": "virtio-device", "parent": "device", 
"user-creatable": true, "hotpluggable": true}}
+{"return": {"abstract": true, "name": "virtio-device", "parent": "device", 
"user-creatable": true, "hotpluggable": false}}
 {"return": {"abstract": true, "name": "virtio-serial-port", "parent": 
"device", "user-creatable": true, "hotpluggable": true}}
-{"return": {"name": "allwinner-a10", "parent": "device", "user-creatable": 
false, "hotpluggable": true}}
+{"return": {"name": "allwinner-a10", "parent": "device", "user-creatable": 
false, "hotpluggable": false}}
-{"return": {"name": "aux-to-i2c-bridge", "parent": "device", "user-creatable": 
true, "hotpluggable": true}}
+{"return": {"name": "aux-to-i2c-bridge", "parent": "device", "user-creatable": 
true, "hotpluggable": false}}
 {"return": {"name": "diag288", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "digic", "parent": "device", "user-creatable": false, 
"hotpluggable": true}}
+{"return": {"name": "digic", "parent": "device", "user-creatable": false, 
"hotpluggable": false}}
-{"return": {"name": "floppy", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
-{"return": {"name": "fsl,imx25", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
-{"return": {"name": "fsl,imx31", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
-{"return": {"name": "fsl,imx6", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
+{"return": {"name": "floppy", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
+{"return": {"name": "fsl,imx25", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
+{"return": {"name": "fsl,imx31", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
+{"return": {"name": "fsl,imx6", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "icp", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
+{"return": {"name": "icp", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "loader", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
+{"return": {"name": "loader", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "migration", "parent": "device", "user-creatable": false, 
"hotpluggable": true}}
-{"return": {"name": "mmio_interface", "parent": "device", "user-creatable": 
false, "hotpluggable": true}}
+{"return": {"name": "migration", "parent": "device", "user-creatable": false, 
"hotpluggable": false}}
+{"return": {"name": "mmio_interface", "parent": "device", "user-creatable": 
false, "hotpluggable": false}}
-{"return": {"name": "nand", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
+{"return": {"name": "nand", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "or-irq", "parent": "device", "user-creatable": false, 
"hotpluggable": true}}
+{"return": {"name": "or-irq", "parent": "device", "user-creatable": false, 
"hotpluggable": false}}
 {"return": {"name": "pc-dimm", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
-{"return": {"name": "pnv-lpc", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
-{"return": {"name": "pnv-occ", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
+{"return": {"name": "pnv-lpc", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
+{"return": {"name": "pnv-occ", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "qemu,register", "parent": "device", "user-creatable": 
false, "hotpluggable": true}}
+{"return": {"name": "qemu,register", "parent": "device", "user-creatable": 
false, "hotpluggable": false}}
-{"return": {"name": "s390-ipl", "parent": "device", "user-creatable": false, 
"hotpluggable": true}}
+{"return": {"name": "s390-ipl", "parent": "device", "user-creatable": false, 
"hotpluggable": false}}
 {"return": {"name": "sclp", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "sd-card", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
+{"return": {"name": "sd-card", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
 {"return": {"name": "spapr-rng", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "spapr-rtc", "parent": "device", "user-creatable": false, 
"hotpluggable": true}}
-{"return": {"name": "spapr-tce-table", "parent": "device", "user-creatable": 
false, "hotpluggable": true}}
+{"return": {"name": "spapr-rtc", "parent": "device", "user-creatable": false, 
"hotpluggable": false}}
+{"return": {"name": "spapr-tce-table", "parent": "device", "user-creatable": 
false, "hotpluggable": false}}
 {"return": {"name": "vmgenid", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "xlnx,zynqmp", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
+{"return": {"name": "xlnx,zynqmp", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}
-{"return": {"name": "zpci", "parent": "device", "user-creatable": true, 
"hotpluggable": true}}
+{"return": {"name": "zpci", "parent": "device", "user-creatable": true, 
"hotpluggable": false}}

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]