[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [openxt-dev] VirtIO-Argo initial development proposal
On Wed, Dec 30, 2020 at 11:30:03AM +0000, Julien Grall wrote: > Hi Roger, > > On 29/12/2020 09:17, Roger Pau Monné wrote: > > On Wed, Dec 23, 2020 at 04:32:01PM -0500, Rich Persaud wrote: > > > On Dec 17, 2020, at 07:13, Jean-Philippe Ouellet <jpo@xxxxxx> wrote: > > > > On Wed, Dec 16, 2020 at 2:37 PM Christopher Clark > > > > <christopher.w.clark@xxxxxxxxx> wrote: > > > > > Hi all, > > > > > > > > > > I have written a page for the OpenXT wiki describing a proposal for > > > > > initial development towards the VirtIO-Argo transport driver, and the > > > > > related system components to support it, destined for OpenXT and > > > > > upstream projects: > > > > > > > > > > https://openxt.atlassian.net/wiki/spaces/~cclark/pages/1696169985/VirtIO-Argo+Development+Phase+1 > > > > Thanks for the detailed document, I've taken a look and there's indeed > > a lot of work to do listed there :). I have some suggestion and > > questions. > > > > Overall I think it would be easier for VirtIO to take a new transport > > if it's not tied to a specific hypervisor. The way Argo is implemented > > right now is using hypercalls, which is a mechanism specific to Xen. > The concept of hypervisor call is not Xen specific. Any other hypervisor can > easily implement them. At least this is the case on Arm because we have an > instruction 'hvc' that acts the same way as a syscall but for the > hypervisor. > > What we would need to do is reserving a range for Argos. It should be > possible to do it on Arm thanks to the SMCCC (see [1]). > > I am not sure whether you have something similar on x86. On x86 Intel has vmcall and AMD vmmcall, but those are only available to HVM guests. > > IMO it might be easier to start by having an Argo interface using > > MSRs, that all hypervisors can implement, and then base the VirtIO > > implementation on top of that interface. > My concern is the interface would need to be arch-specific. Would you mind > to explain what's the problem to implement something based on vmcall? More of a recommendation than a concern, but I think it would be more attractive for upstream if we could provide an interface to Argo (or hypervisor mediated data exchange) that's no too tied into Xen specifics. Using a defined vmcall/vmmcall interface (and leaving PV out of the picture?) could be one option. My suggestion for using MSRs was because I think every x86 hypervisor must have the logic to trap and handle some of those, and also every OS has the helpers to read/write MSRs, and those instructions are not vendor specific. Roger.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |