DPDK usage discussions
 help / color / mirror / Atom feed
From: Lazaros Koromilas <l@nofutznetworks.com>
To: users@dpdk.org
Subject: [dpdk-users] Attaching to an ethernet port from a secondary process
Date: Wed, 17 Feb 2016 13:17:07 +0200	[thread overview]
Message-ID: <CAHPNE8jaQco55EZRrEXa5enBK8=vgW5TUYn8U5ey+dbbW+uS+w@mail.gmail.com> (raw)

Hi all,

I'm trying to take advantage of the multi-process support together
with the port hotplugging framework. The idea is that my primary
process will configure all ports I'm going to need and then secondary
processes will come up, selectively attach to ports and perform rx/tx.
I succeed up to the point that I attach to the pre-configured ports
but the rx/tx queue descriptors are uninitialized, so I get a segfault
there. This can be reproduced with the attached, slightly modified
examples/skeleton/basicfwd.c sdk app. I run this as follows:

sudo ./build/basicfwd -l0 -n2 --proc-type=primary --vdev
eth_pcap0,rx_pcap=pcap0-in.pcap,tx_pcap=pcap0-out.pcap --vdev
eth_pcap1,rx_pcap=pcap1-in.pcap,tx_pcap=pcap1-out.pcap
sudo ./build/basicfwd -l2 -n2 --proc-type=secondary
eth_pcap0,rx_pcap=pcap0-in.pcap,tx_pcap=pcap0-out.pcap
eth_pcap1,rx_pcap=pcap1-in.pcap,tx_pcap=pcap1-out.pcap

Where pcap{0,1}-in.pcap files are pcap dumps. The primary will
initialize the ports and pause(2). The secondary will attach to the
same ports and do work. The latter then segfaults in
rte_eth_rx_burst() with dev->data->{rx,tx}_queues being NULL pointers.

All privileged operations are done from the primary. As far as I can
tell, these are all functions in librte_ether that need to run in a
primary process:
grep -B12 PROC_PRIMARY_ rte_ethdev.c | grep '^rte_eth' | sed 's/(.*//'
rte_eth_dev_rx_queue_start
rte_eth_dev_rx_queue_stop
rte_eth_dev_tx_queue_start
rte_eth_dev_tx_queue_stop
rte_eth_dev_configure
rte_eth_dev_start
rte_eth_dev_stop
rte_eth_dev_set_link_up
rte_eth_dev_set_link_down
rte_eth_dev_close
rte_eth_rx_queue_setup
rte_eth_tx_queue_setup

Any hints are much appreciated.

Thanks!
Lazaros.

             reply	other threads:[~2016-02-17 11:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-17 11:17 Lazaros Koromilas [this message]
2016-02-17 11:40 ` Lazaros Koromilas
2016-02-19 12:58   ` Pattan, Reshma
2016-02-19 16:22     ` Lazaros Koromilas

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='CAHPNE8jaQco55EZRrEXa5enBK8=vgW5TUYn8U5ey+dbbW+uS+w@mail.gmail.com' \
    --to=l@nofutznetworks.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).