[dpdk-dev] [PATCH 1/6] cxgbe: Optimize forwarding performance for 40G

Aaron Conole aconole at redhat.com
Fri Oct 2 23:48:28 CEST 2015


Hi Rahul,

Rahul Lakkireddy <rahul.lakkireddy at chelsio.com> writes:

> Update sge initialization with respect to free-list manager configuration
> and ingress arbiter. Also update refill logic to refill mbufs only after
> a certain threshold for rx.  Optimize tx packet prefetch and free.
<<snip>>
>  			for (i = 0; i < sd->coalesce.idx; i++) {
> -				rte_pktmbuf_free(sd->coalesce.mbuf[i]);
> +				struct rte_mbuf *tmp = sd->coalesce.mbuf[i];
> +
> +				do {
> +					struct rte_mbuf *next = tmp->next;
> +
> +					rte_pktmbuf_free_seg(tmp);
> +					tmp = next;
> +				} while (tmp);
>  				sd->coalesce.mbuf[i] = NULL;
Pardon my ignorance here, but rte_pktmbuf_free does this work. I can't
actually see much difference between your rewrite of this block, and
the implementation of rte_pktmbuf_free() (apart from moving your branch
to the end of the function). Did your microbenchmarking really show this
as an improvement? 

Thanks for your time,
Aaron


More information about the dev mailing list