DPDK usage discussions
 help / color / mirror / Atom feed
From: "Zhang, Roy Fan" <roy.fan.zhang@intel.com>
To: "Arto Sänkiaho" <artosank@gmail.com>
Cc: "users@dpdk.org" <users@dpdk.org>
Subject: Re: [dpdk-users] Problems running test-pipeline.
Date: Tue, 5 Jan 2016 09:55:43 +0000	[thread overview]
Message-ID: <568B931F.7090005@intel.com> (raw)
In-Reply-To: <CAPrjZ6_0M+EcimbwSxT802F=tiBKQVD0OgXOvCAseNM1Szuosg@mail.gmail.com>

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 
> <mailto: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
>     <mailto: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 <mailto: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-05  9:55 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 [this message]
2016-01-09 14:35           ` Arto Sänkiaho
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=568B931F.7090005@intel.com \
    --to=roy.fan.zhang@intel.com \
    --cc=artosank@gmail.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).