From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id C9E0DB4CD for ; Wed, 18 Feb 2015 12:03:13 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP; 18 Feb 2015 02:57:47 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,512,1418112000"; d="scan'208";a="653742453" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by orsmga001.jf.intel.com with ESMTP; 18 Feb 2015 03:03:06 -0800 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 t1IB34MI022802 for ; Wed, 18 Feb 2015 11:03:04 GMT Received: from sivswdev02.ir.intel.com (localhost [127.0.0.1]) by sivswdev02.ir.intel.com with ESMTP id t1IB34hc004226 for ; Wed, 18 Feb 2015 11:03:04 GMT Received: (from smonroy@localhost) by sivswdev02.ir.intel.com with id t1IB33oA004222 for dev@dpdk.org; Wed, 18 Feb 2015 11:03:03 GMT From: Sergio Gonzalez Monroy To: dev@dpdk.org Date: Wed, 18 Feb 2015 11:03:01 +0000 Message-Id: <1424257383-4177-1-git-send-email-sergio.gonzalez.monroy@intel.com> X-Mailer: git-send-email 1.8.5.4 In-Reply-To: <1424102913-18944-1-git-send-email-sergio.gonzalez.monroy@intel.com> References: <1424102913-18944-1-git-send-email-sergio.gonzalez.monroy@intel.com> Subject: [dpdk-dev] [PATCH v2 0/2] Removal of RTE_MBUF_REFCNT 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: Wed, 18 Feb 2015 11:03:16 -0000 This patch tries to remove the RTE_MBUF_REFCNT config options and dependencies by introducing a new mbuf flag IND_ATTACHED_MBUF that would indicate when the mbuf is an indirect attached mbuf, to differentiate between indirect mbufs and mbufs with external memory buffers (ie. vhost zero copy). Previous discussion: http://dpdk.org/ml/archives/dev/2014-October/007127.html Currently for mbufs with refcnt, we cannot free mbufs with external memory buffers (ie. vhost zero copy), as they are recognized as indirect attached mbufs and therefore we free the direct mbuf it points to, resulting in an error in the case of external memory buffers. We solve the issue by introducing the IND_ATTACHED_MBUF flag, which indicates that the mbuf is an indirect attached mbuf pointing to another mbuf. When we free an mbuf, we only free the direct mbuf if the flag is set. Freeing an mbuf with external buffer is the same as freeing a non attached mbuf. The flag is set during attach and clear on detach. So in the case of vhost zero copy where we have mbufs with external buffers, by default we just free the mbuf and it is up to the user to deal with the external buffer. v2: - Add missing parenthesis to RTE_MBUF_INDIRECT macro Sergio Gonzalez Monroy (2): mbuf: Introduce IND_ATTACHED_MBUF flag Remove RTE_MBUF_REFCNT references app/test/test_link_bonding.c | 15 ----------- app/test/test_mbuf.c | 17 +++---------- config/common_bsdapp | 1 - config/common_linuxapp | 1 - examples/Makefile | 4 +-- examples/ip_fragmentation/Makefile | 4 --- examples/ip_pipeline/Makefile | 3 --- examples/ip_pipeline/main.c | 5 ---- examples/ipv4_multicast/Makefile | 4 --- examples/vhost/main.c | 19 +++----------- lib/librte_ip_frag/Makefile | 4 --- lib/librte_ip_frag/rte_ip_frag.h | 4 --- lib/librte_mbuf/rte_mbuf.c | 2 -- lib/librte_mbuf/rte_mbuf.h | 45 +++++++-------------------------- lib/librte_pmd_bond/Makefile | 4 --- lib/librte_pmd_bond/rte_eth_bond.h | 2 -- lib/librte_pmd_bond/rte_eth_bond_args.c | 2 -- lib/librte_pmd_bond/rte_eth_bond_pmd.c | 10 -------- lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 8 ------ lib/librte_port/Makefile | 4 --- 20 files changed, 19 insertions(+), 139 deletions(-) -- 1.9.3