bhyve: disable msi and msix on virtio reset?

Tycho Nightingale tycho.nightingale at pluribusnetworks.com
Wed Jul 13 00:21:06 UTC 2016


Hi,

On Jul 12, 2016, at 7:38 PM, Peter Grehan <grehan at freebsd.org> wrote:

>> Yes, writing 0 to the status resister should reset the device
>> including all PCIE state.  This implies that vi_reset_dev() needs to
>> take the proper actions to bring the associated pci_devinst (which
>> from the guest’s perspective isn’t a discrete element) back to it’s
>> reset state too.
> 
> I'm not sure if the reset also hits PCIe state, if you're counting config space as part of that (e.g. BAR contents). As an example, the FreeBSD guest virtio code doesn't do any config space saves/restores around a reset.

This is one of those ambiguities in the virtio spec wherein the canonical implementation (qemu) becomes the de facto standard.  I see in illumos driver that only a virtio-reset is performed in the quiesce entry point.  On qemu Is this sufficient on qemu to support warm rest?  If so then perhaps we should only clear the capabilities (MSIX) and not the BARs.

Tycho


More information about the freebsd-virtualization mailing list