Basic hypervisor interaction hypercalls
Description
is a dependency for
relates to
Activity

Mathieu Poirier May 31, 2022 at 7:28 PM
Work on domctl and sysctl has been delivered. Work on console I/O is tracked via STR-89.

Mathieu Poirier March 25, 2022 at 9:27 PM
Putting this story on hold until more is known about what needs to be done about STR-78. The outcome of will likely impact the work done for STR-53.

Mathieu Poirier March 25, 2022 at 9:13 PM
The bounce buffer mechanic for multi-buffer transfers is now working properly, which completes the work allowing domains to be queried using the system control interface, i.e do_sysctl().
Domain control transactions via do_domctl() use the same bounce buffer mechanic as the system control interface.

Mathieu Poirier March 21, 2022 at 3:00 PM(edited)
Implemented the bounce buffer mechanic needed to do ioctl() transactions that involve single and multiple memory buffers. The bounce buffer mechanic for single buffer works well but multi-buffer transactions are rejected by Xen.
Next steps:
Fix the bounce buffer mechanic for multi-buffer transfers.
Sync-up with Viresh about the ioctl() calls he is currently using in his vhost-master daemon work and make those available in the xen-sys crate.

Mathieu Poirier March 5, 2022 at 12:12 AM
Finished doing a serious reorganisation of the xen-sys package so that new crates can be added cleanly without needing to include the original xen and xen-sys crates. Also moved the oxerun unikernel to a new “examples” directory so that new examples can be added without needing to be a unikernel as well.
Laid out the foundation of a new xen-ioctls crate with structures and types needed to interact with Xen’s ioctl interface.
Next step:
Implement a bounce buffer heuristic to request memory from Xen, which will in turn use that memory to communicate information requested by the ioctl() call to user space.
Use libc’s ioctl() call from a Rust unsafe context to request system information from Xen.
Details
Details
Assignee

Reporter

These are the bare minimum hypercalls implemented as both ioctl and
direct calls. These allow for a very basic binary to:
console_io - output IO via the Xen console
domctl stub - basic stub for domain control (different API?)
sysctl stub - basic stub for system control (different API?)
The idea would be this provides enough hypercall interface to query the list of domains and output their status via the xen console.