Bug #13912
closedviona should track held pages
100%
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.
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.
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>