Cc'ing a few more people who might have a reasoned opinion. Roman Kagan <rka...@virtuozzo.com> writes:
> While hammering out the VMBus / storage series, we've been struggling to > figure out the best practices solution to the following problem: > > VMBus is provided by a vmbus bridge; it appears the most natural to have > it subclassed from SysBusDevice. There can only be one VMBus in the > VM. TYPE_DEVICE unless you actually need something TYPE_SYS_BUS_DEVICE provides. > Now the question is how to add it to the system: > > 1) with a boolean machine property "vmbus" that would trigger the > creation of the VMBus bridge; its class would have > ->cannot_instantiate_with_device_add_yet = true This makes it an optional onboard device. Similar ones exist already, e.g. various optional onboard USB host controllers controlled by machine property "usb". > 2) with a regular -device option; this would require setting > ->has_dynamic_sysbus = true for i440fx machines (q35 already have it) This makes it a pluggable sysbus device. I'd be tempted to leave old i400FX rot in peace, but your use case may not allow that. > > 3) anything else > > > So far we went with 1) but since it's essentially the API the management > layer would have to use we'd like to get it right from the beginning. Asking for advice here is a good idea. Anyone?