FreeBSD Manual Pages
rte_mbuf_history.h(3) DPDK rte_mbuf_history.h(3) NAME rte_mbuf_history.h SYNOPSIS #include <rte_common.h> #include <rte_debug.h> #include <rte_mbuf_dyn.h> Macros #define RTE_MBUF_HISTORY_BITS 4 #define RTE_MBUF_HISTORY_MAX (sizeof(rte_mbuf_history_t) * 8 / RTE_MBUF_HISTORY_BITS) Enumerations enum rte_mbuf_history_op { RTE_MBUF_HISTORY_OP_NEVER = 0, RTE_MBUF_HISTORY_OP_LIB_FREE = 1, RTE_MBUF_HISTORY_OP_PMD_FREE = 2, RTE_MBUF_HISTORY_OP_APP_FREE = 3, RTE_MBUF_HISTORY_OP_LIB_ALLOC = 4, RTE_MBUF_HISTORY_OP_PMD_ALLOC = 5, RTE_MBUF_HISTORY_OP_APP_ALLOC = 6, RTE_MBUF_HISTORY_OP_RX = 7, RTE_MBUF_HISTORY_OP_TX = 8, RTE_MBUF_HISTORY_OP_TX_PREP = 9, RTE_MBUF_HISTORY_OP_TX_BUSY = 10, RTE_MBUF_HISTORY_OP_ENQUEUE = 11, RTE_MBUF_HISTORY_OP_DEQUEUE = 12, RTE_MBUF_HISTORY_OP_USR2 = 14, RTE_MBUF_HISTORY_OP_USR1 = 15, RTE_MBUF_HISTORY_OP_MAX = 16 } Functions __rte_experimental void rte_mbuf_history_init (void) static void rte_mbuf_history_mark (struct rte_mbuf *m, enum rte_mbuf_history_op op) static void rte_mbuf_history_mark_bulk (struct rte_mbuf *const *mbufs, unsigned int count, enum rte_mbuf_history_op op) __rte_experimental void rte_mbuf_history_dump (FILE *f, const struct rte_mbuf *m) __rte_experimental void rte_mbuf_history_dump_mempool (FILE *f, struct rte_mempool *mp) __rte_experimental void rte_mbuf_history_dump_all (FILE *f) Variables int rte_mbuf_history_field_offset Detailed Description Warning EXPERIMENTAL: this API may change without prior notice. These functions allow to track history of mbuf objects using a dynamic field. It tracks the lifecycle of mbuf objects through the system with a fixed set of predefined events to maintain performance. The history is stored as an atomic value (64-bit) in a dynamic field of the mbuf, with each event encoded in 4 bits, allowing up to 16 events to be tracked. Atomic operations ensure thread safety for cloned mbufs accessed by multiple lcores. After dumping the history in a file, the script dpdk-mbuf-history- parser.py can be used for parsing. Definition in file rte_mbuf_history.h. Macro Definition Documentation #define RTE_MBUF_HISTORY_BITS 4 Number of bits for each history operation. Definition at line 43 of file rte_mbuf_history.h. #define RTE_MBUF_HISTORY_MAX (sizeof(rte_mbuf_history_t) * 8 / RTE_MBUF_HISTORY_BITS) Maximum number of history operations that can be stored. Definition at line 48 of file rte_mbuf_history.h. Enumeration Type Documentation enum rte_mbuf_history_op History operation types. Enumerator RTE_MBUF_HISTORY_OP_NEVER Initial state - never allocated RTE_MBUF_HISTORY_OP_LIB_FREE Freed back to pool RTE_MBUF_HISTORY_OP_PMD_FREE Freed by PMD RTE_MBUF_HISTORY_OP_APP_FREE Freed by application RTE_MBUF_HISTORY_OP_LIB_ALLOC Allocation in mbuf library RTE_MBUF_HISTORY_OP_PMD_ALLOC Allocated by PMD for Rx RTE_MBUF_HISTORY_OP_APP_ALLOC Allocated by application RTE_MBUF_HISTORY_OP_RX Received RTE_MBUF_HISTORY_OP_TX Sent RTE_MBUF_HISTORY_OP_TX_PREP Being prepared before Tx RTE_MBUF_HISTORY_OP_TX_BUSY Returned due to Tx busy RTE_MBUF_HISTORY_OP_ENQUEUE Enqueued for processing RTE_MBUF_HISTORY_OP_DEQUEUE Dequeued for processing RTE_MBUF_HISTORY_OP_USR2 Application-defined event 2 RTE_MBUF_HISTORY_OP_USR1 Application-defined event 1 RTE_MBUF_HISTORY_OP_MAX Maximum number of operation types Definition at line 53 of file rte_mbuf_history.h. Function Documentation __rte_experimental void rte_mbuf_history_init (void) Initialize the mbuf history system. Warning EXPERIMENTAL: this API may change without prior notice. This function registers the dynamic field for mbuf history tracking. It should be called once during application initialization. Note: This function is called by rte_pktmbuf_pool_create, so explicit invocation is usually not required. static void rte_mbuf_history_mark (struct rte_mbuf * m, enum rte_mbuf_history_op op) [inline], [static] Mark an mbuf with a history event. Warning EXPERIMENTAL: this API may change without prior notice. Parameters m Pointer to the mbuf. op The operation to record. Definition at line 105 of file rte_mbuf_history.h. static void rte_mbuf_history_mark_bulk (struct rte_mbuf *const * mbufs, unsigned int count, enum rte_mbuf_history_op op) [inline], [static] Mark multiple mbufs with a history event. Warning EXPERIMENTAL: this API may change without prior notice. Parameters mbufs Array of mbuf pointers. count Number of mbufs to mark. op The operation to record. Definition at line 142 of file rte_mbuf_history.h. __rte_experimental void rte_mbuf_history_dump (FILE * f, const struct rte_mbuf * m) Dump mbuf history for a single mbuf to a file. Warning EXPERIMENTAL: this API may change without prior notice. EXPERIMENTAL: this API may change without prior notice. Parameters f File pointer to write the history to. m Pointer to the mbuf to dump history for. __rte_experimental void rte_mbuf_history_dump_mempool (FILE * f, struct rte_mempool * mp) Dump mbuf history statistics for a single mempool to a file. Warning EXPERIMENTAL: this API may change without prior notice. Parameters f File pointer to write the history statistics to. mp Pointer to the mempool to dump history for. __rte_experimental void rte_mbuf_history_dump_all (FILE * f) Dump mbuf history statistics for all mempools to a file. Warning EXPERIMENTAL: this API may change without prior notice. Parameters f File pointer to write the history statistics to. Variable Documentation int rte_mbuf_history_field_offset [extern] Global offset for the history dynamic field (set during initialization). Author Generated automatically by Doxygen for DPDK from the source code. Version 25.11.0 Thu Jun 11 2026 rte_mbuf_history.h(3)
NAME | SYNOPSIS | Detailed Description | Macro Definition Documentation | Enumeration Type Documentation | Function Documentation | Variable Documentation | Author
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=RTE_MBUF_HISTORY_BITS&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
