Several bhyve quirks

Julian Hsiao madoka at
Thu Mar 26 07:43:59 UTC 2015

On 2015-03-25 15:44:35 +0000, Peter Grehan said:

> In 10.1, virtio-blk i/o is done sychronously in the context of the
> guest vCPU exit. If it's a single vCPU guest, or the virtio-net
> interrupt happens to be delivered to that vCPU, performance will suffer.
> A workaround is to use ahci-hd for the disk emulation and not
> virtio-blk. The AHCI emulation does i/o in a dedicated thread and
> doesn't block the vCPU thread.

Thank you for your explanation and tips, Peter.  I just tried changing 
virtio-blk -> ahci-hd and preliminary results are good.  And now you've 
mentioned it, I do recall seeing slightly less performance degradation 
on guests with 2 vCPUs vs. ones with just one.

I've always assumed virtio driver > emulated driver so it didn't occur 
to me to try ahci-hd.

> The only workaround for 10.1 would be to use ahci-hd instead of
> virtio-blk. The correct sector size will be reported there.

I haven't had a chance to test this; next time I spin up a guest from 
scratch I'll try it out.

> Try using the -W option to bhyve. This will force the bhyve virtio
> code to advertize (non-standard) MSI interrupt capability which OpenBSD
> will then use to allocate vectors.

Unfortunately -W didn't help.  This is not critical, however, and I'll 
ask around in the OpenBSD mailing list.

Thanks again for your help.

Julian Hsiao

More information about the freebsd-virtualization mailing list