From: Sergey Mironov <grrwlf@gmail.com>
To: "dev@dpdk.org" <dev@dpdk.org>
Subject: [dpdk-dev] Fwd: ixgbe network card has dev_info.max_rx_queues == 0
Date: Mon, 25 Aug 2014 13:41:34 +0400 [thread overview]
Message-ID: <CAMOkk_Yxm2MArXWhr4ZxVr=4ii4zoe1VSy=GYW7sy+F40Sfn8Q@mail.gmail.com> (raw)
In-Reply-To: <CAMOkk_Zew6uTrStxhTUD11etxRZoMmYkqqD_fM54kaRra+O-aQ@mail.gmail.com>
Forgot to CC to all
---------- Forwarded message ----------
From: Sergey Mironov <grrwlf@gmail.com>
Date: 2014-08-25 13:40 GMT+04:00
Subject: Re: [dpdk-dev] ixgbe network card has dev_info.max_rx_queues == 0
To: Alex Markuze <alex@weka.io>
Hi. I've found more data on this issue. My machine (CB-8970) is
equipped with two ixgbe and six e1000 ports + one more e1000 port as
management interface.
I ask the DPDK to allocate 3 TX queues and 3 RX queues for each of 8
working ports, 6 * 8 = 48 queues (see the configuration code snippet
at the end of the letter)
As a result, I see the message I posted in my first letter:
PMD: rte_eth_dev_configure: ethdev port_id=2 nb_rx_queues=3 > 0
EAL: Error - exiting with code: 1
At the same time, if I configure only two ixgbe ports by filtering out
others with --use-device, everything works fine. It gives me the idea,
that my system has a limited resource 'number of queues' and all the
cards share it. Am I correct? Is it possible to view the total amount
of queues available for my system?
Regards,
Sergey
PS configuration code
for (portid = 0; portid < nb_ports; portid++) {
ret = rte_eth_dev_configure((uint8_t) portid, // portid
nb_lcores, // nb_lcores == 3
nb_lcores, // nb_lcores == 3
&port_conf);
if (ret < 0) {
rte_exit(EXIT_FAILURE, "Cannot configure device: "
"err=%d, port=%u\n",
ret, portid);
}
...
}
2014-08-23 20:15 GMT+04:00 Alex Markuze <alex@weka.io>:
> I can onlt gues. But it is common to use memory mapped IO that is. The cpu
> can access some part of the nics memory via the pci bus just like it would
> acess its own RAM.
> So its possible these region addresses are stored in a BAR. Base address
> region.
>
> On Aug 22, 2014 10:12 AM, "Sergey Mironov" <grrwlf@gmail.com> wrote:
>>
>> 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@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@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
next prev parent reply other threads:[~2014-08-25 9:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-21 12:26 [dpdk-dev] " Sergey Mironov
2014-08-21 12:52 ` Alex Markuze
2014-08-22 7:12 ` Sergey Mironov
[not found] ` <CAKfHP0V=1Er=ecZfgbepG_JV63f9YLG9DtP7tasDg+Wk_phFFA@mail.gmail.com>
[not found] ` <CAMOkk_Zew6uTrStxhTUD11etxRZoMmYkqqD_fM54kaRra+O-aQ@mail.gmail.com>
2014-08-25 9:41 ` Sergey Mironov [this message]
2014-08-26 0:14 ` [dpdk-dev] Fwd: " Stephen Hemminger
2014-08-26 7:26 ` Sergey Mironov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMOkk_Yxm2MArXWhr4ZxVr=4ii4zoe1VSy=GYW7sy+F40Sfn8Q@mail.gmail.com' \
--to=grrwlf@gmail.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).