[PATCH v4 04/16] net/nbl: add Channel layer definitions and implementation
Stephen Hemminger
stephen at networkplumber.org
Wed Aug 13 16:22:31 CEST 2025
On Tue, 12 Aug 2025 23:43:58 -0700
Dimon Zhao <dimon.zhao at nebula-matrix.com> wrote:
> +/**
> + * @brief: used to alloc continuous dma memory region for cmd buffer
> + * @mem: output, the memory object containing va, pa and size of memory
> + * @size: input, memory size in bytes
> + * @return: memory virtual address for cpu usage
> + */
> +void *nbl_alloc_dma_mem(struct nbl_dma_mem *mem, uint32_t size)
> +{
> + const struct rte_memzone *mz = NULL;
> + char z_name[RTE_MEMZONE_NAMESIZE];
> +
> + if (!mem)
> + return NULL;
> +
> + snprintf(z_name, sizeof(z_name), "nbl_dma_%u",
> + rte_atomic_fetch_add_explicit(&nbl_dma_memzone_id, 1, rte_memory_order_relaxed));
> + mz = rte_memzone_reserve_bounded(z_name, size, SOCKET_ID_ANY, 0,
> + 0, RTE_PGSIZE_2M);
Since this is setup during probe, and probe process is single threaded.
Using atomic here is overkill.
More information about the dev
mailing list