From: "Michael S. Tsirkin" <mst@redhat.com>
To: Heng Qi <hengqi@linux.alibaba.com>
Cc: Alvaro Karsz <alvaro.karsz@solid-run.com>,
virtio-comment@lists.oasis-open.org,
virtio-dev@lists.oasis-open.org, Parav Pandit <parav@nvidia.com>,
Yuri Benditovich <yuri.benditovich@daynix.com>,
Jason Wang <jasowang@redhat.com>,
Cornelia Huck <cohuck@redhat.com>,
Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Subject: Re: [virtio-dev] Re: [virtio-comment] [PATCH v3] virtio-net: support the virtqueue coalescing moderation
Date: Fri, 17 Feb 2023 05:09:05 -0500 [thread overview]
Message-ID: <20230217050730-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20230217100603.GA73221@h68b04307.sqa.eu95>
On Fri, Feb 17, 2023 at 06:06:03PM +0800, Heng Qi wrote:
> On Fri, Feb 17, 2023 at 11:40:15AM +0200, Alvaro Karsz wrote:
> > > > Maybe we can use struct virtio_net_ctrl_coal inside struct
> > > > virtio_net_ctrl_coal_vq instead of repeating max_usecs and
> > > > max_packets?
> > > > I'm not sure if it would be confusing, what do you think?
> > > >
> > >
> > > Hi Alvaro.
> > >
> > > I guess you mean one of the following two forms:
> > >
> > > #1
> > > struct virtio_net_ctrl_coal {
> > > le32 max_packets;
> > > le32 max_usecs;
> > > };
> > >
> > > struct virtio_net_ctrl_coal_vq {
> > > le16 vqn;
> > > le16 reserved;
> > > struct virtio_net_ctrl_coal coal;
> > > } coal_vq;
> > >
> > > #2
> > > struct virtio_net_ctrl_coal {
> > > le32 max_packets;
> > > le32 max_usecs;
> > > le16 vqn; // if _F_VQ_NOTF_COAL is negotiated
> > > le16 reserved; // if _F_VQ_NOTF_COAL is negotiated
> > > };
> > >
> > > If it's #1, I think the format is a bit ugly, it's not semantic to use coal_vq to send global commands when _F_VQ_NOTF_COAL is not negotiated, and the presence of vqn and reserved is awkward.
> > > If it's #2, I think this is a bit like the v1 version, using virtio_net_ctrl_coal as a virtual queue to send commands does not seem to be semantic, but it is indeed more unified in function.
> > >
> > > I think we should hear from Michael and Parav.
> > >
> >
> > I meant #1.
> > We can see virtio_net_ctrl_coal as a struct holding coalescing
> > parameters, regardless of the commands.
> > Yes, let's wait for more comments on that.
> >
> > > > > +Virtqueue coalescing parameters:
> > > > > +\begin{itemize}
> > > > > +\item \field{vqn}: The virtqueue number of the enabled transmit or receive virtqueue, excluding the control virtqueue.
> > > > > +\item \field{max_packets}: The maximum number of packets sent/received by the specified virtqueue before a TX/RX notification.
> > > > > +\item \field{max_usecs}: The maximum number of TX/RX usecs that the specified virtqueue delays a TX/RX notification.
> > > > > +\end{itemize}
> > > > > +
> > > > > +\field{reserved} is reserved and it is ignored by the device.
> > > > > +
> > > >
> > > > max_packets is the same with VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET and with
> > > > VIRTIO_NET_CTRL_NOTF_COAL_[T/R]X_SET.
> > > > ("Maximum number of packets to receive/send before a RX/TX notification").
> > > > The fact that this is applied to all VQs or to a specific one is
> > > > derived from the command.
> > > > Same for max_usecs.
> > > > Maybe we can join the coalescing parameters somehow instead of
> > > > repeating the explanations?
> > > >
> >
> > Any thoughts on this part?
>
> Good idea, and if so, is there a good way to expose vqn to the interpretation of max_packets ?
not sure what you are asking here.
>
> #1
> \item \field{vqn}: The virtqueue number of the enabled transmit or receive virtqueue.
an enabled - 1st time you mention a virtqueue.
> \item \field{max_packets}: The maximum number of packets sent/received by the specified virtqueue before a TX/RX notification.
>
> #2
> \item \field{max_packets}: Maximum number of packets to receive/send before a RX/TX notification.
>
> Thanks.
next prev parent reply other threads:[~2023-02-17 10:09 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-16 14:43 [PATCH v3] virtio-net: support the virtqueue coalescing moderation Heng Qi
2023-02-16 14:49 ` [virtio-dev] " Heng Qi
2023-02-16 15:12 ` Parav Pandit
2023-02-16 16:08 ` Michael S. Tsirkin
2023-02-17 6:14 ` [virtio-comment] " Heng Qi
2023-02-16 16:17 ` Michael S. Tsirkin
2023-02-17 5:24 ` Heng Qi
2023-02-17 10:37 ` Michael S. Tsirkin
2023-02-17 11:17 ` [virtio-comment] Re: [virtio-dev] " Alvaro Karsz
2023-02-17 11:35 ` Michael S. Tsirkin
2023-02-17 12:17 ` Alvaro Karsz
2023-02-17 16:11 ` [virtio-comment] " Parav Pandit
2023-02-17 16:12 ` Parav Pandit
2023-02-17 17:17 ` Heng Qi
2023-02-17 17:22 ` [virtio-comment] " Parav Pandit
2023-02-17 13:50 ` Parav Pandit
2023-02-17 16:43 ` Heng Qi
2023-02-17 2:47 ` Parav Pandit
2023-02-17 4:56 ` [virtio-comment] Re: [virtio-dev] " Heng Qi
2023-02-17 8:42 ` [virtio-comment] " Alvaro Karsz
2023-02-17 9:31 ` [virtio-dev] " Heng Qi
2023-02-17 9:40 ` Alvaro Karsz
2023-02-17 10:06 ` Heng Qi
2023-02-17 10:09 ` Michael S. Tsirkin [this message]
2023-02-17 10:07 ` Michael S. Tsirkin
2023-02-17 15:54 ` Parav Pandit
2023-02-17 16:36 ` [virtio-comment] " Heng Qi
2023-02-17 10:04 ` Michael S. Tsirkin
2023-02-17 10:09 ` [virtio-comment] " 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=20230217050730-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=alvaro.karsz@solid-run.com \
--cc=cohuck@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.