All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: virtio-comment@lists.oasis-open.org, shahafs@nvidia.com,
	virtio@lists.oasis-open.org
Subject: Re: [virtio-comment] [PATCH requirements 3/7] net-features: Add low latency receive queue requirements
Date: Tue, 6 Jun 2023 18:33:16 -0400	[thread overview]
Message-ID: <20230606182640-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20230601220305.587034-4-parav@nvidia.com>

On Fri, Jun 02, 2023 at 01:03:01AM +0300, Parav Pandit wrote:
> Add requirements for the low latency receive queue.
> 
> Signed-off-by: Parav Pandit <parav@nvidia.com>
> ---
>  net-workstream/features-1.4.md | 38 +++++++++++++++++++++++++++++++++-
>  1 file changed, 37 insertions(+), 1 deletion(-)
> 
> diff --git a/net-workstream/features-1.4.md b/net-workstream/features-1.4.md
> index 55f1b1f..054f951 100644
> --- a/net-workstream/features-1.4.md
> +++ b/net-workstream/features-1.4.md
> @@ -7,7 +7,7 @@ together is desired while updating the virtio net interface.
>  
>  # 2. Summary
>  1. Device counters visible to the driver
> -2. Low latency tx virtqueue for PCI transport
> +2. Low latency tx and rx virtqueues for PCI transport
>  
>  # 3. Requirements
>  ## 3.1 Device counters
> @@ -107,3 +107,39 @@ struct vnet_data_desc desc[2];
>  
>  7. Ability to place all transmit completion together with it per packet stream
>     transmit timestamp using single PCIe transcation.
> +
> +### 3.2.2 Low latency rx virtqueue
> +1. The device should be able to write a packet receive completion that consists
> +   of struct virtio_net_hdr (or similar) and a buffer id using a single DMA write
> +   PCIe TLP.

why? what is wrong with it being linear with packet instead?

> +2. The device should be able to perform DMA writes of multiple packets
> +   completions in a single DMA transaction up to the PCIe maximum write limit
> +   in a transaction.
> +3. The device should be able to zero pad packet write completion to align it to
> +   64B or CPU cache line size whenever possible.

assuming completion is used buffer, these are eactly 64 bytes with
packed vq, and they are linear so can be written in one transaction.
if so why list requirements which are already met?
if you want them for completeness mention this.

> +4. An example of the above DMA completion structure:
> +
> +```
> +/* Constant size receive packet completion */
> +struct vnet_rx_completion {
> +   u16 flags;
> +   u16 id; /* buffer id */
> +   u8 gso_type;
> +   u8 reserved[3];
> +   le16 gso_hdr_len;
> +   le16 gso_size;
> +   le16 csum_start;
> +   le16 csum_offset;
> +   u16 reserved2;
> +   u64 timestamp; /* explained later */
> +   u8 padding[];
> +};
> +```
> +5. The driver should be able to post constant-size buffer pages on a receive
> +   queue which can be consumed by the device for an incoming packet of any size
> +   from 64B to 9K bytes.

possible with mrg buffers

> +6. The device should be able to know the constant buffer size at receive
> +   virtqueue level instead of per buffer level.

the bigger question is not communicating to device. that is trivial.
the bigger question is that linux IP stack seems to benefit from variable sized
packets because buffers waste precious kernel memory.
is this for non IP stack such as xdp? non-linux guests? dpdk perhaps?

> +7. The device should be able to indicate when a full page buffer is consumed,
> +   which can be recycled by the driver when the packets from the completed
> +   page is fully consumed.

no idea what this means.

> -- 
> 2.26.2
> 
> 
> This publicly archived list offers a means to provide input to the
> OASIS Virtual I/O Device (VIRTIO) TC.
> 
> In order to verify user consent to the Feedback License terms and
> to minimize spam in the list archive, subscription is required
> before posting.
> 
> Subscribe: virtio-comment-subscribe@lists.oasis-open.org
> Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org
> List help: virtio-comment-help@lists.oasis-open.org
> List archive: https://lists.oasis-open.org/archives/virtio-comment/
> Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf
> List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists
> Committee: https://www.oasis-open.org/committees/virtio/
> Join OASIS: https://www.oasis-open.org/join/
> 


This publicly archived list offers a means to provide input to the
OASIS Virtual I/O Device (VIRTIO) TC.

In order to verify user consent to the Feedback License terms and
to minimize spam in the list archive, subscription is required
before posting.

