[dpdk-dev] [Bug 179] mp_socket is not well handled when secondary process is exited

bugzilla at dpdk.org bugzilla at dpdk.org
Fri Jan 4 12:02:26 CET 2019


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

            Bug ID: 179
           Summary: mp_socket is not well handled when secondary process
                    is exited
           Product: DPDK
           Version: 18.11
          Hardware: x86
                OS: Linux
            Status: CONFIRMED
          Severity: critical
          Priority: Normal
         Component: other
          Assignee: dev at dpdk.org
          Reporter: danielbenliye at gmail.com
  Target Milestone: ---

I am running dpdk-pdump and found the mp socket (see below output) it created
is not deleted when dpdk-pdump is exited. Now it can work because when
dpdk-dump call rte_eal_init(), rte_bus_scan() will be called and the file will
be removed. The path rte_bus_scan() -> bus->scan() -> vdev_scan() ->
rte_mp_request_sync() -> mp_request_sync() -> send_msg() -> sendmsg() will
eventually delete the mp_socket_* which is retained by last run.

--------
root at n14-045-219:~# ls /var/run/dpdk/rte/mp_socket_*
/var/run/dpdk/rte/mp_socket_21695_4467ff77b19ec2
--------

I do think this is not expected. When a secondary process is exited, the mp
socket file should be cleared in some way.

You can have the following way to reproduce it.
1. You need to change dpdk-pdump to call rte_eal_hotplug_remove("vdev",
vdev_name) when dpdk-pdump is exited. Otherwise dpdk-pdump can only run once as
vdev is not freed.
2. Run dpdk-pdump twice with testpmd, you will see the second run will fail
because of it send request to the mp_socket which is retained by last run.
    testpmd command:  testpmd -l 0-1 -n 4 --master-lcore 0 -- -a
    pdump comman: dpdk-pdump -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap'

Please take a look at this and fix it.

Thanks,
Daniel

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


More information about the dev mailing list