Markus Armbruster <arm...@redhat.com> writes: > Anthony Liguori <aligu...@us.ibm.com> writes: > >> Markus Armbruster <arm...@redhat.com> writes: >> >>> Peter Maydell <peter.mayd...@linaro.org> writes: >>>>>> [and I don't think "this device >>>>>> can be added via the monitor but not the command line" >>>>>> counts as consistent or coherent...] >>>>> >>>>> no_user applies equally to -device and device_add. >>>> >>>> In the codebase as it stands, it applies only to -device. >>>> I agree that we should be consistent here, which we could do >>>> by applying Christian's patch or some variation to make device_add >>>> honour no_user. (Or by removing no_user altogether :-)) >>> >>> Actually, it appears to apply only to help now! >>> >>> git-bisect blames this one: >> >> Let's step back and try to figure out the problem we're trying to solve. >> >> What is -devices help trying to show? Devices that are valid to for a >> user to pass? Hint: on a PC, the only thing that's valid to add are >> devices that implement a certain bus type. In fact, it depends on the >> bus model. >> >> So if you want to make -device help prettier, we should add a filter >> that looks at the busses available and filters anything that isn't an >> instance of the appropriate bus types. > > Necessary, but not sufficient; see the two examples I posted upstream. > Both devices would pass a "appropriate bus is available" filter. Both > devices cannot possibly work. One of them starts up fine (mayhem at > guest runtime expected),
Note that what you've done with the first one is 100% representative of real hardware. ISA bus conflicts are part of the nature of ISA and why it was such an awful bus. > the other makes qemu crash & burn immediately. This is a modeling problem. It doesn't make sense for q35-pcihost to be a PCIDevice. It's not a PCI device. But even so, segv'ing is always a bug and we ought to prevent it from seg faulting. no_user to hide a SEGV is just using a bandaid. Regards, Anthony Liguori