From: Eduardo Habkost <ehabkost@redhat.com>
To: qemu-devel@nongnu.org
Cc: Laszlo Ersek <lersek@redhat.com>, Thomas Huth <thuth@redhat.com>,
Alexander Graf <agraf@suse.de>,
Peter Maydell <peter.maydell@linaro.org>,
Marcel Apfelbaum <marcel@redhat.com>,
Markus Armbruster <armbru@redhat.com>
Subject: [Qemu-devel] [PATCH v2 00/21] qdev/sysbus: Set user_creatable=false by default on sysbus
Date: Tue, 4 Apr 2017 17:24:08 -0300 [thread overview]
Message-ID: <20170404202429.14643-1-ehabkost@redhat.com> (raw)
Changes v1 -> v2
----------------
* Rewrote series name and cover letter completely to not pretend
we're fixing the q35 lack-of-sysbus-whitelist bug, and explain
the motivation for the series.
* Previous series name was:
"sysbus: Don't allow -device/device_add by default"
* Rewrote description of patch 02/21, too
* (I really hope people read this cover letter before
commenting on individual patches.)
* Rewrote FIXME comments to make it clear that we just set
user_creatable=true temporarily because we don't know yet if
the device should be in the q35 whitelist.
* Set user_creatable=true on xen-backend also
(I didn't notice it was missing because I was building QEMU
without xen support)
* New patches:
* "xen-backend: Remove FIXME comment about user_creatable flag"
* "xen-sysdev: Remove user_creatable flag"
* Patch:
"s390: Add FIXME for unexplained user_creatable=false line"
replaced with:
"s390-pcibus: No need to set user_creatable=false explicitly"
Description
-----------
This series refactor the cannot_instantiate_with_device_add code
for sysbus. First, the cannot_instantiate_with_device_add field
is replaced by !user_creatable.
Then, we change TYPE_SYS_BUS_DEVICE to set user_creatable=false
by default, and we set user_creatable=true explicitly only on the
devices that are really supposed to be user-creatable on some
machines.
Motivation
----------
First of all, this makes the code less fragile: setting
user_creatable=false or cannot_instantiate_with_device_add=true
on all sysbus devices is incorrect, and makes code that looks at
cannot_instantiate_with_device_add/user_creatable easy to break.
This also fixes a regression introduced by commit
33cd52b5d7b9adfd009e95f07e6c64dd88ae2a31, that makes all sysbus
devices appear on "-device help" and lack the "no-user" flag on
"info qdm"[1].
This will also make it possible for automatic test code (like the
device-crash-test.py script I sent a while ago[2]) skip devices
that are not supposed to be user-creatable on any machine.
A note about the lack of sysbus whitelist on q35
------------------------------------------------
This series won't make the per-machine whitelist of sysbus
devices unnecessary, but just makes the user_creatable field
consistent on the sys-bus-device classes. This means q35 and xen
still need to be fixed to implemented a sysbus device whitelist.
However, despite not being strictly necessary for fixing the q35
bug, reducing the list of user_creatable=true devices will help
us be more confident when building the q35 whitelist.
Full list of user_creatable=true sysbus devices
-----------------------------------------------
In the end of this series, the only remaining sysbus devices with
user_creatable=true will be:
* vfio-amd-xgbe (arm)
* vfio-calxeda-xgmac (arm)
* amd-iommu (x86)
* intel-iommu (x86)
* xen-backend (x86)
* spapr-pci-host-bridge (ppc)
* spapr-pci-vfio-host-bridge (ppc)
* eTSEC (ppc)
References/Notes
----------------
[1] For example, before this series, we had 174 sysbus devices
listed on qemu-system-arm -device help:
$ qemu-system-arm -machine none -device help 2>&1 | grep 'bus System' | wc -l
174
$
after this series, we now have:
$ ./arm-softmmu/qemu-system-arm -machine none -device help 2>&1 | grep 'bus System'
name "vfio-amd-xgbe", bus System, desc "VFIO AMD XGBE"
name "vfio-calxeda-xgmac", bus System, desc "VFIO Calxeda XGMAC"
$
[2] Subject: [PATCH 0/3] script for crash-testing -device
---
Cc: Alexander Graf <agraf@suse.de>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Marcel Apfelbaum <marcel@redhat.com>
Cc: Thomas Huth <thuth@redhat.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Eduardo Habkost (21):
qdev: Replace cannot_instantiate_with_device_add_yet with
!user_creatable
sysbus: Set user_creatable=false by default on TYPE_SYS_BUS_DEVICE
xen-backend: Remove FIXME comment about user_creatable flag
iommu: Remove FIXME comment about user_creatable=true
fdc: Remove user_creatable flag from sysbus-fdc & SUNW,fdtwo
pflash_cfi01: Remove user_creatable flag
kvmclock: Remove user_creatable flag
ioapic: Remove user_creatable flag
kvmvapic: Remove user_creatable flag
sysbus-ahci: Remove user_creatable flag
allwinner-ahci: Remove user_creatable flag
isabus-bridge: Remove user_creatable flag
unimplemented-device: Remove user_creatable flag
fw_cfg: Remove user_creatable flag
esp: Remove user_creatable flag
generic-sdhci: Remove user_creatable flag
hpet: Remove user_creatable flag
sysbus-ohci: Remove user_creatable flag
virtio-mmio: Remove user_creatable flag
xen-sysdev: Remove user_creatable flag
s390-pcibus: No need to set user_creatable=false explicitly
include/hw/qdev-core.h | 10 +++++-----
include/hw/qdev-properties.h | 4 ++--
hw/acpi/piix4.c | 2 +-
hw/arm/spitz.c | 2 +-
hw/audio/marvell_88w8618.c | 2 +-
hw/audio/pcspk.c | 2 +-
hw/core/or-irq.c | 2 +-
hw/core/qdev.c | 1 +
hw/core/register.c | 2 +-
hw/core/sysbus.c | 11 +++++++++++
hw/dma/i8257.c | 2 +-
hw/dma/sparc32_dma.c | 2 +-
hw/gpio/omap_gpio.c | 4 ++--
hw/i2c/omap_i2c.c | 2 +-
hw/i2c/smbus_eeprom.c | 2 +-
hw/i2c/smbus_ich9.c | 2 +-
hw/i386/amd_iommu.c | 2 ++
hw/i386/intel_iommu.c | 2 ++
hw/i386/pc.c | 2 +-
hw/input/vmmouse.c | 2 +-
hw/intc/apic_common.c | 2 +-
hw/intc/etraxfs_pic.c | 2 +-
hw/intc/grlib_irqmp.c | 2 +-
hw/intc/i8259_common.c | 2 +-
hw/intc/nios2_iic.c | 2 +-
hw/intc/omap_intc.c | 4 ++--
hw/isa/lpc_ich9.c | 2 +-
hw/isa/piix4.c | 2 +-
hw/isa/vt82c686.c | 2 +-
hw/mips/gt64xxx_pci.c | 2 +-
hw/misc/vmport.c | 2 +-
hw/net/dp8393x.c | 2 +-
hw/net/etraxfs_eth.c | 2 +-
hw/net/fsl_etsec/etsec.c | 2 ++
hw/net/lance.c | 2 +-
hw/pci-bridge/dec.c | 2 +-
hw/pci-bridge/pci_expander_bridge.c | 2 +-
hw/pci-host/apb.c | 2 +-
hw/pci-host/bonito.c | 2 +-
hw/pci-host/gpex.c | 2 +-
hw/pci-host/grackle.c | 2 +-
hw/pci-host/piix.c | 6 +++---
hw/pci-host/ppce500.c | 2 +-
hw/pci-host/prep.c | 2 +-
hw/pci-host/q35.c | 4 ++--
hw/pci-host/uninorth.c | 8 ++++----
hw/pci-host/versatile.c | 2 +-
hw/pci-host/xilinx-pcie.c | 2 +-
hw/ppc/ppc4xx_pci.c | 2 +-
hw/ppc/spapr_drc.c | 2 +-
hw/ppc/spapr_pci.c | 2 ++
hw/s390x/s390-pci-bus.c | 1 -
hw/sd/milkymist-memcard.c | 2 +-
hw/sd/pl181.c | 2 +-
hw/sh4/sh_pci.c | 2 +-
hw/timer/i8254_common.c | 2 +-
hw/timer/mc146818rtc.c | 2 +-
hw/vfio/amd-xgbe.c | 2 ++
hw/vfio/calxeda-xgmac.c | 2 ++
hw/xen/xen_backend.c | 2 ++
monitor.c | 2 +-
qdev-monitor.c | 6 +++---
qom/cpu.c | 2 +-
target/i386/cpu.c | 2 +-
64 files changed, 95 insertions(+), 70 deletions(-)
--
2.11.0.259.g40922b1
next reply other threads:[~2017-04-04 20:24 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-04 20:24 Eduardo Habkost [this message]
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 01/21] qdev: Replace cannot_instantiate_with_device_add_yet with !user_creatable Eduardo Habkost
2017-04-05 19:01 ` Marcel Apfelbaum
2017-04-05 19:42 ` Eduardo Habkost
2017-04-06 9:31 ` Marcel Apfelbaum
2017-04-05 21:25 ` Eduardo Habkost
2017-04-05 21:30 ` Peter Maydell
2017-04-06 9:25 ` Thomas Huth
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 02/21] sysbus: Set user_creatable=false by default on TYPE_SYS_BUS_DEVICE Eduardo Habkost
2017-04-05 21:11 ` John Snow
2017-04-06 6:32 ` Juergen Gross
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 03/21] xen-backend: Remove FIXME comment about user_creatable flag Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 04/21] iommu: Remove FIXME comment about user_creatable=true Eduardo Habkost
2017-04-06 9:34 ` Marcel Apfelbaum
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 05/21] fdc: Remove user_creatable flag from sysbus-fdc & SUNW, fdtwo Eduardo Habkost
2017-04-06 9:35 ` Thomas Huth
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 06/21] pflash_cfi01: Remove user_creatable flag Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 07/21] kvmclock: " Eduardo Habkost
2017-04-06 9:42 ` Thomas Huth
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 08/21] ioapic: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 09/21] kvmvapic: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 10/21] sysbus-ahci: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 11/21] allwinner-ahci: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 12/21] isabus-bridge: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 13/21] unimplemented-device: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 14/21] fw_cfg: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 15/21] esp: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 16/21] generic-sdhci: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 17/21] hpet: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 18/21] sysbus-ohci: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 19/21] virtio-mmio: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 20/21] xen-sysdev: " Eduardo Habkost
2017-04-04 20:24 ` [Qemu-devel] [PATCH v2 21/21] s390-pcibus: No need to set user_creatable=false explicitly Eduardo Habkost
2017-04-05 8:55 ` Cornelia Huck
2017-04-06 9:36 ` [Qemu-devel] [PATCH v2 00/21] qdev/sysbus: Set user_creatable=false by default on sysbus Marcel Apfelbaum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170404202429.14643-1-ehabkost@redhat.com \
--to=ehabkost@redhat.com \
--cc=agraf@suse.de \
--cc=armbru@redhat.com \
--cc=lersek@redhat.com \
--cc=marcel@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).