Subscribe: virtio-comment-subscribe@lists.oasis-open.org
Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org
List help: virtio-comment-help@lists.oasis-open.org
List archive: https://lists.oasis-open.org/archives/virtio-comment/
Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf
List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists
Committee: https://www.oasis-open.org/committees/virtio/
Join OASIS: https://www.oasis-open.org/join/


  reply	other threads:[~2023-06-06 22:33 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-01 22:02 [virtio-comment] [PATCH requirements 0/7] virtio net new features requirements Parav Pandit
2023-06-01 22:02 ` [virtio-comment] [PATCH requirements 1/7] net-features: Add requirements document for release 1.4 Parav Pandit
2023-06-06 22:15   ` Michael S. Tsirkin
2023-06-06 22:28     ` Parav Pandit
2023-06-06 22:56       ` Michael S. Tsirkin
2023-06-06 23:08         ` Parav Pandit
2023-06-06 23:18           ` Michael S. Tsirkin
2023-06-07  9:03             ` [virtio-comment] Re: [virtio] " Xuan Zhuo
2023-06-07 20:35           ` Michael S. Tsirkin
2023-06-07 20:39             ` Parav Pandit
2023-06-07 20:50               ` Michael S. Tsirkin
2023-06-07 20:53                 ` Parav Pandit
2023-06-07  9:31   ` Xuan Zhuo
2023-06-01 22:03 ` [virtio-comment] [PATCH requirements 2/7] net-features: Add low latency transmit queue requirements Parav Pandit
2023-06-06 22:25   ` Michael S. Tsirkin
2023-06-06 22:35     ` Parav Pandit
2023-06-01 22:03 ` [virtio-comment] [PATCH requirements 3/7] net-features: Add low latency receive " Parav Pandit
2023-06-06 22:33   ` Michael S. Tsirkin [this message]
2023-06-06 22:44     ` Parav Pandit
2023-06-06 23:03       ` Michael S. Tsirkin
2023-06-01 22:03 ` [virtio-comment] [PATCH requirements 4/7] net-features: Add notification coalescing requirements Parav Pandit
2023-06-06 22:36   ` Michael S. Tsirkin
2023-06-06 22:46     ` Parav Pandit
2023-06-06 23:06       ` Michael S. Tsirkin
2023-06-01 22:03 ` [virtio-comment] [PATCH requirements 5/7] net-features: Add n-tuple receive flow steering requirements Parav Pandit
2023-06-02  3:35   ` Heng Qi
2023-06-02  3:51     ` Parav Pandit
2023-06-02  4:39       ` [virtio-comment] Re: [virtio] " Heng Qi
2023-06-06 12:08         ` Heng Qi
2023-06-06 21:49           ` [virtio-comment] " Parav Pandit
2023-06-12 14:35             ` [virtio-comment] " Heng Qi
2023-06-12 17:26               ` [virtio-comment] " Parav Pandit
2023-06-13  2:28                 ` Heng Qi
2023-06-13  8:57                 ` [virtio-comment] " Michael S. Tsirkin
2023-06-13  9:16                   ` Cornelia Huck
2023-06-13 11:33                   ` [virtio-comment] " Parav Pandit
2023-06-07  2:47   ` Jason Wang
2023-06-07  3:22     ` Parav Pandit
2023-06-13  2:57   ` [virtio-comment] Re: [virtio] " Heng Qi
2023-06-13  4:16     ` [virtio-comment] " Parav Pandit
2023-06-13  5:04       ` [virtio-comment] " Heng Qi
2023-06-13 12:24         ` [virtio-comment] " Parav Pandit
2023-06-14  3:43           ` [virtio-comment] " Heng Qi
2023-06-14  3:48             ` [virtio-comment] " Parav Pandit
2023-06-14  3:53               ` Heng Qi
2023-06-01 22:03 ` [virtio-comment] [PATCH requirements 6/7] net-features: Add packet timestamp requirements Parav Pandit
2023-06-06 22:40   ` Michael S. Tsirkin
2023-06-06 22:51     ` Parav Pandit
2023-06-06 23:08       ` Michael S. Tsirkin
2023-06-01 22:03 ` [virtio-comment] [PATCH requirements 7/7] net-features: Add header data split requirements Parav Pandit
2023-06-06 22:41   ` Michael S. Tsirkin
2023-06-08 14:57     ` Parav Pandit
2023-06-02  3:06 ` [virtio-comment] Re: [virtio] [PATCH requirements 0/7] virtio net new features requirements Heng Qi
2023-06-06 22:49 ` [virtio-comment] " Michael S. Tsirkin
2023-06-06 22:56   ` Parav Pandit
2023-06-06 23:10     ` Michael S. Tsirkin
2023-06-07  2:49 ` Jason Wang
2023-06-07  3:33   ` Parav Pandit
  -- strict thread matches above, loose matches on Subject: below --
2023-07-24  3:34 Parav Pandit
2023-07-24  3:34 ` [virtio-comment] [PATCH requirements 3/7] net-features: Add low latency receive queue requirements Parav Pandit
2023-08-08  8:32   ` David Edmondson
2023-08-14 11:54   ` David Edmondson
2023-08-15  4:45     ` Parav Pandit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230606182640-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=parav@nvidia.com \
    --cc=shahafs@nvidia.com \
    --cc=virtio-comment@lists.oasis-open.org \
    --cc=virtio@lists.oasis-open.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.