Feature #13783
closedviona should operate page-wise
100%
Description
Viona has long assumed that guest-physical memory is accessible via large virtually-contiguous regions in the kernel address space. While this is convenient for viona, it constrains further structural improvements that could be made to the guest memory internals of bhyve. A more reasonable approach for viona would be to access guest memory as if single 4k pages are the largest unit of contiguity. This will result in slightly higher overhead in viona, but is likely a necessary step on the way to implementing better guest memory allocation and/or live migration.
Related issues
Updated by Patrick Mooney about 2 years ago
This change, being almost entirely constrained to the ring manipulation portion of the viona code, was tested by checking that network traffic over viona guest interfaces functioned the same as before. This was done on a variety of guests on both Intel and AMD hardware. After tests (such as iperf3 load) were performed, the vring statistics were checked for anomalous conditions they may have picked up on. Those stats reported zero, just as they were prior to the test.
Updated by Patrick Mooney about 2 years ago
The iperf3 performance was roughly in-line with what was observed prior to the patching (keeping in mind that the testing was done on DEBUG bits)
Updated by Patrick Mooney about 2 years ago
Testing notes from Mike Zeller:
Also built this under SmartOS and tested Centos/Ubuntu guests and verified I was able to ssh in and do things like apt upgrade.
Updated by Electric Monk about 2 years ago
- Status changed from In Progress to Closed
- % Done changed from 0 to 100
git commit 427f9b9a1690e7cccb2abf62f78dba64a69b83e1
commit 427f9b9a1690e7cccb2abf62f78dba64a69b83e1 Author: Patrick Mooney <pmooney@pfmooney.com> Date: 2021-06-03T01:54:28.000Z 13783 viona should operate page-wise Reviewed by: Dan Cross <cross@oxidecomputer.com> Reviewed by: Robert Mustacchi <rm@fingolfin.org> Reviewed by: Mike Zeller <mike.zeller@joyent.com> Approved by: Gordon Ross <gordon.w.ross@gmail.com>
Updated by Patrick Mooney almost 2 years ago
- Related to Bug #14035: viona mishandles merged-rx packets added