rte_pktmbuf_alloc() out of rte_mbufs
Stephen Hemminger
stephen at networkplumber.org
Fri Nov 22 17:45:57 CET 2024
On Fri, 22 Nov 2024 02:38:55 +0000 (UTC)
amit sehas <cun23 at yahoo.com> wrote:
> I am frequently running into out of mbufs when allocating packets. When this happens is there a way to dump counts of which buffers are where so we know what is going on?
>
> I know that each rte_mbuf pool also has per cpu core cache to speed up alloc/free, and some of the buffers will end up there and if one were to never utilize a particular core for a particular mpool perhaps those mbufs are lost ... that is my rough guess ...
>
> How do you debug out of mbufs issue?
>
> regards
The function rte_mempool_dump() will tell you some information about the status of a particular mempool.
If you enable mempool statistics you can get more info.
The best way to size a memory pool is to account for all the possible places mbuf's can be waiting.
Something like:
Num Port * Num RxQ * Num RxD + Num Port * Num TxQ * Num TxD + Num Lcores * Burst Size + Num Lcores * Cache size
Often running out of mbufs is because of failure to free an recveived mbuf, or a buggy driver.
More information about the users
mailing list