From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 3C30C5909 for ; Thu, 11 Sep 2014 15:10:38 +0200 (CEST) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP; 11 Sep 2014 06:07:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.97,862,1389772800"; d="scan'208";a="384718622" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by FMSMGA003.fm.intel.com with ESMTP; 11 Sep 2014 06:10:42 -0700 Received: from sivswdev02.ir.intel.com (sivswdev02.ir.intel.com [10.237.217.46]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id s8BDFmtq002137; Thu, 11 Sep 2014 14:15:48 +0100 Received: from sivswdev02.ir.intel.com (localhost [127.0.0.1]) by sivswdev02.ir.intel.com with ESMTP id s8BDFmMC023598; Thu, 11 Sep 2014 14:15:48 +0100 Received: (from bricha3@localhost) by sivswdev02.ir.intel.com with id s8BDFlAL023594; Thu, 11 Sep 2014 14:15:47 +0100 From: Bruce Richardson To: dev@dpdk.org Date: Thu, 11 Sep 2014 14:15:34 +0100 Message-Id: <1410441347-22840-1-git-send-email-bruce.richardson@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1409759378-10113-1-git-send-email-bruce.richardson@intel.com> References: <1409759378-10113-1-git-send-email-bruce.richardson@intel.com> Subject: [dpdk-dev] [PATCH v2 00/13] Mbuf Structure Rework, part 2 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Sep 2014 13:10:38 -0000 This patch set continues on from the changes in part 1, and depends upon that patch set. This patch set reorders the fields in the mbuf structure and splits the structure across two cache lines, given lots of new space for new fields to be added. This set uses some of that space by expanding the ol_flags field. A part 3 patchset is planned to introduce some other new fields into the new mbuf structure. With the splitting of the mbuf across multiple cache lines, performance degradations are seen inside the drivers, both fast-path and slow path. For the fast-path, this patchset reworks the way in which the pool pointer is used to free packets post-TX, which removes the perf regression. For the slow path, an alternative approach is taken - a new scattered packets RX function is introduced into the vector PMD. Using this function, throughput for the slow path RX-TX using testpmd is increased by up to 20% over the original baseline. Changes in V2: * General minor updates follow comments on V1 set * Updated a number of patches to include KNI mbuf changes where needed * Deferred the patch to add the packet type field to a future patch set * After removing meta-data element from mbuf structure also added in patch to move the macros to rte_port/rte_port.h Bruce Richardson (11): mbuf: reorder fields by time of use mbuf: expand ol_flags field to 64-bits mbuf: introduce a flag to indicate a control mbuf mbuf: minor changes for readability mbuf: use macros only to access the mbuf metadata mbuf: add named points inside the mbuf structure ixgbe: rework vector pmd following mbuf changes mbuf: split mbuf across two cache lines. mbuf: move l2_len and l3_len to second cache line ixgbe: Fix perf regression due to moved pool ptr ixgbe: Improve slow-path perf: vector scattered RX Olivier Matz (1): mbuf: replace data pointer by an offset app/test-pmd/config.c | 8 +- app/test-pmd/csumonly.c | 10 +- app/test-pmd/flowgen.c | 2 +- app/test-pmd/icmpecho.c | 2 +- app/test-pmd/ieee1588fwd.c | 4 +- app/test-pmd/macfwd-retry.c | 2 +- app/test-pmd/macfwd.c | 2 +- app/test-pmd/macswap.c | 2 +- app/test-pmd/rxonly.c | 4 +- app/test-pmd/testpmd.c | 2 +- app/test-pmd/testpmd.h | 4 +- app/test-pmd/txonly.c | 9 +- app/test/packet_burst_generator.c | 7 +- app/test/test_mbuf.c | 8 +- app/test/test_table_acl.c | 7 +- app/test/test_table_pipeline.c | 8 +- examples/exception_path/main.c | 3 +- examples/vhost/main.c | 37 +- examples/vhost_xen/main.c | 14 +- .../linuxapp/eal/include/exec-env/rte_kni_common.h | 20 +- lib/librte_eal/linuxapp/kni/kni_net.c | 18 +- lib/librte_ip_frag/rte_ipv4_fragmentation.c | 6 +- lib/librte_ip_frag/rte_ipv6_fragmentation.c | 6 +- lib/librte_mbuf/rte_mbuf.c | 10 +- lib/librte_mbuf/rte_mbuf.h | 139 ++++---- lib/librte_pmd_bond/rte_eth_bond_pmd.c | 4 +- lib/librte_pmd_e1000/em_rxtx.c | 46 ++- lib/librte_pmd_e1000/igb_rxtx.c | 75 ++-- lib/librte_pmd_i40e/i40e_rxtx.c | 48 +-- lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 100 +++--- lib/librte_pmd_ixgbe/ixgbe_rxtx.h | 24 +- lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 389 +++++++++++++-------- lib/librte_pmd_pcap/rte_eth_pcap.c | 9 +- lib/librte_pmd_virtio/virtio_rxtx.c | 10 +- lib/librte_pmd_virtio/virtqueue.h | 3 +- lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 5 +- lib/librte_pmd_xenvirt/rte_eth_xenvirt.c | 2 +- 37 files changed, 586 insertions(+), 463 deletions(-) -- 1.9.3