On Tue, 1 Oct 2024 18:09:17 +0200
Edwin Brossette <edwin.brosse...@6wind.com> wrote:

> testpmd> port stop 3  
> Stopping ports...
> Done
> 
>  -> Then, change something in the port config. This will trigger a call  
> to rte_eth_dev_configure() on the next port start. Here I change the link
> speed/duplex:
> testpmd> port config 3 speed 10000 duplex full
> testpmd>  
> 
>  -> Finally, try to start the port:  
> 
> testpmd> port start 3  
> Configuring Port 3 (socket 0)
> hn_nvs_alloc_subchans(): nvs subch alloc failed: 0x2
> hn_dev_configure(): subchannel configuration failed
> ETHDEV: Port3 dev_configure = -5
> Fail to configure port 3  <------
> 
> 
> As you can see, the port configuration fails.
> The error happens in hn_nvs_alloc_subchans(). Maybe the previous ressources
> were not properly deallocated on port stop?

A "channel" is the VMBUS instance used to communicate with the host.
The "sub-channel" is a the secondary channel associated with multi-queue.

There does not appear to be an NVSP operation to deallocate secondary
channels. Other versions (FreeBSD, Linux) do not allow reconfiguring
the number of queues; instead the subchannels are created when device
is attached.

Looks like a VMBUS protocol limitation in the internal API's.

When using failsafe/tun the driver is actually faking the number of queues.
Since TAP device queues are between userspace (DPDK PMD) and the kernel.
They TAP queues are not necessarily associated with the netvsc kernel driver 
queues.

Reply via email to