From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on0079.outbound.protection.outlook.com [104.47.1.79]) by dpdk.org (Postfix) with ESMTP id 0B6DD1B301; Mon, 12 Feb 2018 15:02:19 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=OTUXOodbaHvrghFSmMkNJInLc99QBZjx2LuuYqe2bMA=; b=jJKxUsrCcQcU0KJtow1eLQIHSyUWshYdJQX43kdmEu9RiTUk5+llcZWw5l+1CMarmnz9Xm7hvs4oKDcxx2YzQX7jbyNRNPs5gjhVPt1ewhNOdteH/fFUFChLTgECs1Kn548sCYegNznXDPK5bAVeoUe2D3GmE6cj7veghbERj/s= Received: from AM4PR0501MB2657.eurprd05.prod.outlook.com (10.172.215.19) by AM4PR0501MB2180.eurprd05.prod.outlook.com (10.165.82.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Mon, 12 Feb 2018 14:02:17 +0000 Received: from AM4PR0501MB2657.eurprd05.prod.outlook.com ([fe80::80c6:df5:b1b0:ff05]) by AM4PR0501MB2657.eurprd05.prod.outlook.com ([fe80::80c6:df5:b1b0:ff05%17]) with mapi id 15.20.0485.013; Mon, 12 Feb 2018 14:02:17 +0000 From: Matan Azrad To: Jerin Jacob CC: "dev@dpdk.org" , "ferruh.yigit@intel.com" , "stable@dpdk.org" , "Thomas Monjalon" , Konstantin Ananyev , Pavan Nikhilesh Thread-Topic: [dpdk-dev] [PATCH v3] ethdev: fix ethdev data alignment Thread-Index: AQHTpANiaq5Rw6GqmU+oCLerB77OcKOgxa8AgAADQoCAAAJG4A== Date: Mon, 12 Feb 2018 14:02:17 +0000 Message-ID: References: <20180212055439.6462-1-jerin.jacob@caviumnetworks.com> <20180212131343.13555-1-jerin.jacob@caviumnetworks.com> <20180212135046.GA16934@jerin> In-Reply-To: <20180212135046.GA16934@jerin> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM4PR0501MB2180; 7:lo1dKUWRy0MuqIt9tTld8j5+EsegU1Q8BqDTp9vIPM5xNQsj99bWlNL1rELE8dUiSE9clfA/75NMesfJi4GxrIbFbd/FZ6waRHteFXfQhmd8Nw/yibunWxG3VYGd7JhXT4w/t3dXHVOAIu5iwMN4IsNg88ScH2RM4uloHmy7hJO9qfKd+J/NIXFVTddW4bObxXmCY8FkukajGvsZ4xSBHbQ4De3NexgWp9r5m4DKajGwGTKnllQMaO073pcgFQqK x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 01aace5e-0e8f-4ebc-094b-08d5722139ee x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:AM4PR0501MB2180; x-ms-traffictypediagnostic: AM4PR0501MB2180: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(60795455431006)(189930954265078)(131327999870524)(45079756050767)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(3002001)(10201501046)(3231101)(2400082)(944501161)(93006095)(93001095)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:AM4PR0501MB2180; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0501MB2180; x-forefront-prvs: 0581B5AB35 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39380400002)(39860400002)(366004)(396003)(376002)(346002)(199004)(189003)(13464003)(51444003)(25786009)(99286004)(5250100002)(76176011)(229853002)(4326008)(2900100001)(186003)(102836004)(74316002)(26005)(33656002)(106356001)(3846002)(59450400001)(6116002)(478600001)(305945005)(6506007)(97736004)(66066001)(68736007)(7736002)(53936002)(6246003)(7696005)(54906003)(5660300001)(9686003)(6306002)(6436002)(81166006)(8936002)(81156014)(55016002)(45080400002)(2906002)(105586002)(86362001)(575784001)(3660700001)(14454004)(2950100002)(93886005)(8676002)(966005)(6916009)(3280700002)(316002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0501MB2180; H:AM4PR0501MB2657.eurprd05.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: ABGBN/eQa13UmE8snij5ykRTHu6TSlepwwdvQ67Rn+K/4+Suzku5LGHiqm7AbM6d4cNT5bh/0KQjNABXHhRbfA== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 01aace5e-0e8f-4ebc-094b-08d5722139ee X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Feb 2018 14:02:17.2931 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0501MB2180 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Feb 2018 14:02:19 -0000 From: Jerin Jacob, Sent: Monday, February 12, 2018 3:51 PM > -----Original Message----- > > Date: Mon, 12 Feb 2018 13:44:54 +0000 > > From: Matan Azrad > > To: Jerin Jacob , "dev@dpdk.org" > > > > CC: "ferruh.yigit@intel.com" , "stable@dpdk.org= " > > , Thomas Monjalon , > Konstantin > > Ananyev , Pavan Nikhilesh > > > > Subject: RE: [dpdk-dev] [PATCH v3] ethdev: fix ethdev data alignment > > > > Hi Jerin > > > > From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com] > > > 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=3D"(0,= 0,9)" > > > > > > Fixes: af75078fece3 ("first public release") > > > Fixes: 5b7ba31148a8 ("ethdev: add port ownership") > > > > I don't think you need the add the 5b7ba31148a8 fix line. > > Maybe think about it in the next way: > > Is your fix can stay as a same fix before the port ownership feature > addition? > > If yes, You are not fixing it. >=20 > I don't think so. 5b7ba31148a8 breaking the first port alignment case(as > mentioned in the commit log clearly). > First port alignment was correct prior to 5b7ba31148a8 change set >=20 > Do you agree? No. The root cause of the issue this fix is fixing, is that the structure is no= t aligned, it is not relevant to port ownership. The port ownership just exposes it. > > > > I think that the port ownership just exposed the issue, did not initiat= ed it. > > > > > Cc: stable@dpdk.org > > > > > > Cc: Matan Azrad > > > Cc: Thomas Monjalon > > > Cc: Konstantin Ananyev > > > > > > Signed-off-by: Jerin Jacob > > > Signed-off-by: Pavan Nikhilesh > > > --- > > > > > > v3: > > > - added more history/data in the git log > > > - added stable@dpdk.org in Cc > > > > > > v2: > > > - Change the git comments based on Matan's feedback > > > > https://emea01.safelinks.protection.outlook.com/?url=3Dhttp%3A%2F%2Fdp > > > d > k.org%2Fdev%2Fpatchwork%2Fpatch%2F35104%2F&data=3D02%7C01%7Cmata > > > > n%40mellanox.com%7Cd491698ead5f48626c1408d5721a8331%7C8c5c71989d > > > > be4cf9a2099e499881116c%7C0%7C0%7C636540380570748030&sdata=3Dif8cCrk3 > > > U0XqWp8NE%2BEP1BjuPHX95HHN0f1yjk6krV0%3D&reserved=3D0 > > > > > > --- > > > lib/librte_ether/rte_ethdev_core.h | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/lib/librte_ether/rte_ethdev_core.h > > > b/lib/librte_ether/rte_ethdev_core.h > > > index 315b31723..e5681e466 100644 > > > --- a/lib/librte_ether/rte_ethdev_core.h > > > +++ b/lib/librte_ether/rte_ethdev_core.h > > > @@ -601,7 +601,7 @@ struct rte_eth_dev_data { > > > struct rte_vlan_filter_conf vlan_filter_conf; > > > /**< VLAN filter configuration. */ > > > struct rte_eth_dev_owner owner; /**< The port owner. */ -}; > > > +} __rte_cache_aligned; > > > > > > /** > > > * @internal > > > -- > > > 2.16.1 > >