From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55727) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dwg6e-0004c2-Lc for qemu-devel@nongnu.org; Mon, 25 Sep 2017 23:00:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dwg6b-0008Mg-Fx for qemu-devel@nongnu.org; Mon, 25 Sep 2017 23:00:20 -0400 Received: from mx1.redhat.com ([209.132.183.28]:51662) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dwg6b-0008Kv-6g for qemu-devel@nongnu.org; Mon, 25 Sep 2017 23:00:17 -0400 Date: Mon, 25 Sep 2017 23:59:56 -0300 From: Eduardo Habkost Message-ID: <20170926025956.GB4115@localhost.localdomain> References: <1506071794-4373-1-git-send-email-thuth@redhat.com> <20170925135316.74fed6da.cohuck@redhat.com> <20170925133153.GZ3030@localhost.localdomain> <20170925154647.357047b9@nial.brq.redhat.com> <20170925143439.GA3030@localhost.localdomain> <59e890ab-45e4-fe8a-a8de-3c441de19080@redhat.com> <20170925175944.GD3030@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] [PATCH v2] qdev: Mark devices as non-hotpluggable by default List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: Thomas Huth , Igor Mammedov , Cornelia Huck , QEMU Developers , Paolo Bonzini , Xiao Guangrong , "Michael S. Tsirkin" , Marcel Apfelbaum , Christian Borntraeger , Gerd Hoffmann , Stefano Stabellini , Anthony Perard , David Hildenbrand , David Gibson , Bharata B Rao , Amit Shah On Mon, Sep 25, 2017 at 07:05:26PM +0100, Peter Maydell wrote: > On 25 September 2017 at 18:59, Eduardo Habkost 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