All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heng Qi <hengqi@linux.alibaba.com>
To: Parav Pandit <parav@nvidia.com>
Cc: Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	"virtio-comment@lists.linux.dev" <virtio-comment@lists.linux.dev>,
	Jason Wang <jasowang@redhat.com>,
	"Michael   S .   Tsirkin" <mst@redhat.com>
Subject: Re: RE: RE: RE: RE: RE: [PATCH v2] virtio-net: improve description of default coalescing parameters
Date: Wed, 22 May 2024 10:11:46 +0800	[thread overview]
Message-ID: <1716343906.6530488-1-hengqi@linux.alibaba.com> (raw)
In-Reply-To: <PH0PR12MB5481AC22EC51E2FF94B25EBEDCEA2@PH0PR12MB5481.namprd12.prod.outlook.com>

On Tue, 21 May 2024 13:55:19 +0000, Parav Pandit <parav@nvidia.com> wrote:
> 
> > From: Heng Qi <hengqi@linux.alibaba.com>
> > Sent: Tuesday, May 21, 2024 3:34 PM
> > 
> > On Tue, 21 May 2024 06:02:15 +0000, Parav Pandit <parav@nvidia.com>
> > wrote:
> > >
> > >
> > > > From: Heng Qi <hengqi@linux.alibaba.com>
> > > > Sent: Tuesday, May 21, 2024 7:54 AM
> > > > On Tue, 14 May 2024 13:09:32 +0000, Parav Pandit <parav@nvidia.com>
> > > > wrote:
> > > > >
> > > > > > From: Heng Qi <hengqi@linux.alibaba.com>
> > > > > > Sent: Tuesday, May 14, 2024 1:23 PM
> > > > > >
> > > > > > On Tue, 14 May 2024 07:48:55 +0000, Parav Pandit
> > > > > > <parav@nvidia.com>
> > > > > > wrote:
> > > > > > >
> > > > > > >
> > > > > > > > From: Heng Qi <hengqi@linux.alibaba.com>
> > > > > > > > Sent: Tuesday, May 14, 2024 11:23 AM
> > > > > > > >
> > > > > > > > On Tue, 14 May 2024 03:59:52 +0000, Parav Pandit
> > > > > > > > <parav@nvidia.com>
> > > > > > > > wrote:
> > > > > > > > > Hi Heng,
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > From: Heng Qi <hengqi@linux.alibaba.com>
> > > > > > > > > > Sent: Monday, May 13, 2024 6:27 PM
> > > > > > > > > >
> > > > > > > > > > Currently, a device may initialize each vq's coalescing
> > > > > > > > > > parameters to empirically non-zero values, so the
> > > > > > > > > > description of this part is supplemented for the virtio spec.
> > > > > > > > > >
> > > > > > > > > Currently the spec says to initialize the vq's coalescing
> > > > > > > > > parameters to
> > > > zero.
> > > > > > > > >
> > > > > > > > > Spec snippet: " Upon reset, a device MUST initialize all
> > > > > > > > > coalescing
> > > > > > > > parameters to 0."
> > > > > > > > >
> > > > > > > > > So I didn't understand why you say "current the device may
> > > > initialize".
> > > > > > > > >
> > > > > > > > > Do you mean, you want to change the spec to say, by
> > > > > > > > > default the device has
> > > > > > > > chosen to set zero or non-zero default parameter as it likes.
> > > > > > > > > (and not zero).
> > > > > > > >
> > > > > > > > Yes.
> > > > > > > >
> > > > > > > > If a device supports interrupt coalescing moderation, it
> > > > > > > > usually has a non- zero default value to provide better performance.
> > > > > > > When VIRTIO_NET_F_VQ_NOTF_COAL or VIRTIO_NET_F_NOTF_COAL
> > is
> > > > not
> > > > > > negotiated, the device can apply any notification coalescing value.
> > > > > > > (assuming EVENT_IDX is off).
> > > > > > >
> > > > > > > But when they above features are negotiated, it is expected
> > > > > > > that driver is going to driver it,
> > > > > >
> > > > > > The driver drives the runtime parameters without conflicting
> > > > > > with the initial default values.
> > > > > > And most users/drivers without dim enable may not drive it.
> > > > > >
> > > > > There is no conflict in runtime or default parameters.
> > > > > For driver it starts after 10msec or 4 minutes, both are runtime
> > parameters.
> > > > >
> > > > > > The device need to be defensive about default performance.
> > > > > >
> > > > > The device can surely offer the default performance with non zero
> > > > > default
> > > > values.
> > > >
> > > > That's what I'm mentioning.
> > > >
> > > > >
> > > > > > >in such case what is the good motivation to start with some
> > > > > > >arbitrary
> > > > value?
> > > > > > >
> > > > > > > > I'm trying to fix this, and
> > > > > > > > we shouldn't force the device to always initialize with 0.
> > > > > > > >
> > > > > > > If driver is in control, driver decides what values to set.
> > > > > > > And hence, arbitrary value is
> > > > > >
> > > > > > Then maybe the driver is never set and the device uses a 0 which
> > > > > > messes up most data scenarios.
> > > > > >
> > > > > If driver does not want to set it, why did it enable the feature in first
> > place?
> > > > > So asking again, is it because driver enabled featured too early
> > > > > in the driver
> > > > load sequence, and not DIM is also disabled?
> > > >
> > > > I don't see the connection.
> > > >
> > > There is a connection.
> > >
> > > Basically, what you want is,
> > >
> > > 1. Driver negotiates feature bits during driver load.
> > >
> > > 2. Driver or user sometimes never configures the right coalescing
> > parameters.
> > >
> > > 3. Device to continue to apply the best coalescing parameters, typically keeps
> > changing based on the workload.
> > 
> > Wait. Why does the device keeping changing the coalescing parameters if the
> > driver does not modify parameters? Do you mean some kind of hw-DIM
> > running on the device?
> >
> Yes, If the device can choose one sane default one time to reduce performance regression, it likely can do few more times too.

