[dpdk-dev] [Bug 284] Secondary not able to Rx/TX after primary dies in symmetric multiprocess

bugzilla at dpdk.org bugzilla at dpdk.org
Thu May 23 16:23:18 CEST 2019


https://bugs.dpdk.org/show_bug.cgi?id=284

            Bug ID: 284
           Summary: Secondary not able to Rx/TX after primary dies in
                    symmetric multiprocess
           Product: DPDK
           Version: 18.11
          Hardware: x86
                OS: Linux
            Status: CONFIRMED
          Severity: major
          Priority: Normal
         Component: other
          Assignee: dev at dpdk.org
          Reporter: oleksandr.gromovskyi at harmonicinc.com
  Target Milestone: ---

In our project we plan to use symmetric multiprocessing to have redundancy on
application level. So if primary crashes secondary still can process packets
from the eth ports.
But currently i see that when primary is alive secondary can receive the data
from port and everything works as expected, but after primary dies secondary
also stop receiving the data.
I tested same in symmetric_mp example and problem is same.
According to documentation:
https://doc.dpdk.org/guides-18.11/sample_app_ug/multi_process.html
    ...
        it is not necessary to restart all processes if the primary instance
dies. Instead, that process can be restarted as a secondary, 
    ...

I'm executing primary and secondary with next two commands

./build/symmetric_mp -c 1 -n 4 --proc-type=auto -- -p 3 --num-procs=2
--proc-id=0
./build/symmetric_mp -c 2 -n 4 --proc-type=auto -- -p 3 --num-procs=2
--proc-id=1

I modified the code to print statistics each second and see rx/tx increasing
but only till primary is alive.

EAL: Detected 4 lcore(s)
EAL: Detected 1 NUMA nodes
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Probing VFIO support...
EAL: PCI device 0000:01:00.0 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:10fb net_ixgbe
EAL: PCI device 0000:01:00.1 on NUMA socket -1
EAL:   Invalid NUMA socket, default to 0
EAL:   probe driver: 8086:10fb net_ixgbe
# Initialising port 0... # Initialising port 1...
Checking link status...done
Port0 Link Up. Speed 10000 Mbps - full-duplex
Port1 Link Up. Speed 10000 Mbps - full-duplex
APP: Finished Process Init.
Lcore 0 using ports 0 1
lcore 0 using queue 0 of each port
Port 0: RX - 0, TX - 0, Drop - 0
Port 1: RX - 0, TX - 0, Drop - 0

Port 0: RX - 0, TX - 1, Drop - 0
Port 1: RX - 1, TX - 0, Drop - 0

Port 0: RX - 0, TX - 2, Drop - 0
Port 1: RX - 2, TX - 0, Drop - 0

Port 0: RX - 0, TX - 3, Drop - 0
Port 1: RX - 3, TX - 0, Drop - 0

Port 0: RX - 0, TX - 4, Drop - 0
Port 1: RX - 4, TX - 0, Drop - 0

Restarting of primary as secondary

./build/symmetric_mp -c 1 -n 4 --proc-type=secondary -- -p 3 --num-procs=2
--proc-id=0

does not help. Only stop of all applications and starting of primary again
makes rx/tx working again.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the dev mailing list