improved Virtio framework
We have two drivers for Virtual I/O Device virtual devices today:
vioblk, for Virtio block devices; and
vioif, for Virtio network devices. Before finalising a third driver (the upcoming
vioscsi for Virtio SCSI storage) I decided to do some cleanup of our existing Virtio drivers. At the core of this is a new base Virtio framework which provides support for features we don't currently have; e.g., the use of both indirect and direct descriptor virtqueues.
Updated by Joshua M. Clulow over 3 years ago
Built an OmniOS install ISO with the change rebased on top of
illumos-omnios, the OmniOS gate. Was able to install this ISO in a new SmartOS bhyve guest and exercise both networking (
iperf3) and storage (
iostomp). Leaving running over night to check for leaks or instability. Was able to successfully create a crash dump under
iostomp load, with
kmem_flags set to
0xf; confirmed that it was free of related leaks.
I also upgraded my OpenIndiana build VM (on a SmartOS KVM host) using the RTI build bits, and did some basic
iperf smoke testing and scrubbed the root ZFS pool (~22GB). Notably this test covers upgrading an existing system and ensuring that the
/devices path for the pool has not changed as a result of the driver changes.
Finally, I have tested this several times on Ubuntu 19.04 KVM hosts using
virt-manager where everything seems to work correctly as well. I was able to get to gigabit line speed in an
Updated by Electric Monk over 3 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
commit f8296c60994fb27105f37ac6f75661e4a6bdbab7 Author: Joshua M. Clulow <firstname.lastname@example.org> Date: 2019-08-16T17:37:47.000Z 11329 improved Virtio framework 10012 vioblk should not accept an all-zero serial number 7366 vioif happily creates rx descriptors until it consumes all memory Reviewed by: Robert Mustacchi <email@example.com> Approved by: Richard Lowe <firstname.lastname@example.org>