From: Zoltan Kiss <zoltan.kiss@schaman.hu>
To: dev@dpdk.org
Cc: olivier.matz@6wind.com
Subject: [dpdk-dev] [PATCH] mempool: adjust name string size in related data types
Date: Tue, 19 Jul 2016 15:37:41 +0100 [thread overview]
Message-ID: <1468939061-19734-2-git-send-email-zoltan.kiss@schaman.hu> (raw)
In-Reply-To: <1468939061-19734-1-git-send-email-zoltan.kiss@schaman.hu>
A recent fix brought up an issue about the size of the 'name' fields:
85cf0079 mem: avoid memzone/mempool/ring name truncation
These relations should be observed:
RTE_RING_NAMESIZE <= RTE_MEMZONE_NAMESIZE - strlen(RTE_RING_MZ_PREFIX)
RTE_MEMPOOL_NAMESIZE <= RTE_RING_NAMESIZE - strlen(RTE_MEMPOOL_MZ_PREFIX)
Setting all of them to 32 hides this restriction from the application.
This patch increases the memzone string size to accomodate for these
prefixes, and the same happens with the ring name string. The ABI needs to
be broken to fix this API issue, this way doesn't break applications
previously not failing due to the truncating bug now fixed.
Signed-off-by: Zoltan Kiss <zoltan.kiss@schaman.hu>
---
lib/librte_eal/common/include/rte_memzone.h | 2 +-
lib/librte_mempool/rte_mempool.h | 4 +++-
lib/librte_ring/rte_ring.h | 5 ++++-
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/lib/librte_eal/common/include/rte_memzone.h b/lib/librte_eal/common/include/rte_memzone.h
index f69b5a8..ba3a1f0 100644
--- a/lib/librte_eal/common/include/rte_memzone.h
+++ b/lib/librte_eal/common/include/rte_memzone.h
@@ -74,7 +74,7 @@ extern "C" {
*/
struct rte_memzone {
-#define RTE_MEMZONE_NAMESIZE 32 /**< Maximum length of memory zone name.*/
+#define RTE_MEMZONE_NAMESIZE (32 + 6) /**< Maximum length of memory zone name.*/
char name[RTE_MEMZONE_NAMESIZE]; /**< Name of the memory zone. */
phys_addr_t phys_addr; /**< Start physical address. */
diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index 4a8fbb1..61e8d19 100644
--- a/lib/librte_mempool/rte_mempool.h
+++ b/lib/librte_mempool/rte_mempool.h
@@ -123,7 +123,9 @@ struct rte_mempool_objsz {
/**< Total size of an object (header + elt + trailer). */
};
-#define RTE_MEMPOOL_NAMESIZE 32 /**< Maximum length of a memory pool. */
+/**< Maximum length of a memory pool's name. */
+#define RTE_MEMPOOL_NAMESIZE (RTE_RING_NAMESIZE - \
+ sizeof(RTE_MEMPOOL_MZ_PREFIX) + 1)
#define RTE_MEMPOOL_MZ_PREFIX "MP_"
/* "MP_<name>" */
diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_ring/rte_ring.h
index eb45e41..d6185de 100644
--- a/lib/librte_ring/rte_ring.h
+++ b/lib/librte_ring/rte_ring.h
@@ -100,6 +100,7 @@ extern "C" {
#include <rte_lcore.h>
#include <rte_atomic.h>
#include <rte_branch_prediction.h>
+#include <rte_memzone.h>
#define RTE_TAILQ_RING_NAME "RTE_RING"
@@ -126,8 +127,10 @@ struct rte_ring_debug_stats {
} __rte_cache_aligned;
#endif
-#define RTE_RING_NAMESIZE 32 /**< The maximum length of a ring name. */
#define RTE_RING_MZ_PREFIX "RG_"
+/**< The maximum length of a ring name. */
+#define RTE_RING_NAMESIZE (RTE_MEMZONE_NAMESIZE - \
+ sizeof(RTE_RING_MZ_PREFIX) + 1)
#ifndef RTE_RING_PAUSE_REP_COUNT
#define RTE_RING_PAUSE_REP_COUNT 0 /**< Yield after pause num of times, no yield
--
1.9.1
next prev parent reply other threads:[~2016-07-19 14:38 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-19 14:37 [dpdk-dev] [PATCH] mempool: fix lack of free() registration Zoltan Kiss
2016-07-19 14:37 ` Zoltan Kiss [this message]
2016-07-19 15:37 ` [dpdk-dev] [PATCH] mempool: adjust name string size in related data types Olivier Matz
2016-07-19 15:59 ` Zoltan Kiss
2016-07-19 16:17 ` Olivier Matz
2016-07-20 12:41 ` Zoltan Kiss
2016-07-20 13:37 ` Olivier Matz
2016-07-20 14:01 ` Richardson, Bruce
2016-07-20 17:20 ` Zoltan Kiss
2016-07-20 17:16 ` [dpdk-dev] [PATCH v2] " Zoltan Kiss
2016-07-21 13:40 ` Olivier Matz
2016-07-21 13:47 ` Zoltan Kiss
2016-07-21 14:25 ` Olivier Matz
2016-07-21 21:16 ` Thomas Monjalon
2016-07-19 15:26 ` [dpdk-dev] [PATCH] mempool: fix lack of free() registration Olivier Matz
2016-07-19 16:17 ` Zoltan Kiss
2016-07-20 17:14 ` [dpdk-dev] [PATCH v2] mempool: fix lack of free registration Zoltan Kiss
2016-07-21 21:04 ` 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=1468939061-19734-2-git-send-email-zoltan.kiss@schaman.hu \
--to=zoltan.kiss@schaman.hu \
--cc=dev@dpdk.org \
--cc=olivier.matz@6wind.com \
/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).