On Tue, 25 Nov 2025 12:14:46 +0000 "mannywang(王永峰)" <[email protected]> wrote:
> Reduce memory fragmentation caused by dynamic memory allocations > by allowing users to provide custom memory allocator. > > Add new members to struct rte_acl_config to allow passing custom > allocator callbacks to rte_acl_build: > > - running_alloc: allocator callback for run-time internal memory > - running_free: free callback for run-time internal memory > - running_ctx: user-defined context passed to running_alloc/free > > - temp_alloc: allocator callback for temporary memory during ACL build > - temp_reset: reset callback for temporary allocator > - temp_ctx: user-defined context passed to temp_alloc/reset > > These callbacks allow users to provide their own memory pools or > allocators for both persistent runtime structures and temporary > build-time data. > > A typical approach is to pre-allocate a static memory region > for rte_acl_ctx, and to provide a global temporary memory manager > that supports multipleallocations and a single reset during ACL build. > > Since tb_mem_pool handles allocation failures using siglongjmp, > temp_alloc follows the same approach for failure handling. > > Signed-off-by: YongFeng Wang <[email protected]> > --- Rather than custom allocators, I did a couple of quick AI queries about alternatives. It looks like there are some big global gains possible here: Summary of Recommendations Improvement Benefit Complexity Priority ACL Object Pooling Eliminates ACL-specific fragmentation Medium High Size-Class Segregation Reduces general fragmentation High High Slab Allocator for Build Better hugepage utilization Medium Medium Deferred Coalescing Reduces fragmentation from churn Medium Medium Thread-Local Caching Reduces contention, improves locality Medium Medium Also adding some malloc_trim() would help. https://claude.ai/share/75fcf73c-17e3-4f41-8590-f2ab640f9512

