> -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Jianfeng Tan > Sent: Friday, April 6, 2018 1:45 AM > To: dev@dpdk.org > Cc: tho...@monjalon.net; Tan, Jianfeng <jianfeng....@intel.com> > Subject: [dpdk-dev] [PATCH v2 0/5] allow procinfo and pdump on eth vdev > > v2: > - Add spinlock for vdev device list as suggested by Anatoly. > - Add ring, cxgbe and remove the free in each PMDs as suggested by > Matan. > - Rebase on master. > > As we know, we have below limitations in vdev: > - dpdk-procinfo cannot get the stats of (most) vdev in primary process; > - dpdk-pdump cannot dump the packets for (most) vdev in primary proces; > - secondary process cannot use (most) vdev in primary process. > > The very first reason is that the secondary process actually does not know the > existence of those vdevs as vdevs are chained on a linked list, and not > shareable to secondary. > > In this patch series, we would like to propose a vdev sharing model like this: > - As a secondary process boots, all devices (including vdev) in primary > will be automatically shared. After both primary and secondary process > booted, > - Device add/remove in primary will be translated to device hog > plug/unplug > event in secondary processes. (TODO) > - Device add in secondary > * If that kind of device support multi-process, the secondary will > request the primary to probe the device and the primary to share > it to the secondary. It's not necessary to have secondary-private > device in this case. (TODO) > * If that kind of device does not support multi-process, the secondary > will probe the device by itself, and the port id is shared among > all primary/secondary processes. > > This patch series don't: > - provide secondary data path (Rx/Tx) support for each specific vdev. > > How to test: > > Step 0: start testpmd with a vhost port; and a VM connected to the vhost > port. > > Step 1: try using dpdk-procinfo to get the stats. > $(dpdk-procinfo) --log-level=8 --no-pci -- --stats > > Step 2: try using dpdk-pdump to dump the packets. > $(dpdk-pdump) -- --pdump 'port=0,queue=*,rx-dev=/tmp/rx.pcap' > > Jianfeng Tan (5): > eal: bring forward multi-process channel init > bus/vdev: add lock on vdev device list > bus/vdev: bus scan by multi-process channel > drivers/net: not use private eth dev data > drivers/net: share vdev data to secondary process > > drivers/bus/vdev/Makefile | 1 + > drivers/bus/vdev/vdev.c | 187 > ++++++++++++++++++++++++++---- > drivers/net/af_packet/rte_eth_af_packet.c | 43 +++---- > drivers/net/bonding/rte_eth_bond_pmd.c | 13 +++ > drivers/net/cxgbe/cxgbe_main.c | 1 - > drivers/net/failsafe/failsafe.c | 14 +++ > drivers/net/kni/rte_eth_kni.c | 26 +++-- > drivers/net/null/rte_eth_null.c | 32 ++--- > drivers/net/octeontx/octeontx_ethdev.c | 29 ++--- > drivers/net/pcap/rte_eth_pcap.c | 32 ++--- > drivers/net/ring/rte_eth_ring.c | 17 +-- > drivers/net/softnic/rte_eth_softnic.c | 19 ++- > drivers/net/tap/rte_eth_tap.c | 24 ++-- > drivers/net/vhost/rte_eth_vhost.c | 36 +++--- > lib/librte_eal/bsdapp/eal/eal.c | 23 ++-- > lib/librte_eal/linuxapp/eal/eal.c | 23 ++-- > 16 files changed, 354 insertions(+), 166 deletions(-) > > -- > 2.7.4
Reviewed-by: Qi Zhang <qi.z.zh...@intel.com> Also tested with af_packet and dpdk-procinfo / dpdk-dump, patches works as expected. Regards Qi