On Wed, Aug 28, 2024 at 12:55 AM Dragos Tatulea <dtatulea@xxxxxxxxxx> wrote: > > > > On 27.08.24 04:03, Jason Wang wrote: > > On Tue, Aug 27, 2024 at 12:11 AM Dragos Tatulea <dtatulea@xxxxxxxxxx> wrote: > >> > >> > >> On 26.08.24 16:24, Andrew Lunn wrote: > >>> On Mon, Aug 26, 2024 at 11:06:09AM +0200, Dragos Tatulea wrote: > >>>> > >>>> > >>>> On 23.08.24 18:54, Carlos Bilbao wrote: > >>>>> 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 >