DPDK usage discussions
 help / color / mirror / Atom feed
From: "Arto Sänkiaho" <artosank@gmail.com>
To: "Zhang, Roy Fan" <roy.fan.zhang@intel.com>
Cc: "users@dpdk.org" <users@dpdk.org>
Subject: Re: [dpdk-users] Problems running test-pipeline.
Date: Sat, 9 Jan 2016 16:35:16 +0200	[thread overview]
Message-ID: <CAPrjZ69fxVMapoC_jVvrPpBsnRq4g+d1vqCuT8ZmkNaXBmk-mg@mail.gmail.com> (raw)
In-Reply-To: <568B931F.7090005@intel.com>

Hi,
i tried this out and yes, changing rte_eth_link_get_nowait() to
rte_eth_link_get()
fixes the issue.

On Tue, Jan 5, 2016 at 11:55 AM, Zhang, Roy Fan <roy.fan.zhang@intel.com>
wrote:

> Thanks.
>
> I believe the problem is that rte_eth_link_get_nowait() in
> app_ports_check_link() is a no-wait version of rte_eth_link_get() (which is
> used in testpmd), the former won't cause up to 9sec stall in the process as
> the latter, but may not get up-to-date link status of the port.
>
> Could you try, instead of using 1sec delay before app_ports_check_link(),
> but to replace rte_eth_link_get_nowait() to rte_eth_link_get(), and tell me
> if it works?
> I suppose this should be a more reliable step to guarantee that you get
> the actual link status.
>
> Regards,
> Fan
>
>
>
> On 05/01/2016 06:59, Arto Sänkiaho wrote:
>
> Thank you.
>
> This fixed the problem.
>
> It really looks like it takes a moment before the port comes up and this
> caused app_ports_check_link to fail.
>
> On Tue, Jan 5, 2016 at 12:27 AM, Vijay S <vsnv83@gmail.com> wrote:
>
>> I was able to fix this issue in test-pipeline by adding a 1 sec sleep
>> before calling app_ports_check_link in the function app_init_ports().  The
>> eth ports require some time to come up after rte_eth_dev_start..
>>
>> Thnx,
>> Vijay
>>
>>
>> On Thu, Dec 31, 2015 at 1:25 AM, Arto Sänkiaho < <artosank@gmail.com>
>> artosank@gmail.com> wrote:
>>
>>> Thanks for the quick response.
>>>
>>> The port(s) are physically connected, that is not an issue here.
>>>
>>> I have 2 nics and they are connected to each other and when i run testpmd
>>> or l2fwd or l3fwd applications, they work flawlessly.
>>>
>>> Pktgen also works without issues and i can generate traffic between the
>>> ports.
>>>
>>> The problem appears when i try to run testpipeline, it always prints out
>>> that "Some NIC ports are DOWN" and exits.
>>>
>>> Here is an output when i try to run it with links 0 and 1.
>>>
>>> $ sudo ./testpipeline -l 1,2,3 -- -p 0x03
>>> EAL: Detected lcore 0 as core 0 on socket 0
>>> EAL: Detected lcore 1 as core 0 on socket 0
>>> EAL: Detected lcore 2 as core 1 on socket 0
>>> EAL: Detected lcore 3 as core 1 on socket 0
>>> EAL: Detected lcore 4 as core 2 on socket 0
>>> EAL: Detected lcore 5 as core 2 on socket 0
>>> EAL: Detected lcore 6 as core 3 on socket 0
>>> EAL: Detected lcore 7 as core 3 on socket 0
>>> EAL: Support maximum 128 logical core(s) by configuration.
>>> EAL: Detected 8 lcore(s)
>>> EAL: VFIO modules not all loaded, skip VFIO support...
>>> EAL: Setting up physically contiguous memory...
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcda6200000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0xc00000 bytes
>>> EAL: Virtual area found at 0x7fcda5400000 (size = 0xc00000)
>>> EAL: Ask a virtual area of 0x32800000 bytes
>>> EAL: Virtual area found at 0x7fcd72a00000 (size = 0x32800000)
>>> EAL: Ask a virtual area of 0x19400000 bytes
>>> EAL: Virtual area found at 0x7fcd59400000 (size = 0x19400000)
>>> EAL: Ask a virtual area of 0x400000 bytes
>>> EAL: Virtual area found at 0x7fcd58e00000 (size = 0x400000)
>>> EAL: Ask a virtual area of 0x600000 bytes
>>> EAL: Virtual area found at 0x7fcd58600000 (size = 0x600000)
>>> EAL: Ask a virtual area of 0x69400000 bytes
>>> EAL: Virtual area found at 0x7fccef000000 (size = 0x69400000)
>>> EAL: Ask a virtual area of 0x1c00000 bytes
>>> EAL: Virtual area found at 0x7fcced200000 (size = 0x1c00000)
>>> EAL: Ask a virtual area of 0x6c00000 bytes
>>> EAL: Virtual area found at 0x7fcce6400000 (size = 0x6c00000)
>>> EAL: Ask a virtual area of 0x600000 bytes
>>> EAL: Virtual area found at 0x7fcce5c00000 (size = 0x600000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcce5800000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcce5400000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x5400000 bytes
>>> EAL: Virtual area found at 0x7fccdfe00000 (size = 0x5400000)
>>> EAL: Ask a virtual area of 0x70600000 bytes
>>> EAL: Virtual area found at 0x7fcc6f600000 (size = 0x70600000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcc6f200000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x400000 bytes
>>> EAL: Virtual area found at 0x7fcc6ec00000 (size = 0x400000)
>>> EAL: Ask a virtual area of 0x8e600000 bytes
>>> EAL: Virtual area found at 0x7fcbe0400000 (size = 0x8e600000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcbe0000000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcbdfc00000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x800000 bytes
>>> EAL: Virtual area found at 0x7fcbdf200000 (size = 0x800000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcbdee00000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x400000 bytes
>>> EAL: Virtual area found at 0x7fcbde800000 (size = 0x400000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcbde400000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x400000 bytes
>>> EAL: Virtual area found at 0x7fcbdde00000 (size = 0x400000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcbdda00000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcbdd600000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x400000 bytes
>>> EAL: Virtual area found at 0x7fcbdd000000 (size = 0x400000)
>>> EAL: Ask a virtual area of 0x400000 bytes
>>> EAL: Virtual area found at 0x7fcbdca00000 (size = 0x400000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcbdc600000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcbdc200000 (size = 0x200000)
>>> EAL: Ask a virtual area of 0x200000 bytes
>>> EAL: Virtual area found at 0x7fcbdbe00000 (size = 0x200000)
>>> EAL: Requesting 3637 pages of size 2MB from socket 0
>>> EAL: TSC frequency is ~1795854 KHz
>>> EAL: Master lcore 1 is ready (tid=a8e13940;cpuset=[1])
>>> EAL: lcore 2 is ready (tid=a7715700;cpuset=[2])
>>> EAL: lcore 3 is ready (tid=a6f14700;cpuset=[3])
>>> EAL: PCI device 0000:01:00.0 on NUMA socket -1
>>> EAL:   probe driver: 8086:1533 rte_igb_pmd
>>> EAL:   PCI memory mapped at 0x7fcda6400000
>>> EAL:   PCI memory mapped at 0x7fcda6500000
>>> PMD: eth_igb_dev_init(): port_id 0 vendorID=0x8086 deviceID=0x1533
>>> EAL: PCI device 0000:02:00.0 on NUMA socket -1
>>> EAL:   probe driver: 8086:1533 rte_igb_pmd
>>> EAL:   PCI memory mapped at 0x7fcda6504000
>>> EAL:   PCI memory mapped at 0x7fcda6604000
>>> PMD: eth_igb_dev_init(): port_id 1 vendorID=0x8086 deviceID=0x1533
>>> USER1: Creating the mbuf pool ...
>>> USER1: Initializing NIC port 0 ...
>>> PMD: eth_igb_rx_queue_setup(): sw_ring=0x7fcbdcaa7d40
>>> hw_ring=0x7fcbdcaa8180 dma_addr=0x2098a8180
>>> PMD: eth_igb_tx_queue_setup(): To improve 1G driver performance, consider
>>> setting the TX WTHRESH value to 4, 8, or 16.
>>> PMD: eth_igb_tx_queue_setup(): sw_ring=0x7fcbdca95bc0
>>> hw_ring=0x7fcbdca97c00 dma_addr=0x209897c00
>>> PMD: eth_igb_start(): <<
>>> USER1: Initializing NIC port 1 ...
>>> PMD: eth_igb_rx_queue_setup(): sw_ring=0x7fcbdca85540
>>> hw_ring=0x7fcbdca85980 dma_addr=0x209885980
>>> PMD: eth_igb_tx_queue_setup(): To improve 1G driver performance, consider
>>> setting the TX WTHRESH value to 4, 8, or 16.
>>> PMD: eth_igb_tx_queue_setup(): sw_ring=0x7fcbdca733c0
>>> hw_ring=0x7fcbdca75400 dma_addr=0x209875400
>>> PMD: eth_igb_start(): <<
>>> Port: 0
>>> USER1: Port 0 (0 Gbps) DOWN
>>> Port: 1
>>> USER1: Port 1 (0 Gbps) DOWN
>>> PANIC in app_ports_check_link():
>>> Some NIC ports are DOWN
>>> 6: [./testpipeline() [0x42b7b3]]
>>> 5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)
>>> [0x7fcda7f38ec5]]
>>> 4: [./testpipeline(main+0x34) [0x42a2f4]]
>>> 3: [./testpipeline(app_init+0x34e) [0x42c0be]]
>>> 2: [./testpipeline(__rte_panic+0xc9) [0x424d9e]]
>>> 1: [./testpipeline(rte_dump_stack+0x1a) [0x492baa]]
>>>
>>> Any ideas what's the problem here ? Is there some step i must do before
>>> running the testpipeline ?
>>>
>>> On Wed, Dec 23, 2015 at 6:15 PM, Zhang, Roy Fan <roy.fan.zhang@intel.com
>>> >
>>> wrote:
>>>
>>> > Hello,
>>> >
>>> > Thank you for using DPDK.
>>> >
>>> > testpipeline mainly passes the received packets to different tables
>>> inside
>>> > pipeline, and, if the pipeline works correctly, forwards the packets
>>> back
>>> > to output ports.
>>> >
>>> > To use testpipeline, you may have to have Ethernet packets sending to
>>> the
>>> > correct port(s) continuously.
>>> > And the only way to check if the pipeline correctly is to monitor the
>>> port
>>> > output seeing if the pipeline has forwarded the packets back. There is
>>> no
>>> > interactive commands for testpipeline.
>>> >
>>> > Please check if your port is physically connected. To avail the
>>> purpose of
>>> > testpipeline, please connect your server running the program with the
>>> with
>>> > device capable of generating and monitoring packet flows, like a packet
>>> > generator.
>>> > If the answer is yes, please bond different ports to dpdk and run the
>>> > program again.
>>> >
>>> > Regards,
>>> > Fan
>>> >
>>> > > Hello, i am new with DPDK and i am trying to run the test-pipeline
>>> > program.
>>> > >
>>> > > Here is the output when i run it:
>>> > >
>>> > > ./testpipeline -c 0x07 -- -p 0x01
>>> > > EAL: Detected lcore 0 as core 0 on socket 0
>>> > > EAL: Detected lcore 1 as core 0 on socket 0
>>> > > EAL: Detected lcore 2 as core 1 on socket 0
>>> > > EAL: Detected lcore 3 as core 1 on socket 0
>>> > > EAL: Detected lcore 4 as core 2 on socket 0
>>> > > EAL: Detected lcore 5 as core 2 on socket 0
>>> > > EAL: Detected lcore 6 as core 3 on socket 0
>>> > > EAL: Detected lcore 7 as core 3 on socket 0
>>> > > EAL: Support maximum 128 logical core(s) by configuration.
>>> > > EAL: Detected 8 lcore(s)
>>> > > EAL: VFIO modules not all loaded, skip VFIO support...
>>> > > EAL: Setting up physically contiguous memory...
>>> > > EAL: Ask a virtual area of 0x7000000 bytes
>>> > > EAL: Virtual area found at 0x7f6689400000 (size = 0x7000000)
>>> > > EAL: Ask a virtual area of 0x1c00000 bytes
>>> > > EAL: Virtual area found at 0x7f6687600000 (size = 0x1c00000)
>>> > > EAL: Ask a virtual area of 0x4000000 bytes
>>> > > EAL: Virtual area found at 0x7f6683400000 (size = 0x4000000)
>>> > > EAL: Ask a virtual area of 0x1800000 bytes
>>> > > EAL: Virtual area found at 0x7f6681a00000 (size = 0x1800000)
>>> > > EAL: Ask a virtual area of 0x200000 bytes
>>> > > EAL: Virtual area found at 0x7f6681600000 (size = 0x200000)
>>> > > EAL: Ask a virtual area of 0x11800000 bytes
>>> > > EAL: Virtual area found at 0x7f666fc00000 (size = 0x11800000)
>>> > > EAL: Ask a virtual area of 0x200000 bytes
>>> > > EAL: Virtual area found at 0x7f666f800000 (size = 0x200000)
>>> > > EAL: Requesting 256 pages of size 2MB from socket 0
>>> > > EAL: TSC frequency is ~1795851 KHz
>>> > > EAL: Master lcore 0 is ready (tid=91f13940;cpuset=[0])
>>> > > EAL: lcore 1 is ready (tid=6f7ff700;cpuset=[1])
>>> > > EAL: lcore 2 is ready (tid=6effe700;cpuset=[2])
>>> > > EAL: PCI device 0000:01:00.0 on NUMA socket -1
>>> > > EAL:   probe driver: 8086:1533 rte_igb_pmd
>>> > > EAL:   PCI memory mapped at 0x7f6690400000
>>> > > EAL:   PCI memory mapped at 0x7f6690500000
>>> > > PMD: eth_igb_dev_init(): port_id 0 vendorID=0x8086 deviceID=0x1533
>>> > > EAL: PCI device 0000:02:00.0 on NUMA socket -1
>>> > > EAL:   probe driver: 8086:1533 rte_igb_pmd
>>> > > EAL:   Not managed by a supported kernel driver, skipped
>>> > > USER1: Creating the mbuf pool ...
>>> > > USER1: Initializing NIC port 0 ...
>>> > > PMD: eth_igb_rx_queue_setup(): sw_ring=0x7f666f936dc0
>>> > > hw_ring=0x7f666f937200 dma_addr=0x208337200
>>> > > PMD: eth_igb_tx_queue_setup(): To improve 1G driver performance,
>>> > consider setting the TX WTHRESH value to 4, 8, or 16.
>>> > > PMD: eth_igb_tx_queue_setup(): sw_ring=0x7f666f924c40
>>> > > hw_ring=0x7f666f926c80 dma_addr=0x208326c80
>>> > > PMD: eth_igb_start(): <<
>>> > > USER1: Port 0 (0 Gbps) DOWN
>>> > > PANIC in app_ports_check_link():
>>> > > Some NIC ports are DOWN
>>> > > 6: [./testpipeline() [0x42b7b3]]
>>> > > 5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)
>>> > > [0x7f6691038ec5]]
>>> > > 4: [./testpipeline(main+0x34) [0x42a2f4]]
>>> > > 3: [./testpipeline(app_init+0x336) [0x42c0a6]]
>>> > > 2: [./testpipeline(__rte_panic+0xc9) [0x424d9e]]
>>> > > 1: [./testpipeline(rte_dump_stack+0x1a) [0x492b8a] $
>>> > >
>>> > > Here is the nic bind info
>>> > >
>>> > > $ dpdk_nic_bind -s
>>> > >
>>> > > Network devices using DPDK-compatible driver
>>> > ============================================
>>> > > 0000:01:00.0 'I210 Gigabit Network Connection' drv=igb_uio unused=
>>> > >
>>> > > Network devices using kernel driver
>>> > > ===================================
>>> > > 0000:00:19.0 'Ethernet Connection I218-LM' if=eth2 drv=e1000e
>>> > unused=igb_uio *Active*
>>> > > 0000:02:00.0 'I210 Gigabit Network Connection' if=eth0 drv=igb
>>> > unused=igb_uio
>>> > >
>>> > > Other network devices
>>> > > =====================
>>> > > <none>
>>> > >
>>> > > Changing port mask to 0x04 or any other value gives following error:
>>> > >
>>> > > ./testpipeline -c 0x07 -- -p 0x04
>>> > > EAL: Detected lcore 0 as core 0 on socket 0
>>> > > EAL: Detected lcore 1 as core 0 on socket 0
>>> > > EAL: Detected lcore 2 as core 1 on socket 0
>>> > > EAL: Detected lcore 3 as core 1 on socket 0
>>> > > EAL: Detected lcore 4 as core 2 on socket 0
>>> > > EAL: Detected lcore 5 as core 2 on socket 0
>>> > > EAL: Detected lcore 6 as core 3 on socket 0
>>> > > EAL: Detected lcore 7 as core 3 on socket 0
>>> > > EAL: Support maximum 128 logical core(s) by configuration.
>>> > > EAL: Detected 8 lcore(s)
>>> > > EAL: VFIO modules not all loaded, skip VFIO support...
>>> > > EAL: Setting up physically contiguous memory...
>>> > > EAL: Ask a virtual area of 0x7000000 bytes
>>> > > EAL: Virtual area found at 0x7fceeb000000 (size = 0x7000000)
>>> > > EAL: Ask a virtual area of 0x1c00000 bytes
>>> > > EAL: Virtual area found at 0x7fcee9200000 (size = 0x1c00000)
>>> > > EAL: Ask a virtual area of 0x4000000 bytes
>>> > > EAL: Virtual area found at 0x7fcee5000000 (size = 0x4000000)
>>> > > EAL: Ask a virtual area of 0x1800000 bytes
>>> > > EAL: Virtual area found at 0x7fcee3600000 (size = 0x1800000)
>>> > > EAL: Ask a virtual area of 0x200000 bytes
>>> > > EAL: Virtual area found at 0x7fcee3200000 (size = 0x200000)
>>> > > EAL: Ask a virtual area of 0x11800000 bytes
>>> > > EAL: Virtual area found at 0x7fced1800000 (size = 0x11800000)
>>> > > EAL: Ask a virtual area of 0x200000 bytes
>>> > > EAL: Virtual area found at 0x7fced1400000 (size = 0x200000)
>>> > > EAL: Requesting 256 pages of size 2MB from socket 0
>>> > > EAL: TSC frequency is ~1795851 KHz
>>> > > EAL: Master lcore 0 is ready (tid=f3c37940;cpuset=[0])
>>> > > EAL: lcore 1 is ready (tid=d13ff700;cpuset=[1])
>>> > > EAL: lcore 2 is ready (tid=d0bfe700;cpuset=[2])
>>> > > EAL: PCI device 0000:01:00.0 on NUMA socket -1
>>> > > EAL:   probe driver: 8086:1533 rte_igb_pmd
>>> > > EAL:   PCI memory mapped at 0x7fcef2000000
>>> > > EAL:   PCI memory mapped at 0x7fcef2100000
>>> > > PMD: eth_igb_dev_init(): port_id 0 vendorID=0x8086 deviceID=0x1533
>>> > > EAL: PCI device 0000:02:00.0 on NUMA socket -1
>>> > > EAL:   probe driver: 8086:1533 rte_igb_pmd
>>> > > EAL:   Not managed by a supported kernel driver, skipped
>>> > > USER1: Creating the mbuf pool ...
>>> > > USER1: Initializing NIC port 2 ...
>>> > > PANIC in app_init_ports():
>>> > > Cannot init NIC port 2 (-22)
>>> > > 6: [./testpipeline() [0x42b7b3]]
>>> > > 5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)
>>> > > [0x7fcef2d5cec5]]
>>> > > 4: [./testpipeline(main+0x34) [0x42a2f4]]
>>> > > 3: [./testpipeline(app_init+0x3a2) [0x42c112]]
>>> > > 2: [./testpipeline(__rte_panic+0xc9) [0x424d9e]]
>>> > > 1: [./testpipeline(rte_dump_stack+0x1a) [0x492b8a]]
>>> > >
>>> > > What i'm doing wrong here ?
>>> > >
>>> > > There is probably some configuration step missing or misconfiguration
>>> > but i could not figure out what it is.
>>> > >
>>> > > Thank you in advance.
>>> >
>>>
>>
>>
>
>
>

  reply	other threads:[~2016-01-09 14:35 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAPrjZ68W1+w-oqDN_9YqWM8T7_evDvq7U-+JsjaiyLniTz-X+Q@mail.gmail.com>
2015-12-23 16:15 ` Zhang, Roy Fan
2015-12-31  9:25   ` Arto Sänkiaho
2016-01-04 16:03     ` Zhang, Roy Fan
2016-01-04 22:27     ` Vijay S
2016-01-05  6:59       ` Arto Sänkiaho
2016-01-05  9:55         ` Zhang, Roy Fan
2016-01-09 14:35           ` Arto Sänkiaho [this message]
2021-09-24 18:09 Jimmy Bauer

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=CAPrjZ69fxVMapoC_jVvrPpBsnRq4g+d1vqCuT8ZmkNaXBmk-mg@mail.gmail.com \
    --to=artosank@gmail.com \
    --cc=roy.fan.zhang@intel.com \
    --cc=users@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).