Michael S. Tsirkin
2023-Mar-21 09:29 UTC
[PATCH v3 2/2] vdpa/mlx5: Make VIRTIO_NET_F_MRG_RXBUF off by default
On Tue, Mar 21, 2023 at 11:24:34AM +0200, Eli Cohen wrote:> > On 20/03/2023 22:02, Michael S. Tsirkin wrote: > > On Mon, Mar 20, 2023 at 01:49:30PM +0200, Eli Cohen wrote: > > > One can still enable it when creating the vdpa device using vdpa tool by > > > providing features that include it. > > > > > > For example: > > > $ vdpa dev add name vdpa0 mgmtdev pci/0000:86:00.2 device_features 0x300cb982b > > > > > > Please be aware that this feature was not supported before the previous > > > patch in this list was introduced so we don't change user experience. > > so I would say the patches have to be reordered to avoid a regression? > Yes, I can do that. > > > > > Current firmware versions show degradation in packet rate when using > > > MRG_RXBUF. Users who favor memory saving over packet rate could enable > > > this feature but we want to keep it off by default. > > > > > > Signed-off-by: Eli Cohen <elic at nvidia.com> > > OK and when future firmware will (maybe) fix this up how > > will you know it's ok to enable by default? > > Some version check I guess? > > It would be better if firmware specified flags to enable > > by default ... > Currently there are no flags for that so let's just keep the default off.Right but I mean, why are mrg buffers slow? It's a firmware bug right?> > > > > --- > > > drivers/vdpa/mlx5/net/mlx5_vnet.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c > > > index 5285dd76c793..24397a71d6f3 100644 > > > --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c > > > +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c > > > @@ -3146,6 +3146,8 @@ static int mlx5_vdpa_dev_add(struct vdpa_mgmt_dev *v_mdev, const char *name, > > > return -EINVAL; > > > } > > > device_features &= add_config->device_features; > > > + } else { > > > + device_features &= ~BIT_ULL(VIRTIO_NET_F_MRG_RXBUF); > > > } > > > if (!(device_features & BIT_ULL(VIRTIO_F_VERSION_1) && > > > device_features & BIT_ULL(VIRTIO_F_ACCESS_PLATFORM))) { > > > -- > > > 2.38.1