Anthony Liguori <aligu...@us.ibm.com> writes: > 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.
Would be nice if we could make QEMU behave less awful. >> 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. A bandaid isn't half bad when you're bleeding :)