From: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH v2 0/2] Removal of RTE_MBUF_REFCNT
Date: Wed, 18 Feb 2015 11:03:01 +0000 [thread overview]
Message-ID: <1424257383-4177-1-git-send-email-sergio.gonzalez.monroy@intel.com> (raw)
In-Reply-To: <1424102913-18944-1-git-send-email-sergio.gonzalez.monroy@intel.com>
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
next prev parent reply other threads:[~2015-02-18 11:03 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-16 16:08 [dpdk-dev] [PATCH " Sergio Gonzalez Monroy
2015-02-16 16:08 ` [dpdk-dev] [PATCH 1/2] mbuf: Introduce IND_ATTACHED_MBUF flag Sergio Gonzalez Monroy
2015-02-16 16:08 ` [dpdk-dev] [PATCH 2/2] Remove RTE_MBUF_REFCNT references Sergio Gonzalez Monroy
2015-02-18 9:16 ` Olivier MATZ
2015-02-18 9:35 ` Bruce Richardson
2015-02-18 9:48 ` Ananyev, Konstantin
2015-02-18 10:00 ` Bruce Richardson
2015-02-18 10:14 ` Olivier MATZ
2015-02-18 10:22 ` Ananyev, Konstantin
2015-02-18 10:22 ` Bruce Richardson
2015-02-18 10:33 ` Olivier MATZ
2015-02-18 10:37 ` Bruce Richardson
2015-02-18 10:47 ` Olivier MATZ
2015-02-18 10:47 ` Ananyev, Konstantin
2015-02-18 11:01 ` Olivier MATZ
2015-02-18 9:52 ` Olivier MATZ
2015-02-16 20:47 ` [dpdk-dev] [PATCH 0/2] Removal of RTE_MBUF_REFCNT Stephen Hemminger
2015-02-17 8:43 ` Gonzalez Monroy, Sergio
2015-02-18 11:03 ` Sergio Gonzalez Monroy [this message]
2015-02-18 11:03 ` [dpdk-dev] [PATCH v2 1/2] mbuf: Introduce IND_ATTACHED_MBUF flag Sergio Gonzalez Monroy
2015-02-18 11:03 ` [dpdk-dev] [PATCH v2 2/2] Remove RTE_MBUF_REFCNT references Sergio Gonzalez Monroy
2015-02-18 12:05 ` [dpdk-dev] [PATCH v2 0/2] Removal of RTE_MBUF_REFCNT Ananyev, Konstantin
2015-02-23 18:36 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1424257383-4177-1-git-send-email-sergio.gonzalez.monroy@intel.com \
--to=sergio.gonzalez.monroy@intel.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).