> Can you split this patch up into a few pieces. > > We generally want the changes to the XML parser/formatter to > be separate from any driver code, as the first part. > > Then I'd suggest a separate patch for the PCI and the SCSI > hostdev support in bhyve. > For the conf stuff we'll need a docs update in docs/formatdomain.html.in > at the same time as this parser additions. > If you can provide a little detail in the commit message on why the current > SCSI hostdev stuff doesn't work for FreeBSD that'd be useful too. Can do. > I didn't see anything in the code is keeping track of in-use PCI devices. > Does something else in FreeBSD guarantee that you won't have bad stuff > happening if the PCI device is attempted to be assigned to 2 guests ? > > Also is it required to manually detach the host OS driver first, or > is that automatic ? This ties into which 'managed=no|yes' attribute > choices you should permit for the hostdev. There is not automatic management for passing through devices. It is configured by a list of PCI devices that are to be reserved for passthrough at boot. The vmm module will attach the listed devices to the ppt driver before something else can try to take them. If the same device is assigned to multiple VMs then the bhyve command will error with an appropriate message when trying to start VMs after the first one takes the device. This seems fine to me. I have several VMs configured to use the same devices but only can run one at a time. This is for testing drivers in different stable branches, on different operating systems, etc. I could imagine some future extension of this work to enable libvirt to automatically configure devices for passthrough at next boot perhaps, but that is more of a convenience than a necessity. Right now passthrough can only be configured by manually putting the bhyve command line args in the config, so this change is already a definite improvement in terms of leveraging libvirt's facilities. -- Ryan Moeller iXsystems, Inc. OS Developer Email: ryan@xxxxxxxxxxxxx