From: Olivier Matz <olivier.matz@6wind.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH v4 05/12] testpmd: use standard functions to initialize mbufs and mbuf pool
Date: Mon, 20 Apr 2015 17:41:29 +0200 [thread overview]
Message-ID: <1429544496-22532-6-git-send-email-olivier.matz@6wind.com> (raw)
In-Reply-To: <1429544496-22532-1-git-send-email-olivier.matz@6wind.com>
The rte_pktmbuf_pool_init() and rte_pktmbuf_init() functions now
support to have a non-hardcoded buffer length. We can remove the
specific functions used in testpmd and replace them by the standard
ones.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
app/test-pmd/testpmd.c | 74 +++++---------------------------------------------
1 file changed, 7 insertions(+), 67 deletions(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 10e4347..1f2445e 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -393,83 +393,23 @@ set_def_fwd_config(void)
/*
* Configuration initialisation done once at init time.
*/
-struct mbuf_ctor_arg {
- uint16_t seg_buf_offset; /**< offset of data in data segment of mbuf. */
- uint16_t seg_buf_size; /**< size of data segment in mbuf. */
-};
-
-struct mbuf_pool_ctor_arg {
- uint16_t seg_buf_size; /**< size of data segment in mbuf. */
-};
-
-static void
-testpmd_mbuf_ctor(struct rte_mempool *mp,
- void *opaque_arg,
- void *raw_mbuf,
- __attribute__((unused)) unsigned i)
-{
- struct mbuf_ctor_arg *mb_ctor_arg;
- struct rte_mbuf *mb;
-
- mb_ctor_arg = (struct mbuf_ctor_arg *) opaque_arg;
- mb = (struct rte_mbuf *) raw_mbuf;
-
- mb->pool = mp;
- mb->buf_addr = (void *) ((char *)mb + mb_ctor_arg->seg_buf_offset);
- mb->buf_physaddr = (uint64_t) (rte_mempool_virt2phy(mp, mb) +
- mb_ctor_arg->seg_buf_offset);
- mb->buf_len = mb_ctor_arg->seg_buf_size;
- mb->ol_flags = 0;
- mb->data_off = RTE_PKTMBUF_HEADROOM;
- mb->nb_segs = 1;
- mb->tx_offload = 0;
- mb->vlan_tci = 0;
- mb->hash.rss = 0;
-}
-
-static void
-testpmd_mbuf_pool_ctor(struct rte_mempool *mp,
- void *opaque_arg)
-{
- struct mbuf_pool_ctor_arg *mbp_ctor_arg;
- struct rte_pktmbuf_pool_private *mbp_priv;
-
- if (mp->private_data_size < sizeof(struct rte_pktmbuf_pool_private)) {
- printf("%s(%s) private_data_size %d < %d\n",
- __func__, mp->name, (int) mp->private_data_size,
- (int) sizeof(struct rte_pktmbuf_pool_private));
- return;
- }
- mbp_ctor_arg = (struct mbuf_pool_ctor_arg *) opaque_arg;
- mbp_priv = rte_mempool_get_priv(mp);
- mbp_priv->mbuf_data_room_size = mbp_ctor_arg->seg_buf_size;
- mbp_priv->mbuf_priv_size = 0;
-}
-
static void
mbuf_pool_create(uint16_t mbuf_seg_size, unsigned nb_mbuf,
unsigned int socket_id)
{
char pool_name[RTE_MEMPOOL_NAMESIZE];
struct rte_mempool *rte_mp;
- struct mbuf_pool_ctor_arg mbp_ctor_arg;
- struct mbuf_ctor_arg mb_ctor_arg;
uint32_t mb_size;
- mbp_ctor_arg.seg_buf_size = (uint16_t) (RTE_PKTMBUF_HEADROOM +
- mbuf_seg_size);
- mb_ctor_arg.seg_buf_offset =
- (uint16_t) RTE_CACHE_LINE_ROUNDUP(sizeof(struct rte_mbuf));
- mb_ctor_arg.seg_buf_size = mbp_ctor_arg.seg_buf_size;
- mb_size = mb_ctor_arg.seg_buf_offset + mb_ctor_arg.seg_buf_size;
+ mb_size = sizeof(struct rte_mbuf) + mbuf_seg_size;
mbuf_poolname_build(socket_id, pool_name, sizeof(pool_name));
#ifdef RTE_LIBRTE_PMD_XENVIRT
rte_mp = rte_mempool_gntalloc_create(pool_name, nb_mbuf, mb_size,
(unsigned) mb_mempool_cache,
sizeof(struct rte_pktmbuf_pool_private),
- testpmd_mbuf_pool_ctor, &mbp_ctor_arg,
- testpmd_mbuf_ctor, &mb_ctor_arg,
+ rte_pktmbuf_pool_init, NULL,
+ rte_pktmbuf_init, NULL,
socket_id, 0);
@@ -479,15 +419,15 @@ mbuf_pool_create(uint16_t mbuf_seg_size, unsigned nb_mbuf,
rte_mp = mempool_anon_create(pool_name, nb_mbuf, mb_size,
(unsigned) mb_mempool_cache,
sizeof(struct rte_pktmbuf_pool_private),
- testpmd_mbuf_pool_ctor, &mbp_ctor_arg,
- testpmd_mbuf_ctor, &mb_ctor_arg,
+ rte_pktmbuf_pool_init, NULL,
+ rte_pktmbuf_init, NULL,
socket_id, 0);
else
rte_mp = rte_mempool_create(pool_name, nb_mbuf, mb_size,
(unsigned) mb_mempool_cache,
sizeof(struct rte_pktmbuf_pool_private),
- testpmd_mbuf_pool_ctor, &mbp_ctor_arg,
- testpmd_mbuf_ctor, &mb_ctor_arg,
+ rte_pktmbuf_pool_init, NULL,
+ rte_pktmbuf_init, NULL,
socket_id, 0);
#endif
--
2.1.4
next prev parent reply other threads:[~2015-04-20 15:41 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-25 17:00 [dpdk-dev] [PATCH 0/5] mbuf: enhancements of mbuf clones Olivier Matz
2015-03-25 17:00 ` [dpdk-dev] [PATCH 1/5] mbuf: fix clone support when application uses private mbuf data Olivier Matz
2015-03-26 13:35 ` Bruce Richardson
2015-03-26 15:30 ` Olivier MATZ
2015-03-25 17:00 ` [dpdk-dev] [PATCH 2/5] mbuf: allow to clone an indirect mbuf Olivier Matz
2015-03-25 17:00 ` [dpdk-dev] [PATCH 3/5] test/mbuf: rename mc variable in m Olivier Matz
2015-03-25 17:00 ` [dpdk-dev] [PATCH 4/5] test/mbuf: enhance mbuf refcnt test Olivier Matz
2015-03-25 17:00 ` [dpdk-dev] [PATCH 5/5] test/mbuf: verify that cloning a clone works properly Olivier Matz
2015-03-26 8:48 ` Olivier MATZ
2015-03-26 15:59 ` [dpdk-dev] [PATCH v2 0/5] mbuf: enhancements of mbuf clones Olivier Matz
2015-03-26 15:59 ` [dpdk-dev] [PATCH v2 1/5] mbuf: fix clone support when application uses private mbuf data Olivier Matz
2015-03-26 17:13 ` Zoltan Kiss
2015-03-27 0:24 ` Ananyev, Konstantin
2015-03-27 9:07 ` Olivier MATZ
2015-03-27 13:56 ` Olivier MATZ
2015-03-27 14:25 ` Ananyev, Konstantin
2015-03-27 15:17 ` Olivier MATZ
2015-03-27 18:11 ` Zoltan Kiss
2015-03-28 21:19 ` Olivier MATZ
2015-03-30 12:34 ` Ananyev, Konstantin
2015-03-30 19:55 ` Olivier MATZ
2015-03-30 23:17 ` Ananyev, Konstantin
2015-03-31 19:01 ` Olivier MATZ
2015-04-01 13:48 ` Ananyev, Konstantin
2015-04-01 15:18 ` Olivier MATZ
2015-03-26 15:59 ` [dpdk-dev] [PATCH v2 2/5] mbuf: allow to clone an indirect mbuf Olivier Matz
2015-03-26 15:59 ` [dpdk-dev] [PATCH v2 3/5] test/mbuf: rename mc variable in m Olivier Matz
2015-03-26 15:59 ` [dpdk-dev] [PATCH v2 4/5] test/mbuf: enhance mbuf refcnt test Olivier Matz
2015-03-26 15:59 ` [dpdk-dev] [PATCH v2 5/5] test/mbuf: verify that cloning a clone works properly Olivier Matz
2015-03-31 19:22 ` [dpdk-dev] [PATCH v3 0/5] mbuf: enhancements of mbuf clones Olivier Matz
2015-03-31 19:23 ` [dpdk-dev] [PATCH v3 1/5] mbuf: fix clone support when application uses private mbuf data Olivier Matz
2015-04-02 14:32 ` Zoltan Kiss
2015-04-02 17:21 ` Ananyev, Konstantin
2015-04-06 21:49 ` Olivier MATZ
2015-04-07 12:40 ` Ananyev, Konstantin
2015-04-07 15:45 ` Olivier MATZ
2015-04-07 17:17 ` Ananyev, Konstantin
2015-04-08 9:44 ` Olivier MATZ
2015-04-08 13:45 ` Ananyev, Konstantin
2015-04-09 13:06 ` Olivier MATZ
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 00/12] mbuf: enhancements of mbuf clones Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 01/12] mbuf: fix mbuf data room size calculation rte_pktmbuf_pool_init Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 02/12] examples: always initialize mbuf_pool private area Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 03/12] mbuf: add accessors to get data room size and private size Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 04/12] mbuf: fix rte_pktmbuf_init when mbuf private size is not zero Olivier Matz
2015-04-20 15:41 ` Olivier Matz [this message]
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 06/12] mbuf: introduce a new helper to create a mbuf pool Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 07/12] apps: use rte_pktmbuf_pool_create to create mbuf pools Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 08/12] mbuf: fix clone support when application uses private mbuf data Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 09/12] mbuf: allow to clone an indirect mbuf Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 10/12] test/mbuf: rename mc variable in m Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 11/12] test/mbuf: enhance mbuf refcnt test Olivier Matz
2015-04-20 15:41 ` [dpdk-dev] [PATCH v4 12/12] test/mbuf: verify that cloning a clone works properly Olivier Matz
2015-04-20 16:53 ` [dpdk-dev] [PATCH v4 00/12] mbuf: enhancements of mbuf clones Neil Horman
2015-04-20 17:07 ` Olivier MATZ
2015-04-20 17:21 ` Neil Horman
2015-04-20 18:24 ` Olivier MATZ
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 " Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 01/12] mbuf: fix mbuf data room size calculation rte_pktmbuf_pool_init Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 02/12] examples: always initialize mbuf_pool private area Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 03/12] mbuf: add accessors to get data room size and private size Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 04/12] mbuf: fix rte_pktmbuf_init when mbuf private size is not zero Olivier Matz
2015-04-21 15:07 ` Ananyev, Konstantin
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 05/12] testpmd: use standard functions to initialize mbufs and mbuf pool Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 06/12] mbuf: introduce a new helper to create a " Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 07/12] apps: use rte_pktmbuf_pool_create to create mbuf pools Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 08/12] mbuf: fix clone support when application uses private mbuf data Olivier Matz
2015-04-21 15:01 ` Ananyev, Konstantin
2015-04-21 15:26 ` Olivier MATZ
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 09/12] mbuf: allow to clone an indirect mbuf Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 10/12] test/mbuf: rename mc variable in m Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 11/12] test/mbuf: enhance mbuf refcnt test Olivier Matz
2015-04-21 9:55 ` [dpdk-dev] [PATCH v5 12/12] test/mbuf: verify that cloning a clone works properly Olivier Matz
2015-04-21 11:50 ` [dpdk-dev] [PATCH v5 00/12] mbuf: enhancements of mbuf clones Neil Horman
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 00/13] " Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 01/13] mbuf: fix mbuf data room size calculation rte_pktmbuf_pool_init Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 02/13] examples: always initialize mbuf_pool private area Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 03/13] mbuf: add accessors to get data room size and private size Olivier Matz
2015-04-28 9:15 ` Thomas Monjalon
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 04/13] mbuf: fix rte_pktmbuf_init when mbuf private size is not zero Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 05/13] testpmd: use standard functions to initialize mbufs and mbuf pool Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 06/13] mbuf: introduce a new helper to create a " Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 07/13] apps: use rte_pktmbuf_pool_create to create mbuf pools Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 08/13] mbuf: fix clone support when application uses private mbuf data Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 09/13] mbuf: allow to clone an indirect mbuf Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 10/13] test/mbuf: rename mc variable in m Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 11/13] test/mbuf: enhance mbuf refcnt test Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 12/13] test/mbuf: verify that cloning a clone works properly Olivier Matz
2015-04-22 9:57 ` [dpdk-dev] [PATCH v6 13/13] test/mbuf: add a test case for clone with different priv size Olivier Matz
2015-04-22 11:59 ` [dpdk-dev] [PATCH v6 00/13] mbuf: enhancements of mbuf clones Ananyev, Konstantin
2015-04-24 10:38 ` Zoltan Kiss
2015-04-27 17:38 ` Thomas Monjalon
2015-04-28 11:15 ` Zoltan Kiss
2015-05-07 1:57 ` Xu, HuilongX
2015-05-07 7:32 ` Olivier MATZ
2015-05-07 9:39 ` Ananyev, Konstantin
2015-04-28 9:50 ` Thomas Monjalon
2015-03-31 19:23 ` [dpdk-dev] [PATCH v3 2/5] mbuf: allow to clone an indirect mbuf Olivier Matz
2015-03-31 19:23 ` [dpdk-dev] [PATCH v3 3/5] test/mbuf: rename mc variable in m Olivier Matz
2015-03-31 19:23 ` [dpdk-dev] [PATCH v3 4/5] test/mbuf: enhance mbuf refcnt test Olivier Matz
2015-03-31 19:23 ` [dpdk-dev] [PATCH v3 5/5] test/mbuf: verify that cloning a clone works properly Olivier Matz
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=1429544496-22532-6-git-send-email-olivier.matz@6wind.com \
--to=olivier.matz@6wind.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).