From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by dpdk.org (Postfix) with ESMTP id DA29E7FEE for ; Wed, 29 Oct 2014 10:32:47 +0100 (CET) Received: by mail-wi0-f182.google.com with SMTP id d1so3995664wiv.15 for ; Wed, 29 Oct 2014 02:41:38 -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=v31kpUKnefhtw0yLlcOJJx17CdZfeNZ+gvMsp5fbJGI=; b=lk8N6icSWZLwqT7F+VygDBIXsB1Isna+sJVoLleX1WUFvY0F7RG3kxEmAm4ovZrJtf 4W/p32fHA2dlgDRcuUyPIAf1X9PTqLhVjE96JV5hAsuZhBGJSwEal/GLyDVELXgS6W0N 7esz5OU7RQSIHI79tyk3Ds0Qw1yL5XZKq0jGK3AptaSPizyAvMQpS6TgfmC/nLU6PTZd ZIDBXnFLwp4A7zdpYbMUU22g5EjHhNqSAhzOH8yYwAJKI4HlhUFdZTEga8rFqWCmlLYm 6z+mh6PGUJNbK4JpIHIkZjbcuxmcgT/mhR6+KKL7avyXWu+UnBa+6df42v9dXrJrusul x7vg== X-Gm-Message-State: ALoCoQmxeJIJiPHY30aRlWtoI/ueCsRwqFt6D0IzzU0+D76uaddjmNmZs4gLRvaYYn1nH9u5Q+89 X-Received: by 10.180.211.166 with SMTP id nd6mr11084494wic.81.1414575698571; Wed, 29 Oct 2014 02:41:38 -0700 (PDT) Received: from xps13.localnet (136-92-190-109.dsl.ovh.fr. [109.190.92.136]) by mx.google.com with ESMTPSA id q5sm18109108wiy.16.2014.10.29.02.41.37 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 29 Oct 2014 02:41:37 -0700 (PDT) From: Thomas Monjalon To: Bruce Richardson , Yong Wang Date: Wed, 29 Oct 2014 10:41:20 +0100 Message-ID: <1988013.IRBMoDeiJN@xps13> Organization: 6WIND User-Agent: KMail/4.14.2 (Linux/3.17.1-1-ARCH; KDE/4.14.2; x86_64; ; ) In-Reply-To: <20141029090449.GA8292@BRICHA3-MOBL> References: <1413181389-14887-1-git-send-email-yongwang@vmware.com> <20141029090449.GA8292@BRICHA3-MOBL> 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 09:32:48 -0000 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. -- Thomas