qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] Kconfig vs. default devices
@ 2023-02-06 14:07 Fabiano Rosas
  2023-02-06 14:08 ` [PATCH 01/10] vl.c: Do not add isa-parallel if it's not present Fabiano Rosas
                   ` (10 more replies)
  0 siblings, 11 replies; 25+ messages in thread
From: Fabiano Rosas @ 2023-02-06 14:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: Thomas Huth

We currently have a situation where disabling a Kconfig might result
in a runtime error when QEMU selects the corresponding device as a
default value for an option. But first a disambiguation:

Kconfig default::
  a device "Foo" for which there's "config FOO default y" or "config X
  imply FOO" in Kconfig.

QEMU hardcoded default::
  a fallback; a device "Foo" that is chosen in case no corresponding
  option is given in the command line.

The issue I'm trying to solve is that there is no link between the two
"defaults" above, which means that when the user at build time
de-selects a Kconfig default, either via configs/devices/*/*.mak or
--without-default-devices, the subsequent invocation at runtime might
continue to try to create the missing device due to QEMU defaults.

Even a experienced user that tweaks the build via .mak files is not
required to know about what QEMU developers chose to use as fallbacks
in the code. Moreover, the person/entity that builds the code might
not be the same that runs it, which makes it even more confusing.

We do have -nodefaults in the command line, but that doesn't include
all types of fallbacks that might be set in the code. It also does not
cover individual CONFIGs and their respective use as a fallback in the
code.

So my proposal here is actually simple: Let's make sure every fallback
device creation *without* a validation check gets a hard dependency in
Kconfig. A validation check being something like:

if (has_defaults && object_get_class("foo") {
   create_foo();
}

Fabiano Rosas (10):
  vl.c: Do not add isa-parallel if it's not present
  hw/i386: Select E1000E for q35
  hw/i386: Select VGA_PCI in Kconfig
  hw/i386: Select E1000_PCI for i440fx
  hw/arm: Select VIRTIO_NET for virt machine
  hw/arm: Select VIRTIO_BLK for virt machine
  hw/arm: Select XLNX_USB_SUBSYS for xlnx-zcu102 machine
  hw/arm: Select GICV3_TCG for sbsa-ref machine
  hw/arm: Select e1000e for sbsa-ref machine
  hw/arm: Select VGA_PCI for sbsa-ref machine

 hw/arm/Kconfig  | 7 +++++++
 hw/i386/Kconfig | 6 +++---
 softmmu/vl.c    | 3 ++-
 3 files changed, 12 insertions(+), 4 deletions(-)

-- 
2.35.3



^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2023-02-07 19:25 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-06 14:07 [PATCH 00/10] Kconfig vs. default devices Fabiano Rosas
2023-02-06 14:08 ` [PATCH 01/10] vl.c: Do not add isa-parallel if it's not present Fabiano Rosas
2023-02-06 15:02   ` Philippe Mathieu-Daudé
2023-02-06 17:05     ` Fabiano Rosas
2023-02-06 14:08 ` [PATCH 02/10] hw/i386: Select E1000E for q35 Fabiano Rosas
2023-02-07 15:28   ` Thomas Huth
2023-02-06 14:08 ` [PATCH 03/10] hw/i386: Select VGA_PCI in Kconfig Fabiano Rosas
2023-02-07 15:47   ` Thomas Huth
2023-02-07 17:41     ` Fabiano Rosas
2023-02-06 14:08 ` [PATCH 04/10] hw/i386: Select E1000_PCI for i440fx Fabiano Rosas
2023-02-07 18:16   ` Thomas Huth
2023-02-06 14:08 ` [PATCH 05/10] hw/arm: Select VIRTIO_NET for virt machine Fabiano Rosas
2023-02-07 18:19   ` Thomas Huth
2023-02-06 14:08 ` [PATCH 06/10] hw/arm: Select VIRTIO_BLK " Fabiano Rosas
2023-02-07 18:26   ` Thomas Huth
2023-02-07 19:24     ` Fabiano Rosas
2023-02-06 14:08 ` [PATCH 07/10] hw/arm: Select XLNX_USB_SUBSYS for xlnx-zcu102 machine Fabiano Rosas
2023-02-06 14:21   ` Peter Maydell
2023-02-06 14:08 ` [PATCH 08/10] hw/arm: Select GICV3_TCG for sbsa-ref machine Fabiano Rosas
2023-02-06 14:21   ` Peter Maydell
2023-02-06 14:08 ` [PATCH 09/10] hw/arm: Select e1000e " Fabiano Rosas
2023-02-06 14:08 ` [PATCH 10/10] hw/arm: Select VGA_PCI " Fabiano Rosas
2023-02-06 14:22   ` Peter Maydell
2023-02-06 14:19 ` [PATCH 00/10] Kconfig vs. default devices Peter Maydell
2023-02-06 14:56   ` Fabiano Rosas

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).