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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization
To unsubscribe, send any mail to
"[email protected]"