On 2/4/21 11:52 AM, [email protected] wrote:
> From: Marc-André Lureau <[email protected]>
>
> Introduce a pending state for commands which aren't finished yet, but
> are being handled. See following patch.
>
> Signed-off-by: Marc-André Lureau <[email protected]>
> ---
> contrib/vhost-user-gpu/vugpu.h | 8 +++++++-
> contrib/vhost-user-gpu/vhost-user-gpu.c | 8 ++++----
> contrib/vhost-user-gpu/virgl.c | 2 +-
> 3 files changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/contrib/vhost-user-gpu/vugpu.h b/contrib/vhost-user-gpu/vugpu.h
> index 86f3ac86aa..04d5615812 100644
> --- a/contrib/vhost-user-gpu/vugpu.h
> +++ b/contrib/vhost-user-gpu/vugpu.h
> @@ -129,12 +129,18 @@ typedef struct VuGpu {
> QTAILQ_HEAD(, virtio_gpu_ctrl_command) fenceq;
> } VuGpu;
>
> +enum {
> + VG_CMD_STATE_NEW,
Maybe VG_CMD_STATE_STARTING?
> + VG_CMD_STATE_PENDING,
Maybe introduce VG_CMD_STATE_PENDING in the
patch using it.
> + VG_CMD_STATE_FINISHED,
> +};
Can we use a typedef ...
> +
> struct virtio_gpu_ctrl_command {
> VuVirtqElement elem;
> VuVirtq *vq;
> struct virtio_gpu_ctrl_hdr cmd_hdr;
> uint32_t error;
> - bool finished;
> + int state;
... and use it here?
Or directly declare in place:
enum {
VG_CMD_STATE_STARTING,
VG_CMD_STATE_PENDING,
VG_CMD_STATE_FINISHED,
} state;
> QTAILQ_ENTRY(virtio_gpu_ctrl_command) next;
> };
>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>