From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <thomas@monjalon.net> Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by dpdk.org (Postfix) with ESMTP id C6DFE1B2C1; Tue, 13 Feb 2018 16:17:09 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 1E1B020CB0; Tue, 13 Feb 2018 10:17:09 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute1.internal (MEProxy); Tue, 13 Feb 2018 10:17:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=mesmtp; bh=+mSYNdckFVoywx2OZo4tRU/DBj DkMg1pgBrH8+JOqvg=; b=occN0Yf/xaQpWsOVfO4zKS+Z9Kvak95vS9mRnuad/W QkX70pPsrOTm4kFpj7OOMVztdfM2GyVnxu6cmAUxw5aiiSCaWKoBJQEj+s97PXBW lyzrH2lMmEulPHUIdZBEXSEe8POagqEjuTIN2xuxKGSEkKzw1OVviD6YpUsR8bgs o= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=+mSYNd ckFVoywx2OZo4tRU/DBjDkMg1pgBrH8+JOqvg=; b=I1roFEvW/JkcHtASiSWykh O7a+gCN4WGV8+cdhcN5Uty8rdvMRK3Wbg6jPLBLF8nm3DliJAq7V1YA/f8BU7WAn OCZflFgmAVuGhuXT5PkGIqpzZbeTcaQR4GfmzMQBz+ZEl6GQaxjtWx3O9Dxi3BYG MW3VQTUAjkRN2qibCOBt4Zj6I3wap9kN1gcUR7MSV9UlSnsYl5R5Az7xNJ6GVFlk kTSBENUXx3EMXssR4Vn0pCS9BRWTJOyQxRzXZKI0QhSe1jSUM2WVKKdybZL08emn CvJXUlv2dT1gwlkoJRafjMfzbUvmIIzLjFhhQhL/rbm2O3CG9AFi5IG2hY+A4QxA == X-ME-Sender: <xms:dQGDWuKl9OiVO24_ZdCkbRhKcmsjVIlxJOzIHfMBpxlNYwJqjLF40w> Received: from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184]) by mail.messagingengine.com (Postfix) with ESMTPA id C88D824547; Tue, 13 Feb 2018 10:17:08 -0500 (EST) From: Thomas Monjalon <thomas@monjalon.net> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>, Pavan Nikhilesh <pbhagavatula@caviumnetworks.com> Cc: dev@dpdk.org, ferruh.yigit@intel.com, stable@dpdk.org, Matan Azrad <matan@mellanox.com>, Konstantin Ananyev <konstantin.ananyev@intel.com> Date: Tue, 13 Feb 2018 16:16:59 +0100 Message-ID: <2314871.4g4HrYFpav@xps> In-Reply-To: <20180212131343.13555-1-jerin.jacob@caviumnetworks.com> References: <20180212055439.6462-1-jerin.jacob@caviumnetworks.com> <20180212131343.13555-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [PATCH v3] ethdev: fix ethdev data alignment X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> X-List-Received-Date: Tue, 13 Feb 2018 15:17:10 -0000 12/02/2018 14:13, Jerin Jacob: > The struct rte_eth_dev_data is used in ethdev fastpath routines > and it not aligned to cache line size. This patch fixes the ethdev > data alignment. > > The alignment was broken from the "first public release" changeset > where ethdev data address was aligned only to the first port. > Remaining ports alignment was defined by the size of the struct > (rte_eth_dev_data). This scheme is not guaranteed to be cache line > aligned all the time. > > "ethdev: add port ownership" change set introduced a > rte_eth_dev_shared_data container for port ownership change, > This resulted in rte_eth_dev->data memory for the first port also > as cache unaligned. > > Added a compiler alignment attribute to make sure > rte_eth_dev->data always cache aligned so that CPU/compiler > 1) Avoid sharing the element with another cache line > 2) Can load/store the elements in struct rte_eth_dev_data as > naturally aligned. > > Some platform like thunderX could see performance regression of 1% > at "ethdev: add port ownership" change set with > 1 port/1 queue l3fwd application and this patch fixes that regression. > > example command: > sudo ./examples/l3fwd/build/l3fwd -c 0xff00 -- -p 0x1 --config="(0,0,9)" > > Fixes: af75078fece3 ("first public release") > Fixes: 5b7ba31148a8 ("ethdev: add port ownership") > > Cc: stable@dpdk.org > > Cc: Matan Azrad <matan@mellanox.com> > Cc: Thomas Monjalon <thomas@monjalon.net> > Cc: Konstantin Ananyev <konstantin.ananyev@intel.com> > > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com> > --- Acked-by: Thomas Monjalon <thomas@monjalon.net> Applied, thanks