Thread (15 messages) 15 messages, 4 authors, 2024-08-28

Re: [RFC] Why is set_config not supported in mlx5_vnet?

From: Jason Wang <jasowang@redhat.com>
Date: 2024-08-28 01:52:54
Also in: kvm, lkml, virtualization

On Wed, Aug 28, 2024 at 12:55 AM Dragos Tatulea [off-list ref] wrote:


On 27.08.24 04:03, Jason Wang wrote:
quoted
On Tue, Aug 27, 2024 at 12:11 AM Dragos Tatulea [off-list ref] wrote:
quoted

On 26.08.24 16:24, Andrew Lunn wrote:
quoted
On Mon, Aug 26, 2024 at 11:06:09AM +0200, Dragos Tatulea wrote:
quoted

On 23.08.24 18:54, Carlos Bilbao wrote:
quoted
Hello,

I'm debugging my vDPA setup, and when using ioctl to retrieve the
configuration, I noticed that it's running in half duplex mode:

Configuration data (24 bytes):
  MAC address: (Mac address)
  Status: 0x0001
  Max virtqueue pairs: 8
  MTU: 1500
  Speed: 0 Mb
  Duplex: Half Duplex
  RSS max key size: 0
  RSS max indirection table length: 0
  Supported hash types: 0x00000000

I believe this might be contributing to the underperformance of vDPA.
mlx5_vdpa vDPA devicess currently do not support the VIRTIO_NET_F_SPEED_DUPLEX
feature which reports speed and duplex. You can check the state on the
PF.
Then it should probably report DUPLEX_UNKNOWN.

The speed of 0 also suggests SPEED_UNKNOWN is not being returned. So
this just looks buggy in general.
The virtio spec doesn't mention what those values should be when
VIRTIO_NET_F_SPEED_DUPLEX is not supported.

Jason, should vdpa_dev_net_config_fill() initialize the speed/duplex
fields to SPEED/DUPLEX_UNKNOWN instead of 0?
Spec said

"""
The following two fields, speed and duplex, only exist if
VIRTIO_NET_F_SPEED_DUPLEX is set.
"""

So my understanding is that it is undefined behaviour, and those
fields seems useless before feature negotiation. For safety, it might
be better to initialize them as UNKOWN.
After a closer look my statement doesn't make sense: the device will copy
the virtio_net_config bytes on top.

The solution is to initialize these fields to UNKNOWN in the driver. Will send
a patch to fix this.
For "driver", I guess you meant virtio-net?

Thanks
Thanks,
Dragos
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help