[dpdk-dev] ixgbe network card has dev_info.max_rx_queues == 0

Sergey Mironov grrwlf at gmail.com
Fri Aug 22 09:12:21 CEST 2014


Thanks, I understand that. I see in the ixgbe's code, that
dev_info.max_rx_queues is initialized from the hw->mac.max_rx_queues
value

    dev_info->max_rx_queues = (uint16_t)hw->mac.max_rx_queues;
    dev_info->max_tx_queues = (uint16_t)hw->mac.max_tx_queues;

but I can't figure out how this hw->mac is produced. Is it mapped to
the memory region controlled by the network adapter directly?



2014-08-21 16:52 GMT+04:00 Alex Markuze <alex at weka.io>:
> RX and TX Are short hand for Receive and Transmit Queues.
> These Queues Store the in/egress packets.
>
> Just looking at the info you've sent it tells you that max_rx_queues
> for this dev is 0 (Clearly something is wrong here) so the nb_rx_q
> which is 3 is an Invalid Value -EINVAL == -22.
>
> On Thu, Aug 21, 2014 at 3:26 PM, Sergey Mironov <grrwlf at gmail.com> wrote:
>> Hi. I have face a strange error on one of my network cards. Call to
>> rte_eth_dev_configure returns with error code -22. Increaing the
>> verbosity level shows the following:
>>
>>
>> PMD: rte_eth_dev_configure: ethdev port_id=2 nb_rx_queues=3 > 0
>> EAL: Error - exiting with code: 1
>>
>> here is the snippet of code which returns the error
>>
>>
>> ./lib/librte_ether/rte_ethdev.c : 513
>>
>>     (*dev->dev_ops->dev_infos_get)(dev, &dev_info);
>>     if (nb_rx_q > dev_info.max_rx_queues) {
>>         PMD_DEBUG_TRACE("ethdev port_id=%d nb_rx_queues=%d > %d\n",
>>                 port_id, nb_rx_q, dev_info.max_rx_queues);
>>         return (-EINVAL);
>>     }
>>
>> What does this error means (what is rx queues of an adapter?) What may
>> cause such a problem? I am using dpdk 1.5.1r1.
>>
>> Thanks in advance,
>> Sergey


More information about the dev mailing list