From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aaron Conole Subject: Re: [PATCH 1/6] cxgbe: Optimize forwarding performance for 40G Date: Fri, 02 Oct 2015 17:48:28 -0400 Message-ID: References: <318fc8559675b1157e7f049a6a955a6a2059bac7.1443704150.git.rahul.lakkireddy@chelsio.com> Mime-Version: 1.0 Content-Type: text/plain Cc: dev@dpdk.org, Felix Marti , Kumar Sanghvi , Nirranjan Kirubaharan To: Rahul Lakkireddy Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id A9F016A87 for ; Fri, 2 Oct 2015 23:48:31 +0200 (CEST) In-Reply-To: <318fc8559675b1157e7f049a6a955a6a2059bac7.1443704150.git.rahul.lakkireddy@chelsio.com> (Rahul Lakkireddy's message of "Fri, 2 Oct 2015 16:46:50 +0530") List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Rahul, Rahul Lakkireddy 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. <> > 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