From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 411021CCEC for ; Thu, 5 Apr 2018 19:43:13 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Apr 2018 10:43:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,411,1517904000"; d="scan'208";a="31021124" Received: from dpdk06.sh.intel.com ([10.67.110.196]) by orsmga007.jf.intel.com with ESMTP; 05 Apr 2018 10:43:11 -0700 From: Jianfeng Tan To: dev@dpdk.org Cc: thomas@monjalon.net, Jianfeng Tan Date: Thu, 5 Apr 2018 17:44:58 +0000 Message-Id: <1522950303-17206-1-git-send-email-jianfeng.tan@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH v2 0/5] allow procinfo and pdump on eth vdev X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Apr 2018 17:43:13 -0000 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