[dpdk-dev] mbuff rearm_data aligmenet issue on non x86
Jerin Jacob
jerin.jacob at caviumnetworks.com
Thu May 12 11:14:09 CEST 2016
Hi All,
I would like align mbuff rearm_data field to 8 byte aligned so that
write to mbuf->rearm_data with uint64_t* will be naturally aligned.
I am not sure about IA but some other architecture/implementation has overhead
in non-naturally aligned stores.
Proposed patch is something like this below, But open for any change to
make fit for all other architectures/platform.
Any thoughts ?
➜ [master] [dpdk-master] $ git diff
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index 529debb..5a917d0 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -733,10 +733,8 @@ struct rte_mbuf {
void *buf_addr; /**< Virtual address of segment
buffer. */
phys_addr_t buf_physaddr; /**< Physical address of segment
buffer. */
- uint16_t buf_len; /**< Length of segment buffer. */
-
/* next 6 bytes are initialised on RX descriptor rearm */
- MARKER8 rearm_data;
+ MARKER64 rearm_data;
uint16_t data_off;
/**
@@ -754,6 +752,7 @@ struct rte_mbuf {
uint8_t nb_segs; /**< Number of segments. */
uint8_t port; /**< Input port. */
+ uint16_t buf_len; /**< Length of segment buffer. */
uint64_t ol_flags; /**< Offload features. */
/* remaining bytes are set on RX when pulling packet from
* descriptor
/Jerin
More information about the dev
mailing list