[ovs-dev] [PATCH] netdev-dpdk: round up mbuf_size to cache_line_size
Santosh Shukla
santosh.shukla at caviumnetworks.com
Wed May 31 13:08:12 UTC 2017
Some pmd driver(e.g: vNIC thunderx PMD) want mbuf_size to be multiple of
cache_line_size. With out this fix, Netdev-dpdk initialization would
simply fail for those drivers.
Signed-off-by: Santosh Shukla <santosh.shukla at caviumnetworks.com>
---
- Tested arm64/ThunderX platform for vNIC pmd,
- Topology: phy-phy and phy-vm
- Tested x86 platform for XL710/i40e pmd.
lib/netdev-dpdk.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 9941f884f..1952a5cec 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -76,9 +76,12 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20);
#define MTU_TO_MAX_FRAME_LEN(mtu) ((mtu) + ETHER_HDR_MAX_LEN)
#define FRAME_LEN_TO_MTU(frame_len) ((frame_len) \
- ETHER_HDR_LEN - ETHER_CRC_LEN)
-#define MBUF_SIZE(mtu) (MTU_TO_MAX_FRAME_LEN(mtu) \
+#define _MBUF_SIZE(mtu) (MTU_TO_MAX_FRAME_LEN(mtu) \
+ sizeof(struct dp_packet) \
+ RTE_PKTMBUF_HEADROOM)
+#define MBUF_SIZE(mtu) ROUND_UP((_MBUF_SIZE(mtu)), \
+ RTE_CACHE_LINE_SIZE)
+
#define NETDEV_DPDK_MBUF_ALIGN 1024
#define NETDEV_DPDK_MAX_PKT_LEN 9728
@@ -495,7 +498,7 @@ dpdk_mp_create(int socket_id, int mtu)
MP_CACHE_SZ,
sizeof (struct dp_packet)
- sizeof (struct rte_mbuf),
- MBUF_SIZE(mtu)
+ MBUF_SIZE(dmp->mtu)
- sizeof(struct dp_packet),
socket_id);
if (dmp->mp) {
--
2.11.0
More information about the dev
mailing list