From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f52.google.com (mail-wg0-f52.google.com [74.125.82.52]) by dpdk.org (Postfix) with ESMTP id 115B17F21 for ; Wed, 29 Oct 2014 19:42:37 +0100 (CET) Received: by mail-wg0-f52.google.com with SMTP id b13so2009660wgh.39 for ; Wed, 29 Oct 2014 11:51:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:organization :user-agent:in-reply-to:references:mime-version :content-transfer-encoding:content-type; bh=5x3D5nL179ud7SeoFSeUD790r6y5MtLthDNyfKz4CTE=; b=PgFCIyxpNSmFaFcUZEen127FEdZjjO2PXLDElkH42FfnhX89VRAsokzEjUrnRrb1xD l+UWqCZsPjPxhcLSxLBxqKgOfeRRxhuYkYg6O2k4mqRvHj4WWgIe7ZiHGj7x+9ANgCsl 0JmDYMVH4mVEMzac/ONhzZpOlKbCaIAQ6hW0YCuP4+E8GfRa28Xm3SaEm92w3XTCGDYq oWidX1iL8Al8CvlFVZv/n2ANH3QEF+ophQaCIUoQEmVFI30t9ROiP5RqyrPNjW4cxL3f fyxMAHM47jRz09Gr4+d/Zfb7W47BJmRPQJqUj9TzALG/oO8Mvh8nB5J03tTwElGxl2nI bnzw== X-Gm-Message-State: ALoCoQnLIb/5OPt0f4oAkbBndAULgwpV8dt561oOBFZzcREiVmYYn5frFwV3Efs8RblfJFLnjvCz X-Received: by 10.194.77.199 with SMTP id u7mr15021942wjw.92.1414608689738; Wed, 29 Oct 2014 11:51:29 -0700 (PDT) Received: from xps13.localnet (136-92-190-109.dsl.ovh.fr. [109.190.92.136]) by mx.google.com with ESMTPSA id bg10sm6062554wjc.47.2014.10.29.11.51.28 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Oct 2014 11:51:28 -0700 (PDT) From: Thomas Monjalon To: Yong Wang Date: Wed, 29 Oct 2014 19:51:10 +0100 Message-ID: <2769645.ax0AzSrXC5@xps13> Organization: 6WIND User-Agent: KMail/4.14.2 (Linux/3.17.1-1-ARCH; KDE/4.14.2; x86_64; ; ) In-Reply-To: References: <1413181389-14887-1-git-send-email-yongwang@vmware.com> <1988013.IRBMoDeiJN@xps13> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH 1/5] vmxnet3: Fix VLAN Rx stripping 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: Wed, 29 Oct 2014 18:42:37 -0000 2014-10-29 17:57, Yong Wang: > Sounds good to me but it does look like the rte_rxmbuf_alloc() could use > some comments to make it explicit that rte_pktmbuf_reset() is avoided by > design for the reasons that Bruce described. Furthermore, > rte_rxmbuf_alloc() is duplicated in almost all the pmd drivers. Will it > make sense to promote it to a public API? Just a thought. Yes, it makes sense. > On 10/29/14, 2:41 AM, "Thomas Monjalon" wrote: > > >2014-10-29 09:04, Bruce Richardson: > >> On Tue, Oct 28, 2014 at 09:57:14PM +0000, Yong Wang wrote: > >> > On 10/22/14, 6:39 AM, "Stephen Hemminger" > >> > wrote: > >> > > >> > > >> > >On Mon, 13 Oct 2014 18:42:18 +0000 > >> > >Yong Wang wrote: > >> > > > >> > >> Are you referring to the patch as a whole or your comment is about > >>the > >> > >>reset of vlan_tci on the "else" (no vlan tags stripped) path? I am > >>not > >> > >>sure I get your comments here. This patch simply fixes a bug on > >>the rx > >> > >>vlan stripping path (where valid vlan_tci stripped is overwritten > >> > >>unconditionally later on the rx path in the original vmxnet3 pmd > >> > >>driver). All the other pmd drivers are doing the same thing in > >>terms of > >> > >>translating descriptor status to rte_mbuf flags for vlan stripping. > >> > > > >> > >I was thinking that there are many fields in a pktmbuf and rather > >>than > >> > >individually > >> > >setting them (like tci). The code should call the common > >> > >rte_pktmbuf_reset before setting > >> > >the fields. That way when someone adds a field to mbuf they don't > >>have > >> > >to chasing > >> > >through every driver that does it's own initialization. > >> > > >> > Currently rte_pktmbuf_reset() is used in rte_pktmbuf_alloc() but looks > >> > like most pmd drivers use rte_rxmbuf_alloc() to replenish rx buffers, > >> > which directly calls __rte_mbuf_raw_alloc > >> > () without calling rte_pktmbuf_reset(). How about we change that in a > >> > separate patch to all pmd drivers so that we can keep their behavior > >> > consistent? > >> > > >> > >> We can look to do that, but we need to beware of performance > >>regressions if > >> we do so. Certainly the vector implementation of the ixgbe would be > >>severely > >> impacted performance-wise if such a change were made. However, code > >>paths > >> which are not as highly tuned, or which do not need to be as highly > >>tuned > >> could perhaps use the standard function. > >> > >> The main reason for this regression is that reset will clear all fields > >>of > >> the mbuf, which would be wasted cycles for a number of the PMDs as they > >>will > >> later set some of the fields based on values in the receive descriptor. > >> > >> Basically, on descriptor rearm in a PMD, the only fields that need to > >>be > >> reset would be those not set by the copy of data from the descriptor. > > > >This is typically a trade-off situation. > >I think that we should prefer the performance.