From mboxrd@z Thu Jan 1 00:00:00 1970 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) Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (Postfix) with ESMTPS id 007A7C075D95; Fri, 2 Oct 2015 21:48:29 +0000 (UTC) Received: from aconole.bos.csb (dhcp-25-96.bos.redhat.com [10.18.25.96]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t92LmSLZ001541 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 2 Oct 2015 17:48:29 -0400 From: Aaron Conole To: Rahul Lakkireddy References: <318fc8559675b1157e7f049a6a955a6a2059bac7.1443704150.git.rahul.lakkireddy@chelsio.com> Date: Fri, 02 Oct 2015 17:48:28 -0400 In-Reply-To: <318fc8559675b1157e7f049a6a955a6a2059bac7.1443704150.git.rahul.lakkireddy@chelsio.com> (Rahul Lakkireddy's message of "Fri, 2 Oct 2015 16:46:50 +0530") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 Cc: dev@dpdk.org, Felix Marti , Kumar Sanghvi , Nirranjan Kirubaharan Subject: Re: [dpdk-dev] [PATCH 1/6] cxgbe: Optimize forwarding performance for 40G X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Oct 2015 21:48:32 -0000 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