From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0060.outbound.protection.outlook.com [104.47.41.60]) by dpdk.org (Postfix) with ESMTP id DFDF829D6 for ; Mon, 21 Nov 2016 23:16:47 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=DWXRklHsF1mNmKJCWiCSNDBKpt+B8Y3L81+B117Yr5E=; b=FqYq3YTNJTpgB7VEdjvX35qrMHgEMylCsnB+N7hwN+hkPINII9on3z5wWq2YejsSeCNr4tfYMfNG71ni/zMGphznP/ThES0j13VYW2J/6gqnZ9d/RV5k49zDy9a/2ev325zU9b23Y2JWo2hI0KYVN9IGdSOII760yHixyBqCDvg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from svelivela-lt.caveonetworks.com (50.233.148.156) by CY1PR0701MB1728.namprd07.prod.outlook.com (10.163.21.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.693.12; Mon, 21 Nov 2016 22:16:43 +0000 Date: Tue, 22 Nov 2016 03:46:38 +0530 From: Jerin Jacob To: "Ananyev, Konstantin" CC: Satha Rao , "Zhang, Helin" , "Wu, Jingjing" , "jianbo.liu@linaro.org" , "dev@dpdk.org" Message-ID: <20161121221638.GA17380@svelivela-lt.caveonetworks.com> References: <1479473533-9393-1-git-send-email-skoteshwar@caviumnetworks.com> <2601191342CEEE43887BDE71AB9772583F0DE265@irsmsx105.ger.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <2601191342CEEE43887BDE71AB9772583F0DE265@irsmsx105.ger.corp.intel.com> User-Agent: Mutt/1.7.1 (2016-10-04) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: SN1PR17CA0061.namprd17.prod.outlook.com (10.163.3.157) To CY1PR0701MB1728.namprd07.prod.outlook.com (10.163.21.142) X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 2:ZPn3V3jqA5la7JCdWkYmk7gXgjGHITLe07aIUGLRq4W/I+jCMUsOiSQkhCh2k6IYXGq9MFx0mwKStas5AyL2WNweRvSXCWBUupJ/xP/K/ne8yLEIX3rWOzYYnxCvg9sKufJa/9tkGGQkehSZCxhhY4b4RJv79NsF67z/tFoO02M=; 3:60cmtuMggQvXvuCcG5ccZ0Ctj/7azaz4bet9X+DcvFsUGXC1WWqCrpS4eQZVcQNbEM5R78YorA/kNy9Y20wH/f9ajpj+ckA3b2/XuW8bX9PqiuZfdgkhW4fjwd6zqoES3zb1UQ48Ox0qFXL4YLKrs+5UphctO83ZbnNOF01X9jc= X-MS-Office365-Filtering-Correlation-Id: 5d585606-3b0e-4c7a-bd6c-08d4125c13b1 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR0701MB1728; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 25:2HF8cIFgG7QaYf7ZnXR6qMSdzw3B2IuC5Wx49wLemKk/Dv+Sbd+tsWGheH7GGSR84hg17JxZTRUgK51sDVJJw1uiz+u0Vu2MbnA1hE/1mOgqG7PDIPmCKoKf5g9qvaj6mEKXkW9tdbfIFQfn1A17Y0UIXh+u/sX6gc20KPFv9eizHEW1TP6XNWe77XjDshZFE01x0N3tYWNP9ftGdEdwcwofy6FCSaV2Qa3n13xgZx3HwzGqg+1yTYZMP8D40P70v79T0/GLTt57vR6sqBWLftU+nueXqFV3dBQCvW1vS2RXmZP1hMivlxYUI4J2h6OmToN2JS0KemJwGeNKAes/jXsfm3xixiLi+BiG40BHBiZ31HS+nnsg0M/MT02PNXX77LvHo+vwkL2CsIMOSQ/X7pqA8zfLPUV1s5OQLOtHnb8P7xuGBqRsHVwHh6zGKLNxhXyySypibRIGvrq7Hq1kkfPyFTFEdecYYNoUmiDiIultPr/GSlh0fqrTjyp/FAxqozSYhnXwbCFF7iX3NzV4YSolUY5B/Zxv3nazLGamxz5+rDQJodrYJdgt63JRqNHXxtjLYJlP4WOx/Ido6qPyP3TJP2zz7EkFSj6Ndz03mRPAmCviQBJI1oIwVN+8fOTKRBs/dlvn0s/ZVbqpKfKhWbJ/rLWYHPG8pBDCEpWSCOhHiat33iZoEePD6IcLHGNJBrcRht3InQgSw+xnX3m2+vpTUODyKB5PG5oBWW/Jxo0DSALBS0BmkApqAyvvzdvsqvNJavgrxpzyomqkjEFiCA== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 31:V1Md1KnWAsO+5xyGZoKrj1Qd7QWTxW7216Zp4LyF40byzgtnBosNMSO37T5hfJ9Xxlo6za1j6b5tdQREnzqPc6vS1NHZifttnFuyNalmy2aulVSLMtSeLnGeNAmZUR+yBfReDd8Gn4b366z0FijHvT7Yp4vWIM5TcoZ7ssxpZFI0bcUXBMGmufiF15givF+e0CIHwzrhYs4pVurSAVosqz6ZnuFnjvQRaygwZdG1fYX1WnyHhU43nAA1OtuOrmMgydaEKxraTjm8tJKaGZ/CbyEuwC/+cPJACOo7o5c25Bg=; 20:Mqb3Wa6AKDATgQwv7o8k2nuH/55RQvKe0adtQalsIZtzvQdGbXtcnMK7oFpata6HWNhi1frbDFts83lb+Fo+WgjfqFLYlXB0izthDmjVpQxTxkx7gJwK+7umpS30wRZ28MkRtAoTI0vVjpNg0ErasaAEn/7NLVjdsKXO4FZuLKSag4BIf0EukFw5gOEozdj2lRMS4gDyTIz+sr8srRqYzT1c8voXj0XXDLCL2WLDXK4ti+VsJjMxh2fDI02fXfWuh07MFgEwJkFRZuMnJTDkbYfekJLAEH/cZvV/5s9g1WeH+/8Twxw749N3z5UWoQvgLA5+pSeiwuuyrxOyMiqmWY40/ayXodFdB5XfMjASjUiLhu+/UoHzFseL0YhiSxhhFyXeP39BrP8fChy+OPqXZc6i8/ErY5fKx5pcR61Oy5H+EpDdnbCy46nx3nxyXF/VNKgjnpY0EnyLjQTmcBkz5xgo/P5xVBpfu8qy79qmy7LotOgKo1a5zudFdDRRD0ZsGLfOPnWhMkJ+JHzFWwVDn4uUY19rEslQYAxKmTqMMIVMOiJvWnpt5huLljhzBEBR+CWYcZokDdVvQfM7kigw6Uxs3dDQm9sgHcVMcYWjxPQ= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6060326)(6040307)(6045199)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6061324)(6041248)(6042181); SRVR:CY1PR0701MB1728; BCL:0; PCL:0; RULEID:; SRVR:CY1PR0701MB1728; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 4:mw4HKB2HuYLe07qX/1EnblZ+1ZE8AmIv2EBMEZY6jgFYjyAsG+uauQZukXdYX8neKkkeYgwoQ3WbRr6dFfSHKq+PT0hY62geEatrrMwuIqqGDTlsiXr2p7LGv3PKQDIvEajtIjkWzFVgzM9kPPnOipHjpN9zrgoV9/H8O70c7szQQtBwpJjdkJEPhrWL2sQgd6PrfcmwxOwOt2kohtPJw1hjqQDnVfSbt73z6XObgZuz63iDC0EF1jEjRSfzu+/WO6EAtIr9DgRYfCg4o1jdncmv1JY9bMFZI+F19sHU11PyEEVEjd55X0M0my35VmlMgqPIhKyMAU+1VzBHHc6KrrHWOcPK23rKaCFBiZnxTCGBWp8fjrgy1NcQyJ8QbMxMYNJIrTmS7DEJWUqW7endRYvd0M/EyTgshmtrnEqG+/vVTOqNWUiYWvFkcrBTDMRllsZjSWmOzdiV9iYaulAFAn4clXBQ6JK/wewnIvpEy9WbC7LR2sSgAddBCgDBGg1g X-Forefront-PRVS: 01334458E5 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(24454002)(189002)(199003)(97756001)(77096005)(229853002)(46406003)(42186005)(4326007)(69596002)(33656002)(50466002)(3846002)(6116002)(38730400001)(83506001)(101416001)(110136003)(53416004)(23726003)(1076002)(42882006)(2950100002)(6916009)(106356001)(76176999)(50986999)(5660300001)(6666003)(4001350100001)(97736004)(47776003)(189998001)(54356999)(66066001)(2906002)(9686002)(7846002)(68736007)(7736002)(105586002)(305945005)(92566002)(8676002)(81156014)(81166006)(18370500001)(15760500001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0701MB1728; H:svelivela-lt.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0701MB1728; 23:EwX0BFZTA1RYp3PSti3ZbjV5aUCAPtk1NpZ75Jp?= =?us-ascii?Q?2yWd9dMoSmu1lD5u+J79+ZjhPHAot66hhz79Aq0hhMtjekL0DC+UcCvq5ho/?= =?us-ascii?Q?MIkWbEOo0SL5PGSV3nUcZJxIZ9kbLKtRsNDcJctf5V79wWcw5HBpoFy+9SN6?= =?us-ascii?Q?VRwlH4YUdhe/LMnTm7+6Yr0tRU2Vuml0UrVVr8hAOQjr3N00rCJUk7JJGzlT?= =?us-ascii?Q?J5RbjNgAXUlDeygdZJJQiEAM0bTQM0wefC14InZPUho/NNnntHfwsvrBzEHO?= =?us-ascii?Q?ltiSy1Gj8O+yoNscje4mi48nab9PDF7ZXg33YPkQDIqLRBgshPOtMimIgJWq?= =?us-ascii?Q?a6PA8O1A2fRoar4+Se6/UdUtW4j2McX9bt6ZOiF6uzY1Uq+6r2XhqEZeMkWF?= =?us-ascii?Q?otCVu/NK8AhtG7BWFbLgaOB1noCkanio1pCKfpRvmooI03d92pZw1lzHFlb/?= =?us-ascii?Q?uo3TeS564lnupFqPfArKmb8H1kW5HEzcDwRpGj+nV0TXavOBcDkeDDZajOF9?= =?us-ascii?Q?H8dEx00MR0wioSEIYM6SeLfU6NH9bU+dgBUW4L6SJd3KeaCD+23SDE9UoqmK?= =?us-ascii?Q?I4bBZ6ZZ4MnAVXZ/ayd0RH0XUFfmJAg9mRLydY8u3DDqVap+IKbY3S4k6HX2?= =?us-ascii?Q?VXOqjOlEoOcNJwOhD4wWBiXEzM3kz0augj8nXWDqPH8X/S7HrryVzfeiMcvM?= =?us-ascii?Q?lBhqh2diNauXJyX4dkAIny/MD3M8WkRAM/5yJUAEHvA4Py6pKdc0qjO1vM4N?= =?us-ascii?Q?2yQkf2lzfpiby7FcAlLxfPPf1PjS50cZOoZxwS4T4V9nEJzQe6eCNddclqOF?= =?us-ascii?Q?yUUboCl44RANIlE7mOxQglM27wgw0hEHsIx+uMb016Gu4bGPgF2343T+z62u?= =?us-ascii?Q?UNpJkUPsikipdkwWIcPLaN1jwfrlerlGDR6Iuh1syhGjrKP+kFl0UQMkdkKn?= =?us-ascii?Q?i3J8d9V3yNMfTdrUUtXhnTJO2qfGM1dCh6des2rmpoIiUbTt2aVJOoLJvCeV?= =?us-ascii?Q?X5DrHi+9OdooRoWK+OZwMCLVTbKyiTtZTdc/sWkeowbxzKgTD7+dhGOP0bTa?= =?us-ascii?Q?nVRC7vIyrZe7hFafAcyKOBqBLRSjxRNCqtpRjj2Es1dcjqbjnpR3VhodqIPD?= =?us-ascii?Q?YqtnKyIAW1A00hzY9OPHmGb7pTAGqa6epqR+HzsmXfKPyV/gMhiwGli+LJZU?= =?us-ascii?Q?5SirAoIoPdac2YLFOAFKf7FE4oK5Ar72fA44rSwESj8329zv/eh4gyzYHxm/?= =?us-ascii?Q?l+nOa//hjWeyqJ9erelmcq9iqnP2xZ5tbKe/k7Cik?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 6:eQ1jfZpalWceKTDspC12tr4gD5fIef4MPLu5cE6xR9954sOSfPinuAD/EYhXV9EJA4KF6BWHx4BmoOjCvA4sZexcSace1H6PzSoSioZu3D69neIEuxaR1tZ5BduM6sd9+gHA1psazK48TmaN9zTCmFHjVhBV5aUfIrJYX8rRxSPvFHW7feyGA1uMxBhCFaMmGvyhBs8QhRud9sZSvx33ZylN1wlvMw6kZoRlncw7bX6crPIzSvsTdKS4MlOxTjyFOo9kQ+/0mv0rIkHhUHXAMiKEGiQZtKLhUfCXyGbR2RlfrfLLj9AVr3Bq4OkFfLAw9g9sUY8XixATxFxnI7saHpHHmhll60brFMb1YsZA3p4=; 5:x3jV3nktAy19R/iL9Bubh9EJAdve676NameDDBLaqjFNqwj8A1ahYhE41ZMcbAxpFvBNr9ToQQ3ek8MBD4FttZJqyIJPMqMCTpTmQivs5qG9XsaSYAAEzavQrkvwd5zMTLvrfsZAMv7zhTMkn+8T3g==; 24:oHn4o18ChXlY0hCyYfvHEH2p0irkX9uq3z36EbQW1uzK7kTwgIOPKlqFHMrF5aMOkJ/f+mzcILf1LatG6Oj5kOGz2wZDYn244lXXZuBW9Ug= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0701MB1728; 7:yeWgrTh+B3CyoZLD158vjl2bXs5fjZXmfVDoZ6tBHvxA2BFk4u6o88umvbTNShPBedQXFrtFbSMMhcKmA3UnNGgPCujgMrgbwoncTJZVis/0UR68lJ7U469/rog8JldC70XhKuk7uU97myfAlga4RRRDB2Cd8hL15GWptDE6TRP9zhpBzRewvf5pwyQVf78lMcZEb86S7sm+FP+EVdfM2yBliunMvDvECXI2UByaLbbIVnTDL52DOBqM7jw1pdro2GmwNiBM48TjeM2LDt7X94UXtXymto/5UcJKvTfq5TaMK1gz0GTi5EzlND2S2RcizvTEfqbYBICHkxRVq0lhGbZ5pk6UkQmSQHS+K9hSYFI= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2016 22:16:43.7007 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB1728 Subject: Re: [dpdk-dev] [PATCH v2] i40e: Fix eth_i40e_dev_init sequence on ThunderX 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: Mon, 21 Nov 2016 22:16:48 -0000 On Sun, Nov 20, 2016 at 11:21:43PM +0000, Ananyev, Konstantin wrote: > Hi > > > > i40e_asq_send_command: rd32 & wr32 under ThunderX gives unpredictable > > results. To solve this include rte memory barriers > > > > Signed-off-by: Satha Rao > > --- > > drivers/net/i40e/base/i40e_osdep.h | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/drivers/net/i40e/base/i40e_osdep.h b/drivers/net/i40e/base/i40e_osdep.h > > index 38e7ba5..ffa3160 100644 > > --- a/drivers/net/i40e/base/i40e_osdep.h > > +++ b/drivers/net/i40e/base/i40e_osdep.h > > @@ -158,7 +158,13 @@ do { \ > > ((volatile uint32_t *)((char *)(a)->hw_addr + (reg))) > > static inline uint32_t i40e_read_addr(volatile void *addr) > > { > > +#if defined(RTE_ARCH_ARM64) > > + uint32_t val = rte_le_to_cpu_32(I40E_PCI_REG(addr)); > > + rte_rmb(); > > + return val; > > If you really need an rmb/wmb with MMIO read/writes on ARM, > I think you can avoid #ifdefs here and use rte_smp_rmb/rte_smp_wmb. > BTW, I suppose if you need it for i40e, you would need it for other devices too. Yes. ARM would need for all devices(typically, the devices on external PCI bus). I guess rte_smp_rmb may not be the correct abstraction. So we need more of rte_rmb() as we need only non smp variant on IO side. I guess then it make sense to create new abstraction in eal with following variants so that each arch gets opportunity to make what it makes sense that specific platform rte_readb_relaxed rte_readw_relaxed rte_readl_relaxed rte_readq_relaxed rte_writeb_relaxed rte_writew_relaxed rte_writel_relaxed rte_writeq_relaxed rte_readb rte_readw rte_readl rte_readq rte_writeb rte_writew rte_writel rte_writeq Thoughts ? Jerin > Konstantin > > > +#else > > return rte_le_to_cpu_32(I40E_PCI_REG(addr)); > > +#endif > > } > > #define I40E_PCI_REG_WRITE(reg, value) \ > > do { I40E_PCI_REG((reg)) = rte_cpu_to_le_32(value); } while (0) > > @@ -171,8 +177,16 @@ static inline uint32_t i40e_read_addr(volatile void *addr) > > I40E_PCI_REG_WRITE(I40E_PCI_REG_ADDR((hw), (reg)), (value)) > > > > #define rd32(a, reg) i40e_read_addr(I40E_PCI_REG_ADDR((a), (reg))) > > +#if defined(RTE_ARCH_ARM64) > > +#define wr32(a, reg, value) \ > > + do { \ > > + I40E_PCI_REG_WRITE(I40E_PCI_REG_ADDR((a), (reg)), (value)); \ > > + rte_wmb(); \ > > + } while (0) > > +#else > > #define wr32(a, reg, value) \ > > I40E_PCI_REG_WRITE(I40E_PCI_REG_ADDR((a), (reg)), (value)) > > +#endif > > #define flush(a) i40e_read_addr(I40E_PCI_REG_ADDR((a), (I40E_GLGEN_STAT))) > > > > #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0])) > > -- > > 2.7.4 >