OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-dev message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [virtio-dev] [PATCH] split-ring: Demand that a device must not change descriptor entries


On Mon, Nov 11, 2019 at 12:17:51PM -0500, Rob Miller wrote:
> On Mon, Nov 11, 2019 at 12:13 PM Jan Kiszka <jan.kiszka@siemens.com> wrote:
> 
>     From: Jan Kiszka <jan.kiszka@siemens.com>
> 
>     So far the spec only indirectly says that a descriptor table entry is
>     not modified by a device when processing it. Make this explicit by
>     adding it as normative requirement. Existing drivers already depend on
>     this.
> 
>     See also https://lists.oasis-open.org/archives/virtio-dev/201910/
>     msg00057.html.
> 
>     Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
>     ---
>      split-ring.tex | 2 +-
>      1 file changed, 1 insertion(+), 1 deletion(-)
> 
>     diff --git a/split-ring.tex b/split-ring.tex
>     index 123ac9f..bfef62d 100644
>     --- a/split-ring.tex
>     +++ b/split-ring.tex
>     @@ -217,7 +217,7 @@ \subsection{The Virtqueue Descriptor Table}\label
>     {sec:Basic Facilities of a Virt
>      \devicenormative{\subsubsection}{The Virtqueue Descriptor Table}{Basic
>     Facilities of a Virtio Device / Virtqueues / The Virtqueue Descriptor
>     Table}
>      A device MUST NOT write to a device-readable buffer, and a device SHOULD
>     NOT
>      read a device-writable buffer (it MAY do so for debugging or diagnostic
>     -purposes).
>     +purposes). A device MUST NOT write to any descriptor table entry.
> 
>      \drivernormative{\subsubsection}{The Virtqueue Descriptor Table}{Basic
>     Facilities of a Virtio Device / Virtqueues / The Virtqueue Descriptor
>     Table}
>      Drivers MUST NOT add a descriptor chain longer than $2^{32}$ bytes in
>     total;
>     --
>     2.16.4
> 
> 
> what is trying to be solved here? There is a reason why this is allowed as some
> vendors update the table when using RX_MERABLE_BUFFERs & F_IN_ORDER features
> 
> Rob Miller
> rob.miller@broadcom.com
> (919)721-3339
> 
> 


Going back to this, I don't see how this can work with current Linux
guests at least when VIRTIO_F_IOMMU_PLATFORM is specified, since
the data is mapped to devices as follows:

                        dma_addr_t addr = vring_map_one_sg(vq, sg, DMA_TO_DEVICE);

and I guess we all agreed physical devices all set this flag?
Could you explain a bit more about how writing into descriptors
is useful with RX_MERABLE_BUFFERs?


-- 
MST



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]