Ok, I think we are now on a line:). I agree with this -->
I saw that some devices have hw-DIM or device-side dim, but in general,
many devices only have default values and no hardware DIM.

More below.

>  
> > > The device to keep doing this until the driver takes the control of doing it by-
> > itself.
> > > For example via net-dim enablement or user doing via ethtool.
> > 
> > Right.
> > 
> > >
> > > So what is needed is, not just have _one_ default value, but the device ability
> > to constantly applying notification coalescing as desired.
> > 
> > The "default parameters" I'm talking about is the "initial parameters", are we
> > on the same line?
> Yes, but it does not have to be the initial parameters if the intention is to avoid the performance regression.

I'm not sure if most devices carry hw-dim or device-side dim, but for those
devices that are not with hw-dim, there will be a default value, whether it is
0 or non-zero. It is necessary to allow users to query this value.

Right?

> 
> > 
> > >
> > > When the driver issues the VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET
> > command
> > > for the first time onwards, at that point, the device receives the
> > hint/indication, That now on, driver is in the control, hence the device should
> > stop applying its own logic.
> > >
> > > Just one default is not enough.
> > > And feature negotiation is of no help here at such an early stage.
> > >
> > > This is the limitation of feature bits negotiation and for now we need to live it
> > it.
> > >
> > > And heavy alternative that I prefer to avoid is keep the notification features
> > disabled at default, re-initialize the driver when user enables the notification
> > coaleasing.
> > > However, this is disruptive enough.
> > >
> > > So I propose that we draft the spec in device requirements as:.
> > >
> > > The device MAY apply any notification coalescing values when
> > VIRTIO_NET_F_VQ_NOTF_COAL or VIRTIO_NET_F_NOTF_COAL is negotiated,
> > until driver instruct the values for the first time.
> > > Once the driver has performed VIRTIO_NET_F_VQ_NOTF_COAL command
> > for a VQ or VIRTIO_NET_F_NOTF_COAL command for set of VQs, after that the
> > device SHOULD generate notifications based on driver supplied parameters.
> > 
> > I've always agreed with this.
> >
> Ok. so lets please rephase this proposal to define how a devices should behave.

