Message ID | CAD=HUj7N8dpEvf0Be8fg-qpFFTQOqzZX_kVoFB=BWp8S4uEFvg@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [virtio-dev,RFC,v1,1/2] content: define what an exported object is | expand |
On Wed, Jan 22, 2020 at 04:16:35PM +0900, David Stevens wrote: > Signed-off-by: David Stevens <stevensd@chromium.org> > --- > virtio-gpu.tex | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/virtio-gpu.tex b/virtio-gpu.tex > index af4ca61..a1f0210 100644 > --- a/virtio-gpu.tex > +++ b/virtio-gpu.tex > @@ -186,12 +186,16 @@ \subsubsection{Device Operation: Request > header}\label{sec:Device Types / GPU De > VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300, > VIRTIO_GPU_CMD_MOVE_CURSOR, > > + /* misc commands */ > + VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID = 0x0400, > + > /* success responses */ > VIRTIO_GPU_RESP_OK_NODATA = 0x1100, > VIRTIO_GPU_RESP_OK_DISPLAY_INFO, > VIRTIO_GPU_RESP_OK_CAPSET_INFO, > VIRTIO_GPU_RESP_OK_CAPSET, > VIRTIO_GPU_RESP_OK_EDID, > + VIRTIO_GPU_RESP_OK_RESOURCE_ASSIGN_UUID, > > /* error responses */ > VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, > @@ -454,6 +458,32 @@ \subsubsection{Device Operation: > controlq}\label{sec:Device Types / GPU Device / > This detaches any backing pages from a resource, to be used in case of > guest swapping or object destruction. > > +\item[VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID] Creates an exported object from > + a resource. Request data is \field{struct > + virtio_gpu_resource_assign_uuid}. Response type is > + VIRTIO_GPU_RESP_OK_RESOURCE_ASSIGN_UUID, response data is \field{struct > + virtio_gpu_resp_resource_assign_uuid}. > + > +\begin{lstlisting} > +struct virtio_gpu_resource_assign_uuid { > + struct virtio_gpu_ctrl_hdr hdr; > + le32 resource_id; > + le32 padding; > +}; > + > +struct virtio_gpu_resp_resource_assign_uuid { > + struct virtio_gpu_ctrl_hdr hdr; > + le64 uuid_low; > + le64 uuid_high; > +}; > +\end{lstlisting} > + ok but how is this then used? will there be more commands to pass this uuid to another device? > +The response contains a uuid which identifies the exported object created from > +the host private resource. Are the uuids as specified in rfc-4122? I guess we need to link to that spec then .. > Note that if the resource has an attached backing, > +modifications made to the host private resource through the exported object by > +other devices are not visible in the attached backing until they are > transferred > +into the backing. > + s/host/device/? > \end{description} > > \subsubsection{Device Operation: cursorq}\label{sec:Device Types / > GPU Device / Device Operation / Device Operation: cursorq} > -- > 2.25.0.341.g760bfbb309-goog > > --------------------------------------------------------------------- > To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org > For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
> ok but how is this then used? will there be more commands to pass > this uuid to another device? This is intended to be used with the virtio video device being discussed here https://markmail.org/thread/ingyqlps4rbcuazh. I don't have a specific patch for how that will work, but it will likely be an extension to VIRTIO_VIDEO_T_RESOURCE_CREATE. > > +The response contains a uuid which identifies the exported object created from > > +the host private resource. > > Are the uuids as specified in rfc-4122? I guess we need to link to that spec then I don't think it's terribly important to specify how the uuids are generated, as long as they're actually unique. That being said, I'm not opposed to defining them as rfc-4122 version 4 uuids. Although if we do that, it should go in the patch that defines what exported objects and uuids are in the context of virtio, not in the virtio-gpu section. > > Note that if the resource has an attached backing, > > +modifications made to the host private resource through the exported object by > > +other devices are not visible in the attached backing until they are > > transferred > > +into the backing. > > + > > s/host/device/? The virtio-gpu is based around "resources private to the host", to quote the existing specification. I think consistency with that language is important. -David
diff --git a/virtio-gpu.tex b/virtio-gpu.tex index af4ca61..a1f0210 100644 --- a/virtio-gpu.tex +++ b/virtio-gpu.tex @@ -186,12 +186,16 @@ \subsubsection{Device Operation: Request header}\label{sec:Device Types / GPU De VIRTIO_GPU_CMD_UPDATE_CURSOR = 0x0300, VIRTIO_GPU_CMD_MOVE_CURSOR, + /* misc commands */ + VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID = 0x0400, + /* success responses */ VIRTIO_GPU_RESP_OK_NODATA = 0x1100, VIRTIO_GPU_RESP_OK_DISPLAY_INFO, VIRTIO_GPU_RESP_OK_CAPSET_INFO, VIRTIO_GPU_RESP_OK_CAPSET, VIRTIO_GPU_RESP_OK_EDID, + VIRTIO_GPU_RESP_OK_RESOURCE_ASSIGN_UUID, /* error responses */
Signed-off-by: David Stevens <stevensd@chromium.org> --- virtio-gpu.tex | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) VIRTIO_GPU_RESP_ERR_UNSPEC = 0x1200, @@ -454,6 +458,32 @@ \subsubsection{Device Operation: controlq}\label{sec:Device Types / GPU Device / This detaches any backing pages from a resource, to be used in case of guest swapping or object destruction. +\item[VIRTIO_GPU_CMD_RESOURCE_ASSIGN_UUID] Creates an exported object from + a resource. Request data is \field{struct + virtio_gpu_resource_assign_uuid}. Response type is + VIRTIO_GPU_RESP_OK_RESOURCE_ASSIGN_UUID, response data is \field{struct + virtio_gpu_resp_resource_assign_uuid}. + +\begin{lstlisting} +struct virtio_gpu_resource_assign_uuid { + struct virtio_gpu_ctrl_hdr hdr; + le32 resource_id; + le32 padding; +}; + +struct virtio_gpu_resp_resource_assign_uuid { + struct virtio_gpu_ctrl_hdr hdr; + le64 uuid_low; + le64 uuid_high; +}; +\end{lstlisting} + +The response contains a uuid which identifies the exported object created from +the host private resource. Note that if the resource has an attached backing, +modifications made to the host private resource through the exported object by +other devices are not visible in the attached backing until they are transferred +into the backing. + \end{description} \subsubsection{Device Operation: cursorq}\label{sec:Device Types / GPU Device / Device Operation / Device Operation: cursorq}