Feature #13783


viona should operate page-wise

Added by Patrick Mooney about 2 years ago. Updated about 2 years ago.

Start date:
Due date:
% Done:


Estimated time:
Gerrit CR:
External Bug:


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

Related to illumos gate - Bug #14035: viona mishandles merged-rx packetsClosedPatrick Mooney

Actions #1

Updated by Electric Monk about 2 years ago

  • Gerrit CR set to 1476
Actions #2

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.

Actions #3

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)

Actions #4

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.

Actions #5

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 <>
Date:   2021-06-03T01:54:28.000Z

    13783 viona should operate page-wise
    Reviewed by: Dan Cross <>
    Reviewed by: Robert Mustacchi <>
    Reviewed by: Mike Zeller <>
    Approved by: Gordon Ross <>

Actions #6

Updated by Patrick Mooney almost 2 years ago

  • Related to Bug #14035: viona mishandles merged-rx packets added

Also available in: Atom PDF