Ok. V3 will rephase the text.

> 
>  
> > >
> > > > >
> > > > > If feature is negotiated, than DIM can be enabled by default, and
> > > > > therefore
> > > > there is no need for the defaults?
> > > >
> > > > Right. But if DIM is not enabled (pls remember that DIM is just one
> > > > of the application scenarios of VQ_NOTF_COAL, right?), the user can
> > > > query the initial value of the device, which may be any value.
> > > >
> > > It is going to be just more than initial value, as device will have to keep
> > changing the value.
> > >
> > > > >
> > > > > Or you are saying, that enabling DIM as default has some issue,
> > > > > and until
> > > > that point you prefer to have some default in the device?
> > > >
> > > > Partly true. The complete purpose is that the device can have any
> > > > default values
> > > > (0 or non-zero).
> > > >
> > > > >
> > > > > > Cloud vendors cannot do this. And I don’t seem to see any
> > > > > > interference with other devices from this proposal?
> > > > > > If the device does not want a non-zero value, a value of 0 can
> > > > > > be used as the default value.
> > > > > >
> > > > > I didn’t understand above.
> > > > >
> > > > > > >
> > > > > > > > Especially when the DIM is disabled from the enabled state,
> > > > > > > > allowing the driver to restore default parameters for device
> > > > > > > > will prevent occasional performance degradation.
> > > > > > > >
> > > > > > > When DIM is disabled, do you mean driver does not have any
> > > > > > > good
> > > > defaults?
> > > > > >
> > > > > > DIM is not guaranteed to have a friendly value when disabled.
> > > > > >
> > > > > I didn’t follow.
> > > > >
> > > > > (a) When DIM is enabled, DIM decides the value.
> > > > > (b) When DIM is disabled, zero is not good default in the device.
> > > > > Did I
> > > > understand right?
> > > > >
> > > > > I agree with (a) and (b).
> > > >
> > > > Right.
> > > >
> > > > >
> > > > > > > I guess this issue surfaces from the feature negotiation
> > > > > > > limitation that, it
> > > > > > must be done early enough before DRIVER_OK.
> > > > > > > And DIM is still disabled in driver.
> > > > > >
> > > > > > We lack the capability filed of default coalescing parameters,
> > > > > > so GET is used to alleviate this.
> > > > > >
> > > > > When GET is not supported, ethtool should get -ENOSUPP instead of 0.
> > > >
> > > > We don't have a separate feature bit for GET, right? So if
> > > > VQ_NOTF_COAL is negotiated, the device supports the GET command.
> > > >
> > > Yes, I meant to say that VIRTIO_NET_CTRL_NOTF_COAL and VQ_NOTF_COAL
> > both may not be offered.
> > > When only VIRTIO_NET_CTRL_NOTF_COAL is done, the driver can report -
> > ENOSUPP.
> > >
> > 
> > I think "VIRTIO_NET_F_NOTF_COAL" and VQ_NOTF_COAL both may not be
> > offered?
> > 
> Right. Don’t see a value of F_NOTF_COAL, once the VQ_NOTF_COAL is offered.
> 
> > 
> > >
> > > > >
> > > > > > >
> > > > > > > That explains.
> > > > > > >
> > > > > > > Commit log needs to explain this limitation and the gain by
> > > > > > > relaxing it to be
> > > > > > non-zero.
> > > > > > >
> > > > > > > Any reason DIM is disabled by default in the driver?
> > > > > > > If VQ_NOTF_COAL is supported by device, DIM should be enabled
> > > > > > > by
> > > > > > default.
> > > > > >
> > > > > > virtio-net support for netdim needs to be optimized. Of course,
> > > > > > I also found that other network cards also have optimization points.
> > > > > >
> > > > > > I'm trying to enable DIM for upstream by default, after I've
> > > > > > done the profile list tuning etc.
> > > > > >
> > > > > > >
> > > > > > > > >
> > > > > > > > > > Since the VIRTIO_NET_F_NOTF_COAL feature does not
> > > > > > > > > > provide a related GET command or config field, we still
> > > > > > > > > > consider its default values
> > > > > > to be 0.
> > > > > > > > > >
> > > > > > > > > The behavior for VIRTIO_NET_F_NOTF_COAL and
> > > > > > > > VIRTIO_NET_F_VQ_NOTF_COAL can stay same for the default value.
> > > > > > > > > Can you please explain the motivation for running
> > > > > > > > > different default values
> > > > > > > > for two different features in this commit log?
> > > > > > > >
> > > > > > > > The current spec leaves coalescing parameters for both features at 0.
> > > > > > > >
> > > > > > > > F_VQ_NOTF_COAL provides a GET command, that is, non-zero 0
> > > > > > > > can be obtained by the driver from the device, but
> > > > > > > > F_NOTF_COAL does not have a similar GET command.
> > > > > > > >
> > > > > > > GET command doesn't give the ability to define the defaults.
> > > > > > > So both can have non zero defaults.
> > > > > >
> > > > > > Makes sense.
> > > > > >
> > > > > > >
> > > > > > > > So when vq reset occurs or dim is disabled from the enabled
> > > > > > > > state, the driver with F_VQ_NOTF_COAL negotiated has the
> > > > > > > > ability to restore non-zero values, but only when
> > > > > > > > F_NOTF_COAL is negotiated, the driver has no path to obtain
> > > > > > > > the non-zero value, let alone restore non-zero
> > > > > > values.
> > > > > > > >
> > > > > > > When F_NOTF_COAL is negotiated, if the device has its non zero
> > > > > > > defaults,
> > > > > > why does driver need to restore anything?
> > > > > >
> > > > > > Yes, device will set these.
> > > > > >
> > > > > Ok. so no restore needed.
> > > > >
> > > > > > > > >
> > > > > > > > > > Suggested-by: Jason Wang <jasowang@redhat.com>
> > > > > > > > > > Signed-off-by: Heng Qi <hengqi@linux.alibaba.com>
> > > > > > > > > > ---
> > > > > > > > > > v1->v2:
> > > > > > > > > >   - Update description @Jason.
> > > > > > > > > >
> > > > > > > > > >  device-types/net/description.tex | 22
> > > > > > > > > > +++++++++++++++-------
> > > > > > > > > >  1 file changed, 15 insertions(+), 7 deletions(-)
> > > > > > > > > >
> > > > > > > > > > diff --git a/device-types/net/description.tex b/device-
> > > > > > > > > > types/net/description.tex index 61cce1f..cf4b12c 100644
> > > > > > > > > > --- a/device-types/net/description.tex
> > > > > > > > > > +++ b/device-types/net/description.tex
> > > > > > > > > > @@ -1805,6 +1805,10 @@ \subsubsection{Control
> > > > > > > > > > Virtqueue}\label{sec:Device Types / Network Device /
> > > > > > > > > > Devi
> > > > > > > > > >
> > > > > > > > > >  The device may generate notifications more or less
> > > > > > > > > > frequently than specified by set commands of the
> > > > > > > > > > VIRTIO_NET_CTRL_NOTF_COAL
> > > > > > class.
> > > > > > > > > >
> > > > > > > > > > +If the VIRTIO_NET_F_VQ_NOTF_COAL feature is offered,
> > > > > > > > > > +the device may initialize the coalescing parameters for
> > > > > > > > > > +each transmit or receive virtqueue to non-zero values,
> > > > > > > > > > +otherwise, to 0, which are called default
> > > > > > > > > > coalescing parameters.
> > > > > > > > > > +
> > > > > > > > > Instead of 'offered', it should be 'negotiated'. Because
> > > > > > > > > if may be offered,
> > > > > > > > but driver may not have enabled it.
> > > > > > > >
> > > > > > > > I do not think so.
> > > > > > > >
> > > > > > > > Even if the driver does not negotiate, as long as the device
> > > > > > > > has the ability to adjust coalescing parameters (i.e.
> > > > > > > > offered), the device will initialize any values.
> > > > > > > >
> > > > > > > The device can initialize coalescing parameters regardless of
> > > > > > > VQ_NOTF_COAL
> > > > > > offered or not.
> > > > > > >
> > > > > >
> > > > > > Right.
> > > > > >
> > > > > > >
> > > > > > > > >
> > > > > > > > > >  If coalescing parameters are being set, the device
> > > > > > > > > > applies the last coalescing parameters set for a
> > > > > > > > > > virtqueue, regardless of the command used to set the
> > > > > > > > > > parameters. Use the following command sequence  with two
> > > > > > > > > > pairs of virtqueues as
> > > > an example:
> > > > > > > > > > @@ -1873,6 +1877,10 @@ \subsubsection{Control
> > > > > > > > > > Virtqueue}\label{sec:Device Types / Network Device /
> > > > > > > > > > Devi
> > > > > > > > > >
> > > > > > > > > >  The driver MUST ignore the values of coalescing
> > > > > > > > > > parameters received from the
> > > > > > > > > > VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET
> > > > command
> > > > > > > > > > if the device responds with VIRTIO_NET_ERR.
> > > > > > > > > >
> > > > > > > > > > +If the VIRTIO_NET_F_VQ_NOTF_COAL feature is negotiated,
> > > > > > > > > > +the driver
> > > > > > > > > > MUST
> > > > > > > > > > +get coalescing parameters for each enabled transmit or
> > > > > > > > > > +receive virtqueue through the
> > > > > > > > > > +VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET
> > > > > > > > command
> > > > > > > > > > after a successful device reset.
> > > > > > > > > > +
> > > > > > > > > The driver is free to not call GET call at all. It can always just do set.
> > > > > > > > > So it cannot be must requirement for the driver to get them.
> > > > > > > >
> > > > > > > > This is mainly forced to MUST during the probe phase.
> > > > > > > > Other timings, the existing spec has already described it clearly.
> > > > > > > >
> > > > > > > I don't see it is needed to force driver to read.
> > > > > > > Why is it must for the driver to read it? It can operate without read.
> > > > > >
> > > > > > Otherwise the device has a non-zero default value, but users
> > > > > > using ethtool -c see a value of 0.
> > > > > >
> > > > > When GET is supported, ethtool callback should query the current value.
> > > > > Driver can read it once at start time, but it is not a MUST requirement.
> > > > > Driver can read it runtime too. It is the driver implementation choice.
> > > > > We don’t need to tell in the spec, when driver MUST read it.
> > > >
> > > > I agree with this.
> > > >
> > > > >
> > > > > > >
> > > > > > > > >
> > > > > > > > > The wording should be, the driver MAY get ...
> > > > > > > > >
> > > > > > > > > >  \devicenormative{\subparagraph}{Notifications
> > > > > > > > > > Coalescing}{Device Types / Network Device / Device
> > > > > > > > > > Operation / Control Virtqueue / Notifications
> > > > > > > > > > Coalescing}
> > > > > > > > > >
> > > > > > > > > >  The device MUST ignore \field{reserved}.
> > > > > > > > > > @@ -1884,18 +1892,18 @@ \subsubsection{Control
> > > > > > > > > > Virtqueue}\label{sec:Device Types / Network Device /
> > > > > > > > > > Devi The device MUST respond to
> > > > VIRTIO_NET_CTRL_NOTF_COAL_VQ_SET
> > > > > > > > > > and VIRTIO_NET_CTRL_NOTF_COAL_VQ_GET commands with
> > > > > > > > VIRTIO_NET_ERR if
> > > > > > > > > > the designated virtqueue is not an enabled transmit or
> > > > > > > > > > receive
> > > > > > virtqueue.
> > > > > > > > > >
> > > > > > > > > > -Upon disabling and re-enabling a transmit virtqueue,
> > > > > > > > > > the device MUST set the coalescing parameters of the
> > > > > > > > > > virtqueue -to those configured through the
> > > > > > > > > > VIRTIO_NET_CTRL_NOTF_COAL_TX_SET
> > > > > > > > command, or,
> > > > > > > > > > if the driver did not set any TX coalescing parameters, to 0.
> > > > > > > > > > -
> > > > > > > > > > -Upon disabling and re-enabling a receive virtqueue, the
> > > > > > > > > > device MUST set the coalescing parameters of the
> > > > > > > > > > virtqueue -to those configured through the
> > > > > > > > > > VIRTIO_NET_CTRL_NOTF_COAL_RX_SET
> > > > > > command,
> > > > > > > > > > or, if the driver did not set any RX coalescing parameters, to 0.
> > > > > > > > > > -
> > > > > > > > > >  The behavior of the device in response to set commands
> > > > > > > > > > of the VIRTIO_NET_CTRL_NOTF_COAL class is best-effort:
> > > > > > > > > >  the device MAY generate notifications more or less
> > > > > > > > > > frequently than specified.
> > > > > > > > > >
> > > > > > > > > >  A device SHOULD NOT send used buffer notifications to
> > > > > > > > > > the driver if the notifications are suppressed, even if
> > > > > > > > > > the notification conditions are
> > > > > > > > met.
> > > > > > > > > >
> > > > > > > > > > -Upon reset, a device MUST initialize all coalescing
> > > > > > > > > > parameters to
> > > > 0.
> > > > > > > > > > +Upon reset, a device MUST set default coalescing
> > > > > > > > > > +parameters for all transmit or receive virtqueues.
> > > > > > > > > > +
> > > > > > > > > The device MAY set parameters to zero or non zero values..
> > > > > > > >
> > > > > > > > Ok.
> > > > > > > >
> > > > > > > > > I am still missing the motivation part of why to set non
> > > > > > > > > zero value, even if
> > > > > > > > the driver has negotiated the feature.
> > > > > > > >
> > > > > > > > Please see the above description.
> > > > > > > >
> > > > > > > If I understood is right, the case is:
> > > > > > > _VQ_NOTF_COAL is negotiated, and DIM is disabled.
> > > > > > > And device is unable to apply some good non zero defaults.
> > > > > >
> > > > > >
> > > > > > If _VQ_NOTF_COAL is negotiated, and DIM is disabled:
> > > > > >
> > > > > > 1. The device wants to set a non-zero value for good perf,
> > > > > >    but the user sees a value of 0.
> > > > > >
> > > > > The only limitation that we want to remove is, on device reset,
> > > > > the device
> > > > may have any default value.
> > > >
> > > > Right, and the driver may query the value using the GET command.
> > > >
> > > > >
> > > > > > 2. When the user has not actively modified the value, DIM
> > > > > > switches from
> > > > the
> > > > > >    enabled state to the disabled state, then the driver expects to issue a
> > > > > >    setting command with a default value. To avoid performance
> > > > degradation
> > > > > >    caused by a bad value.
> > > > > >
> > > > > This #2 seems like some hack. Should I read the Linux code in this area?
> > > >
> > > > No. This is some kind of performance optimization at the code level.
> > > > When DIM is turned off, the driver configures default values for the
> > > > device to avoid any big performance regression.
> > > >
> > > If the driver configures the default, we don’t need device to apply any
> > defaults.
> > 
> > when does the driver configure the default value (actually I mean the initial
> > value) and how does the driver know which default (initial value) value applies
> > to all devices?
> > 
> I don’t think the driver can apply.
> I understood that you wanted the driver to configure some default from what you wrote as 
> " When DIM is turned off, the driver configures default values for the device to avoid any big performance regression."

Maybe I didn't describe it clearly, consider the following scenario:
1. The driver may obtain the initial value. If not, the value is 0. ---> This initial value called default value.
2. User query the coalescing parameters.  ---> Driver return the default value.
3. dim is disabled from enabled state -> Driver restores the device using the default value obtained from the device.

Thanks.

> 
> > Thanks.
> > 
> > > I thought your intention was, the driver does not know what is the best
> > notification rate to configure and feature is enabled in the device.
> > > And the device does not have any good defaults (because driver is not
> > configuring any defaults).
> > >
> > > But here you say, the driver configures the drefault. I am lost. ☹
> > >
> > > > >
> > > > > > We assume that most users do not have the prerequisite knowledge
> > > > > > to modify coalecing parameters.
> > > > > >
> > > > > Right. Hence the DIM should be used.
> > > > > When DIM is not used, a non zero default is good to have.
> > > > > (without forcing the driver to read it).
> > > >
> > > > +1
> > > >
> > > > Thanks.
> > > >
> > > > >
> > > > > > Thanks.
> > > > > >
> > > > > > >
> > > > > > > Right?
> > > > > > >
> > > > > > >
> > > > > > > > Thanks.
> > > > > > > >
> > > > > > > > >
> > > > > > > > > > +Regardless of whether the coalescing parameters have
> > > > > > > > > > +been overridden by set commands from the
> > > > > > VIRTIO_NET_CTRL_NOTF_COAL
> > > > > > > > > > +class, upon
> > > > > > > > > > disabling
> > > > > > > > > > +and re-enabling a transmit or receive virtqueue, the
> > > > > > > > > > +device MUST set the previous parameters for the virtqueue.
> > > > > > > > > >
> > > > > > > > > >  \paragraph{Device Statistics}\label{sec:Device Types /
> > > > > > > > > > Network Device / Device Operation / Control Virtqueue /
> > > > > > > > > > Device Statistics}
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > 2.32.0.3.g01195cf9f
> > > > > > > > >
> > > > >
> > >
> 

  reply	other threads:[~2024-05-22  2:40 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20240513125634.102955-1-hengqi@linux.alibaba.com>
     [not found] ` <PH0PR12MB54815E887B1010D2AE96CEACDCE32@PH0PR12MB5481.namprd12.prod.outlook.com>
     [not found]   ` <1715665954.5198457-1-hengqi@linux.alibaba.com>
     [not found]     ` <PH0PR12MB5481EAD646ECB0CBF979FFC7DCE32@PH0PR12MB5481.namprd12.prod.outlook.com>
     [not found]       ` <1715673206.4680686-3-hengqi@linux.alibaba.com>
     [not found]         ` <PH0PR12MB5481CAFB5B39638566238063DCE32@PH0PR12MB5481.namprd12.prod.outlook.com>
2024-05-21  2:24           ` RE: RE: RE: [PATCH v2] virtio-net: improve description of default coalescing parameters Heng Qi
2024-05-21  6:02             ` Parav Pandit
2024-05-21 10:03               ` Heng Qi
2024-05-21 13:55                 ` Parav Pandit
2024-05-22  2:11                   ` Heng Qi [this message]
2024-05-22  3:44                     ` Parav Pandit
2024-05-22  3:49                       ` Heng Qi
2024-05-23  3:58                         ` 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=1716343906.6530488-1-hengqi@linux.alibaba.com \
    --to=hengqi@linux.alibaba.com \
    --cc=jasowang@redhat.com \
    --cc=mst@redhat.com \
    --cc=parav@nvidia.com \
    --cc=virtio-comment@lists.linux.dev \
    --cc=xuanzhuo@linux.alibaba.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.