From: "Michael S. Tsirkin" <mst@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: Heng Qi <hengqi@linux.alibaba.com>,
"virtio-dev@lists.oasis-open.org"
<virtio-dev@lists.oasis-open.org>,
"virtio-comment@lists.oasis-open.org"
<virtio-comment@lists.oasis-open.org>,
Jason Wang <jasowang@redhat.com>,
Yuri Benditovich <yuri.benditovich@daynix.com>,
Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Subject: Re: [virtio-comment] Re: [PATCH v13] virtio-net: support inner header hash
Date: Wed, 26 Apr 2023 00:12:22 -0400 [thread overview]
Message-ID: <20230426000032-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <PH0PR12MB548148E35F4F0242A71FC5DFDC649@PH0PR12MB5481.namprd12.prod.outlook.com>
On Tue, Apr 25, 2023 at 09:39:28PM +0000, Parav Pandit wrote:
>
> > From: Michael S. Tsirkin <mst@redhat.com>
> > Sent: Tuesday, April 25, 2023 5:06 PM
> > > On 4/23/2023 3:35 AM, Heng Qi wrote:
> > > > \subsubsection{Legacy Interface: Feature bits}\label{sec:Device
> > > > Types / Network Device / Feature bits / Legacy Interface: Feature bits} @@
> > -198,6 +202,7 @@ \subsection{Device configuration layout}\label{sec:Device
> > Types / Network Device
> > > > u8 rss_max_key_size;
> > > > le16 rss_max_indirection_table_length;
> > > > le32 supported_hash_types;
> > > > + le32 supported_tunnel_hash_types;
> >
> > this needs a comment explaining it only exists with some feature bits.
> >
> Yes, it is already there.
> +Field \field{supported_tunnel_hash_types} only exists if the device supports inner header hash, i.e. if VIRTIO_NET_F_HASH_TUNNEL is set.
> +
> I think it should be changed from "device supports" to "driver negotiated".
>
> > > > };
> > > In v12 I was asking this to move to above field from the config area
> > > to the GET command in comment [1] as,
> > >
> > > "With that no need to define two fields at two different places in
> > > config area and also in cvq."
> >
> > I think I disagree.
> > the proposed design is consistent with regular tunneling.
> >
> Sure.
> I understand how config space has evolved from 0.9.5 to know without much attention, but really expanding this way is not helpful.
> It requires building more and more RAM based devices even for PCI PFs, which is sub optimal.
No, this is ROM, not RAM.
> CVQ already exists and provides the SET command. There is no reason to do GET in some other way.
Spoken looking at just hardware cost :)
The reason is that this is device specific. Maintainance overhead and
system RAM cost for the code to support this should not be ignored.
> Device has single channel to provide a value and hence it doesn't need any internal synchronization between two paths.
>
> So, if we add a new feature bit as VIRTIO_F_CFG_SPACE_OVER_AQ it is an improvement.
> But it still comes with a cost which device cannot mitigate.
> The cost is,
> 1. a driver may not negotiate such feature bit, and device ends up burning memory.
> 1.b Device provisioning becomes a factor of what some guests may use/not use/already using on the live system.
>
> 2. Every device needs AQ even when the CVQ exists.
>
> Hence, better to avoid expanding current structure for any new fields, specially which has the SET equivalent.
>
> But if we want to with the path of VIRTIO_F_CFG_SPACE_OVER_AQ, it is fine.
> More things can evolve for generic things like config space over AQ.
I am not sure what does VIRTIO_F_CFG_SPACE_OVER_AQ mean, and what are
these costs. What I had in mind is extending proposed vq transport to
support sriov. I don't see why we can not have exactly 0 bytes of memory
per VF.
And if we care about single bytes of PF memory (do we? there's only one
PF per SRIOV device ...), what we should do is a variant of pci
transport that aggressively saves memory.
--
MST
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/
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: Heng Qi <hengqi@linux.alibaba.com>,
"virtio-dev@lists.oasis-open.org"
<virtio-dev@lists.oasis-open.org>,
"virtio-comment@lists.oasis-open.org"
<virtio-comment@lists.oasis-open.org>,
Jason Wang <jasowang@redhat.com>,
Yuri Benditovich <yuri.benditovich@daynix.com>,
Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Subject: [virtio-dev] Re: [virtio-comment] Re: [PATCH v13] virtio-net: support inner header hash
Date: Wed, 26 Apr 2023 00:12:22 -0400 [thread overview]
Message-ID: <20230426000032-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <PH0PR12MB548148E35F4F0242A71FC5DFDC649@PH0PR12MB5481.namprd12.prod.outlook.com>
On Tue, Apr 25, 2023 at 09:39:28PM +0000, Parav Pandit wrote:
>
> > From: Michael S. Tsirkin <mst@redhat.com>
> > Sent: Tuesday, April 25, 2023 5:06 PM
> > > On 4/23/2023 3:35 AM, Heng Qi wrote:
> > > > \subsubsection{Legacy Interface: Feature bits}\label{sec:Device
> > > > Types / Network Device / Feature bits / Legacy Interface: Feature bits} @@
> > -198,6 +202,7 @@ \subsection{Device configuration layout}\label{sec:Device
> > Types / Network Device
> > > > u8 rss_max_key_size;
> > > > le16 rss_max_indirection_table_length;
> > > > le32 supported_hash_types;
> > > > + le32 supported_tunnel_hash_types;
> >
> > this needs a comment explaining it only exists with some feature bits.
> >
> Yes, it is already there.
> +Field \field{supported_tunnel_hash_types} only exists if the device supports inner header hash, i.e. if VIRTIO_NET_F_HASH_TUNNEL is set.
> +
> I think it should be changed from "device supports" to "driver negotiated".
>
> > > > };
> > > In v12 I was asking this to move to above field from the config area
> > > to the GET command in comment [1] as,
> > >
> > > "With that no need to define two fields at two different places in
> > > config area and also in cvq."
> >
> > I think I disagree.
> > the proposed design is consistent with regular tunneling.
> >
> Sure.
> I understand how config space has evolved from 0.9.5 to know without much attention, but really expanding this way is not helpful.
> It requires building more and more RAM based devices even for PCI PFs, which is sub optimal.
No, this is ROM, not RAM.
> CVQ already exists and provides the SET command. There is no reason to do GET in some other way.
Spoken looking at just hardware cost :)
The reason is that this is device specific. Maintainance overhead and
system RAM cost for the code to support this should not be ignored.
> Device has single channel to provide a value and hence it doesn't need any internal synchronization between two paths.
>
> So, if we add a new feature bit as VIRTIO_F_CFG_SPACE_OVER_AQ it is an improvement.
> But it still comes with a cost which device cannot mitigate.
> The cost is,
> 1. a driver may not negotiate such feature bit, and device ends up burning memory.
> 1.b Device provisioning becomes a factor of what some guests may use/not use/already using on the live system.
>
> 2. Every device needs AQ even when the CVQ exists.
>
> Hence, better to avoid expanding current structure for any new fields, specially which has the SET equivalent.
>
> But if we want to with the path of VIRTIO_F_CFG_SPACE_OVER_AQ, it is fine.
> More things can evolve for generic things like config space over AQ.
I am not sure what does VIRTIO_F_CFG_SPACE_OVER_AQ mean, and what are
these costs. What I had in mind is extending proposed vq transport to
support sriov. I don't see why we can not have exactly 0 bytes of memory
per VF.
And if we care about single bytes of PF memory (do we? there's only one
PF per SRIOV device ...), what we should do is a variant of pci
transport that aggressively saves memory.
--
MST
---------------------------------------------------------------------
To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
next prev parent reply other threads:[~2023-04-26 4:12 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-23 7:35 [virtio-comment] [PATCH v13] virtio-net: support inner header hash Heng Qi
2023-04-23 7:35 ` [virtio-dev] " Heng Qi
2023-04-25 20:28 ` [virtio-comment] " Parav Pandit
2023-04-25 20:28 ` [virtio-dev] " Parav Pandit
2023-04-25 21:06 ` [virtio-comment] " Michael S. Tsirkin
2023-04-25 21:06 ` [virtio-dev] " Michael S. Tsirkin
2023-04-25 21:39 ` Parav Pandit
2023-04-25 21:39 ` [virtio-dev] " Parav Pandit
2023-04-26 4:12 ` Michael S. Tsirkin [this message]
2023-04-26 4:12 ` [virtio-dev] " Michael S. Tsirkin
2023-04-26 4:27 ` Parav Pandit
2023-04-26 4:27 ` [virtio-dev] " Parav Pandit
2023-04-26 5:02 ` Michael S. Tsirkin
2023-04-26 5:02 ` [virtio-dev] " Michael S. Tsirkin
2023-04-26 13:42 ` Heng Qi
2023-04-26 13:42 ` [virtio-dev] " Heng Qi
2023-04-26 13:47 ` [virtio-comment] " Parav Pandit
2023-04-26 13:47 ` [virtio-dev] " Parav Pandit
2023-04-26 14:03 ` [virtio-comment] " Heng Qi
2023-04-26 14:03 ` [virtio-dev] " Heng Qi
2023-04-26 14:24 ` Parav Pandit
2023-04-26 14:24 ` [virtio-dev] " Parav Pandit
2023-04-26 14:57 ` Michael S. Tsirkin
2023-04-26 14:57 ` [virtio-dev] " Michael S. Tsirkin
2023-04-26 15:20 ` Parav Pandit
2023-04-26 15:20 ` [virtio-dev] " Parav Pandit
2023-04-27 2:19 ` [virtio-comment] " Heng Qi
2023-04-27 2:19 ` Heng Qi
2023-04-25 21:03 ` [virtio-comment] " Michael S. Tsirkin
2023-04-25 21:03 ` [virtio-dev] " Michael S. Tsirkin
2023-04-26 14:14 ` Heng Qi
2023-04-26 14:14 ` [virtio-dev] " Heng Qi
2023-04-26 14:48 ` Michael S. Tsirkin
2023-04-26 14:48 ` [virtio-dev] " Michael S. Tsirkin
2023-04-27 2:28 ` [virtio-comment] " Heng Qi
2023-04-27 2:28 ` Heng Qi
2023-04-27 17:13 ` [virtio-comment] " Michael S. Tsirkin
2023-04-27 17:13 ` Michael S. Tsirkin
2023-05-05 13:51 ` [virtio-comment] " Heng Qi
2023-05-05 13:51 ` [virtio-dev] " Heng Qi
2023-05-05 14:56 ` Michael S. Tsirkin
2023-05-05 14:56 ` [virtio-dev] " Michael S. Tsirkin
2023-05-09 14:22 ` [virtio-comment] " Heng Qi
2023-05-09 14:22 ` Heng Qi
2023-05-09 15:15 ` [virtio-comment] " Michael S. Tsirkin
2023-05-09 15:15 ` Michael S. Tsirkin
2023-05-10 9:15 ` [virtio-comment] " Heng Qi
2023-05-10 9:15 ` [virtio-dev] " Heng Qi
2023-05-11 6:22 ` Michael S. Tsirkin
2023-05-11 6:22 ` [virtio-dev] " Michael S. Tsirkin
2023-05-12 6:00 ` Heng Qi
2023-05-12 6:00 ` [virtio-dev] " Heng Qi
2023-05-12 6:54 ` Michael S. Tsirkin
2023-05-12 6:54 ` [virtio-dev] " Michael S. Tsirkin
2023-05-12 7:23 ` Heng Qi
2023-05-12 7:23 ` [virtio-dev] " Heng Qi
2023-05-12 11:27 ` Michael S. Tsirkin
2023-05-12 11:27 ` [virtio-dev] " Michael S. Tsirkin
2023-05-15 6:51 ` Heng Qi
2023-05-15 6:51 ` [virtio-dev] " Heng Qi
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=20230426000032-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=hengqi@linux.alibaba.com \
--cc=jasowang@redhat.com \
--cc=parav@nvidia.com \
--cc=virtio-comment@lists.oasis-open.org \
--cc=virtio-dev@lists.oasis-open.org \
--cc=xuanzhuo@linux.alibaba.com \
--cc=yuri.benditovich@daynix.com \
/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.