Hypercalls to support VirtIO

Description

These are the hypercalls that need to be implemented to support a VirtIO backend. This includes the ability to map another guests memory into the current domains address space, register to receive IOREQ events when the guest knocks at the doorbell and inject kicks into the guest. The hypercalls we need to support would be:

  • dmop - device model ops (*_ioreq_server, setirq, nr_vpus)

  • foreignmemory - map and unmap guest memory

The DMOP space is larger than what we need for an IOREQ backend soI've based it just on what arch/arm/dm.c exports which is the subset introduced for EPAM's virtio work.

Work related foreign memory mapping is tracked via STR-78.

Estimate: 6w

Activity

Show:

Mathieu Poirier May 31, 2022 at 7:57 PM

The base API for domain operation and foreign memory mapping has been delivered. The remaining items related to device model, event channel and Xen store communication can be tracked individually via STR-90, and respectively.

Mathieu Poirier May 25, 2022 at 10:40 PM

Scoping out the work to completely get rid of the libxen library has been done. APIs for 3 main areas have to be implemented, i.e device model, event channel and xen store communication. The first two can re-use the work already done for the foreignmemory API and as such should require 2 weeks each[*].

So far no work has been done to communicate with the Xen store. Implementing an API to do that should take around 3 weeks.

[*] . If we only deal with the ioctl commands, which should be the case. Dealing with the Xen tools' logging framework will take much longer.

Mathieu Poirier May 10, 2022 at 8:46 PM

  • Interface for the foreign memory map of memory and resources has been implemented and integrated with the xen-vhost-master crate.

Next Step:

  • See if we still want to move forward with the implementation of the device model operations and if so, start scoping out the work. With the work already done for and , there should not be any technical problems related to this activity.

Delivered

Details

Assignee

Reporter

Original estimate

Time tracking

No time logged6w remaining

Sprint

Fix versions

Priority

Checklist

Sentry

Created September 21, 2021 at 3:37 PM
Updated May 31, 2022 at 7:57 PM
Resolved May 31, 2022 at 7:57 PM