[dpdk-users] Why we need [MASTER] in DPDK Pipeline

Royce Niu royceniu at gmail.com
Thu Mar 24 08:16:29 CET 2016


Thanks! Your explanation is quite clear.

But, we I assign one core to VM and use this one core to start the
pipeline. It shows :

sudo ./build/ip_pipeline -f l2fwd.cfg -p 0x6
[APP] Initializing CPU core map ...
PANIC in app_init_core_map():
Cannot create CPU core map
6: [./build/ip_pipeline() [0x431b43]]
5: [/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)
[0x7efdd5090ec5]]
4: [./build/ip_pipeline(main+0x5f) [0x4306ff]]
3: [./build/ip_pipeline(app_init+0x14fb) [0x43f7ab]]
2: [./build/ip_pipeline(__rte_panic+0xc9) [0x42b11a]]
1: [./build/ip_pipeline(rte_dump_stack+0x1a) [0x4c9fba]]


The config is :


[PIPELINE0]
type = MASTER
core = 0

[PIPELINE1]
type = PASS-THROUGH
core = 0
pktq_in = RXQ0.0 RXQ1.0
pktq_out = TXQ1.0 TXQ0.0



The VM start cmd is :
sudo taskset 0x10 ./qemu-system-x86_64* -enable-kvm -cpu host -m 1024M -smp
sockets=1,cores=1* -netdev tap,id=hostnet0 -device
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:5e:cc:f0
/trunk/template.img -chardev socket,id=char0,path=/tmp/sn_vhost_vh0 -netdev
type=vhost-user,id=mynet0,chardev=char0,vhostforce -device
virtio-net-pci,netdev=mynet0,mac=52:54:00:02:d9:00 -chardev
socket,id=char1,path=/tmp/sn_vhost_vh1 -netdev
type=vhost-user,id=mynet1,chardev=char1,vhostforce -device
virtio-net-pci,netdev=mynet1,mac=52:54:00:02:d9:01 -object
memory-backend-file,id=mem,size=1024M,mem-path=/dev/hugepages,share=on
-numa node,memdev=mem -mem-prealloc -chardev pty,id=charserial0 -device
isa-serial,chardev=charserial0,id=serial0


However, when I assign two vCPUs to the VM and assign P0 and P1 in
different vCPU. Everything is right.










On Thu, Mar 24, 2016 at 4:06 AM, Singh, Jasvinder <jasvinder.singh at intel.com
> wrote:

> Hi Royce,
>
> > -----Original Message-----
> > From: users [mailto:users-bounces at dpdk.org] On Behalf Of Royce Niu
> > Sent: Wednesday, March 23, 2016 3:51 PM
> > To: users at dpdk.org
> > Subject: [dpdk-users] Why we need [MASTER] in DPDK Pipeline
> >
> > Dear all,
> >
> > I am using DPDK Pipeline to build a Firewall. I found assign a core to
> MASTER.
> > Could you please tell me why we need MASTER? and why MASTER need a
> > dedicated core ? since I meet error to bind MASTER and Firewall to same
> > core.
> >
>
> Master pipeline, basically is a management thread that allow users to
> interact and manage ip-pipeline application during run time. It offers CLI
> to configure ports, collecting stats, add/remove table entries, loading
> rules files, displaying rules, quit etc. Therefore, the master pipeline
> receives inputs from the user, translates them into formal command and
> forwards command to the desired pipeline (data plane thread). The packet
> processing pipeline which is continuously working on the packets
> periodically checks whether there is any command to handle or not, and
> execute them accordingly if there is any. In addition to this, master
> pipeline also maintains a copy of all the tables used in pipelines. If user
> wants to inspect the rules, master pipeline will display them without
> interrupting data plane thread.
>
> Now, if anyone don't want to assign dedicated core to master pipeline,
> then it should also work. However, a slight impact on the performance may
> be visible depending the commands being run.
>
> In your case, you can bind both master and firewall pipelines to single
> core and they should work correctly.
>
> Thanks.
>
> Regards,
> Jasvinder
>



-- 
Regards,

Royce Niu


More information about the users mailing list