Hello, On 8/27/24 11:54 AM, Dragos Tatulea 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. With Dragos' permission, I'm sending a first draft of this now. > > Thanks, > Dragos Thanks, Carlos