From: Stephen Hemminger <stephen@networkplumber.org>
To: Walter de Donato <walter.dedonato@unina.it>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] Multi-process on the same host
Date: Fri, 4 Oct 2013 09:38:52 -0700 [thread overview]
Message-ID: <20131004093852.03ccedf5@nehalam.linuxnetplumber.net> (raw)
In-Reply-To: <CAPRxaNTGf83D30c==aTWWBSDaiVZu1OZbatBtbAWaW=Xksn9wQ@mail.gmail.com>
On Fri, 4 Oct 2013 13:47:02 +0200
Walter de Donato <walter.dedonato@unina.it> wrote:
> Hello,
>
> I've been using DPDK for a while and now I encountered the following issue:
> when I try to run two primary processes on the same host (with --no-shconf
> option enabled) respectively sending packets on one port and receiving them
> on a different port (the two ports are directly connected with a CAT-6
> cable), I get this error on the receiving process:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00000000004158a0 in rte_eth_rx_burst (port_id=0 '\000', queue_id=0,
> rx_pkts=0x7ffff5baa8f0, nb_pkts=128) at
> /home/devel/dpdk/build/include/rte_ethdev.h:1658
> 1658 return (*dev->rx_pkt_burst)(dev->data->rx_queues[queue_id],
> rx_pkts, nb_pkts);
>
> To give some more details:
> - the options given to the two processes:
> ./receiver -c 0x3 -n 2 -m 200 --no-shconf -- -p 0x1
> ./sender -c 0xc -n 2 -m 200 --no-shconf -- -p 0x2
> where the -p option is the binary mask to select the ports to enable.
> - the network card is a dualport Intel X540:
> port 0: Intel Corporation Ethernet Controller 10 Gigabit X540-AT2 (rev 01)
> port 1: Intel Corporation Ethernet Controller 10 Gigabit X540-AT2 (rev 01)
> - this is the hugeadm --pool-list output:
> Size Minimum Current Maximum Default
> 1073741824 2 2 2 *
>
> My first question is: should it be possible to let separate primary
> processes coexist if they use different resources (cores, ports, memory
> pools)?
>
> A second question is: there is any other workaround to let this scenario
> work without merging the two processes into two lcores of the same process?
>
> Thanks in advance,
> -Walter
The problem is that huge TLB filesystem is a shared resource.
Because of that the memory pools of the two processes overlap, and memory pools
are used for packet buffers, malloc, etc.
You might be able to use no-huge, but then other things would probably break.
next prev parent reply other threads:[~2013-10-04 16:38 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-04 11:47 Walter de Donato
2013-10-04 16:38 ` Stephen Hemminger [this message]
2013-10-04 16:45 ` Richardson, Bruce
2013-10-04 20:32 ` Walter de Donato
2013-10-05 11:25 ` Thomas Monjalon
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=20131004093852.03ccedf5@nehalam.linuxnetplumber.net \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=walter.dedonato@unina.it \
/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).