Project

General

Profile

Bug #12990

improve interface boundary for bhyve ins/outs

Added by Patrick Mooney 12 days ago. Updated 12 days ago.

Status:
In Progress
Priority:
Normal
Category:
bhyve
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
bhyve
Gerrit CR:

Description

While #12989 notes that in/out emulation is more straight forward than MMIO, due to the decoding acceleration present in SVM and VMX, it is still not entirely without challenges for userspace. For what I assume are "performance reasons", the more complicated ins/outs instructions have somewhat substantial userspace emulation demands. As it's not unreasonable to use those instructions with a rep prefix, the original authors of the emulation may have been trying to avoid repeated round trips out to userspace to drive the state forward. That said, actual usage of rep ins/rep outs seems extremely niche for modern OSes and workloads, making it less appealing to push the complexity of repetition to userspace, rather than keeping the exits simple (in/out to a single port) and driving the repetition in-kernel. This dovetails nicely into the virtual instruction emulation work for #12989, which also needs a way to drive multi-part instruction emulation contexts with device emulation requests in userspace.

History

#1

Updated by Electric Monk 12 days ago

  • Gerrit CR set to 815

Also available in: Atom PDF