[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [PATCH v3] virtio-rng: add a control queue
On Tue, 4 Aug 2020 17:41:27 +0200
Laurent Vivier <lvivier@redhat.com> wrote:
> A control queue is needed to send command to ask the device to
> release the request buffers if it cannot provide data.
>
> Changes:
>
> 5.4.2 Virtqueues
> 0 requestq
> 1 controlq
> controlq only exists if VIRTIO_RNG_F_CTRL_VQ set.
>
> 5.4.3 Feature bits
> VIRTIO_RNG_F_CTRL_VQ (0)
> Device has a control queue
>
> 5.4.5 Device Initialization
> Identify and initialize the request virtqueue.
> If the VIRTIO_RNG_F_CTRL_VQ feature bit is negotiated,
> identify the control virtqueue.
>
> 5.4.6.3 Control Virtqueue
> The driver uses the control virtqueue (if VIRTIO_RNG_F_CTRL_VQ is
> negotiated) to send commands to control the device.
> All commands are of the following form:
> struct virtio_rng_ctrl_hdr {
> u8 cmd;
> };
>
> 5.4.6.4 Device Requirements: Control Virtqueue
> If VIRTIO_RNG_F_CTRL_VQ is negotiated, the device MUST implement the
> flush command.
> Any other value of cmd MUST be ignored by the device.
>
> 5.4.6.5 Request Virtqueue Flushing
> When the device is not able to provide enough entropy to the driver, the
> driver may be stuck waiting for the device returning buffers, and cannot
> be removed to switch to another one. The flush command allows the driver
> to ask the device to release all the buffers sent to the device. This
> allows the driver to release resources allocated to receive data from
> the device.
> #define VIRTIO_RNG_CMD_FLUSH 0
>
> 5.4.6.5.1 Device Requirements: Request Virtqueue Flushing
> When the driver sends a flush request, the device MUST release all
> outstanding buffers.
>
> Bug-Link: https://github.com/oasis-tcs/virtio-spec/issues/83
> Signed-off-by: Laurent Vivier <lvivier@redhat.com>
> ---
>
> Notes:
> v3: Add devicenormative references in conformance part
> Move "Request Virtqueue Flushing" from \paragraph to \subsubsection
> to be behind "Control Virtqueue" and not behind
> "Device Requirements: Control Virtqueue"
There are different ways to put the conformance statements (and what
should be a paragraph vs a subsubsection), and your layout seems
reasonable, avoiding nesting too deep.
>
> v2: Add devicenormative for the Control Virtqueue
> Add devicenormative for the Request Virtqueue Flushing
> Reword paragraph Request Virtqueue Flushing
>
> conformance.tex | 2 ++
> content.tex | 47 +++++++++++++++++++++++++++++++++++++++++++++--
> 2 files changed, 47 insertions(+), 2 deletions(-)
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]