Project

General

Profile

Actions

Bug #13912

closed

viona should track held pages

Added by Patrick Mooney almost 2 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Category:
bhyve
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:

Description

With a more expressive API for accessing bhyve guest memory coming in #13896, viona should be updated so that all of its guest memory accesses are properly tracked. That will be relatively straightforward for virtqueue accesses, since those addresses are "mapped" for long periods of time. For inbound packets, the pages referenced by the virtqueue descriptor will be held while the data is being copied into the guest, and then released. For transmitted packets, the pages from the descriptor will be held until the mblk is copied (pulled up) or transmitted.

Actions #1

Updated by Electric Monk almost 2 years ago

  • Gerrit CR set to 1578
Actions #2

Updated by Patrick Mooney about 1 year ago

Initial testing consisted of booting and running the typical battery of guests, checking to see that their network connectivity (through viona) was still functioning as expected. I also dtraced the functions expected to be called by viona for the new page-holding logic: vmm_drv_hold and vmm_drv_release (& vmm_drv_release_chain) to see that they were being called from the contexts we would expect.

After all of these tests, a dump of the host was initiated and the resulting crashdump was checked with ::findleaks and ::kmem_verify. Those results were clean.

Actions #3

Updated by Electric Monk about 1 year ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

git commit db9aa506ce275f82ee72f31fc2e6e3c53d1212b7

commit  db9aa506ce275f82ee72f31fc2e6e3c53d1212b7
Author: Patrick Mooney <pmooney@pfmooney.com>
Date:   2022-03-30T15:00:46.000Z

    13912 viona should track held pages
    Reviewed by: Dan Cross <cross@oxidecomputer.com>
    Reviewed by: Joshua M. Clulow <josh@sysmgr.org>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions

Also available in: Atom PDF