From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 378A8A04B5; Mon, 11 Jan 2021 10:52:07 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A9EEC140CBA; Mon, 11 Jan 2021 10:52:06 +0100 (CET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2043.outbound.protection.outlook.com [40.107.22.43]) by mails.dpdk.org (Postfix) with ESMTP id DDC8F140CB8; Mon, 11 Jan 2021 10:52:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=z6c7dHEKdCA5GxgjRHJM2l9sFniZX7P83BsqMtkwcBY=; b=By19gaRbrMtlB7vvwoBowPi9chDX/Y5LqEx5HQFS5UAzlLAn2sh3n94aRx5B3xEQ5hji9ijFCOJ5H9udRRrtpZgQoDGOce/29L+Ts/Yz1wdAd7em4La03W4mwSVDHgVdonCbaBQoBRR9byWW2OqthcyqYUNqA1YAQXJxFxQ6XCs= Received: from AM6PR08CA0009.eurprd08.prod.outlook.com (2603:10a6:20b:b2::21) by VE1PR08MB5214.eurprd08.prod.outlook.com (2603:10a6:803:111::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Mon, 11 Jan 2021 09:52:04 +0000 Received: from VE1EUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:b2:cafe::2d) by AM6PR08CA0009.outlook.office365.com (2603:10a6:20b:b2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6 via Frontend Transport; Mon, 11 Jan 2021 09:52:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dpdk.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT039.mail.protection.outlook.com (10.152.19.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6 via Frontend Transport; Mon, 11 Jan 2021 09:52:03 +0000 Received: ("Tessian outbound 28c96a6c9d2e:v71"); Mon, 11 Jan 2021 09:52:03 +0000 X-CR-MTA-TID: 64aa7808 Received: from e3cb1d1a3ba2.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 7FBE986F-B244-416B-9E6B-5841C968BCBF.1; Mon, 11 Jan 2021 09:51:58 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e3cb1d1a3ba2.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 11 Jan 2021 09:51:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=chcUOszKBWTRk/84sUVzwZ+Iyly8hHFDT3NRpFqeE70ANj/6um+jIJWKX+Lr2gY2Pu859ssoqNfOFfl+hVhtQgcqTO01Z7CAfLnak0/215x/ysBQHuZVQzdvtKeTcn2rhpFk5nFmkLzVmx+a/VsXi1Phl1MDuAqcjIzgWVxCaiiQgBT1EHlagK7frSrFMet+Mz0uUkjvd2IwRgtduJ5382pVBKvManfUfsaJ7LzzUO2340+H3sUgG9wOHv9+bEk9ErOoC3uGFTFaOsChuFuLHFSmnrN5io8gA79RIhRv509gO4taoXNADwkZ7ajG4IYSMn1YHsPSbhuXO53XK4mdDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=z6c7dHEKdCA5GxgjRHJM2l9sFniZX7P83BsqMtkwcBY=; b=WfmyxNV7bbNncmiITgOA0ZkSQx+geiJTsZMn+x9cI+Y/F/qgeNj1GEANDZoNpye2fJGkLpYPY8CZGrJ8HaCIVQcds9nAlyulN45VkEltrBv6ySactbFUVSTDkCPqldcd3aPfB16BKxj05EXtoPF6SFRKwkqeA5k4Fdnwe5NsRsEgXm0nXHnfFPrV2r5bMdf83vtV6MKapItT77iYjzayf9Hd5pKCF/MX7aS3Z0YdbcsWrPIlPgxN21xoRMktcROB8n2vnxjK5fs2EhI7mcH9yb2CqxeZxqIiwNagFi/XvFyeh2oN4+tpvxm1I2Dh1U+vrPTGsfbdYjQgRPFwbqBPBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=z6c7dHEKdCA5GxgjRHJM2l9sFniZX7P83BsqMtkwcBY=; b=By19gaRbrMtlB7vvwoBowPi9chDX/Y5LqEx5HQFS5UAzlLAn2sh3n94aRx5B3xEQ5hji9ijFCOJ5H9udRRrtpZgQoDGOce/29L+Ts/Yz1wdAd7em4La03W4mwSVDHgVdonCbaBQoBRR9byWW2OqthcyqYUNqA1YAQXJxFxQ6XCs= Received: from VI1PR0802MB2351.eurprd08.prod.outlook.com (2603:10a6:800:a0::10) by VE1PR08MB5678.eurprd08.prod.outlook.com (2603:10a6:800:1a0::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Mon, 11 Jan 2021 09:51:54 +0000 Received: from VI1PR0802MB2351.eurprd08.prod.outlook.com ([fe80::b950:7a8:744:62bb]) by VI1PR0802MB2351.eurprd08.prod.outlook.com ([fe80::b950:7a8:744:62bb%10]) with mapi id 15.20.3742.012; Mon, 11 Jan 2021 09:51:54 +0000 From: Ruifeng Wang To: Pavan Nikhilesh Bhagavatula , "jerinj@marvell.com" , Nithin Kumar Dabilpuram CC: "dev@dpdk.org" , "vladimir.medvedkin@intel.com" , "hemant.agrawal@nxp.com" , Honnappa Nagarahalli , nd , "stable@dpdk.org" , nd Thread-Topic: [EXT] [PATCH v2 4/5] common/octeontx2: fix build with sve enabled Thread-Index: AQHW5ZgEuTicJdFeB06AfQuxa3wQCaodhw8AgASqL+A= Date: Mon, 11 Jan 2021 09:51:54 +0000 Message-ID: References: <20201218101210.356836-1-ruifeng.wang@arm.com> <20210108082523.1062058-1-ruifeng.wang@arm.com> <20210108082523.1062058-5-ruifeng.wang@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: FCE684B40DEBF341B23AD93789ECE461.0 x-checkrecipientchecked: true Authentication-Results-Original: marvell.com; dkim=none (message not signed) header.d=none;marvell.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [203.126.0.112] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 33fac9d9-4fcb-4a74-296f-08d8b6168cbb x-ms-traffictypediagnostic: VE1PR08MB5678:|VE1PR08MB5214: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:7691;OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: dwMD5tnDA7a3SdUf1fwatxO/Zs3QFe39cpVYey6QKC4d0XCDRNaC3LQ0duYfabeZOPlCOlATrRej4P9wmAnmSNkqYhLxnfYIZ9gTaVJ9TcYCdXzKAQ4+kd7B2IqUVJhrKyCMKy973TNjA5tpit/Xs9EAXjxQqiH5+EH32GvAx3qYdF2ah3q3+NaoRp9K8a9x1J21udOXlmtQAT5Et01AtTLzbk4amVJeT1QWMpYuzKtmNVcdDNC6bbwrhigA4xOk5r5bRuXq6xFWU+8ap5Eq1q6MdWEyAzKC8QoWIsvABok8ANtx6Zt0boCyzficijvxuZZaMZmMNFWgvVtLmeh5qr39Y6Z/bJ4UhMBZbiWcrEJJrcONRCJOe52/OSJ9xfGVWfwmDLc9abDFdG7gP+zvh9KuAWr8jwhlZW7ChItBZomuCKj5yq+1KbOEan8HCrxI X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR0802MB2351.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(376002)(346002)(136003)(396003)(39860400002)(110136005)(4326008)(7696005)(64756008)(8676002)(5660300002)(33656002)(54906003)(316002)(52536014)(66446008)(53546011)(6506007)(66476007)(76116006)(66556008)(86362001)(26005)(2906002)(186003)(83380400001)(478600001)(9686003)(71200400001)(55016002)(8936002)(66946007)(357404004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?n4fw3BYqsm67gdeKkzjStdOwsH4Ao0oObuwtLXp66be7WqgS4v0Zo1HCvhj7?= =?us-ascii?Q?0kYPoAdM2WR0HvcNuljJgnLo51zTDDLbsn2B97yir3r9c4RSeoxxbZTEfOFH?= =?us-ascii?Q?dqCkynepQ+mz1vICCCF2DQrLdAGCfcRWP5BOJN8dgEnQAwnov79aWA5GyWMb?= =?us-ascii?Q?9oYHbuQOhwnCDfOJLzXUl3IMsi8Tx/0fVi2Xt6yzZlCJHcvyRqmNHz4fEBHm?= =?us-ascii?Q?/jtUlEMN1oJj0JBvkA2zpiUnqPiR4YUMeFvHY5wVTDjdABEVqTvkDVAjxPfE?= =?us-ascii?Q?eEO8lSyTJqaFbSEJYeYM9iOT8bUY6tEnqXpC0IBA6teJp/MnTLa9jlp98Yxf?= =?us-ascii?Q?5E/Yqz9L/qeLZ6it21CDDWXdkXjViIkdm3IIAtsue8zT6+Ry68jZMM5jDxxV?= =?us-ascii?Q?hGk8jLgnOZSfFhFsX6Mcb5AEPnr5GiSeNjjdgBa6R3apcsvYUllFgOVbKUKp?= =?us-ascii?Q?bpQyvEYZycP1nOTNoiRKJ3uIgi7UhE4Do1giomliIE7Te/fvmF9kP4qNYtkS?= =?us-ascii?Q?+VBcJjJsceQ06bOyRBa4JYm2wTOA1+5eCRECkYtdA22cF1aeJVIQgVFXjEri?= =?us-ascii?Q?Bp2QsK1TrqIDz1WkGAWYGmGaMion7kLvW5BCdDmD4hLkXNzRNPCOHqbwKdPo?= =?us-ascii?Q?XRvn+vAkNQ37rmqzSrHYH8TFI2mrQrhvoclGAVCj+hemJWqlFpUy9QQLvIhg?= =?us-ascii?Q?RXh+HQkY+j8kJVq/1H+VTPme59fUcBqovTBvwdI9Qc6tRpNitH6v5kw10pzU?= =?us-ascii?Q?eAUvDU+zi8npfjuLNDe7sno/MH8Mor/G8UfkGaX6bQVMzrNOMGcsMbKCFQ0r?= =?us-ascii?Q?fXUzoLMocZb9fMX7r9EaSro/Pl/LNOSFj0kumtXp7/bpZC9uPplNQ7kL5ZtR?= =?us-ascii?Q?QwOl3mIrbvTHYyBKuki0yeCl5S8ZsQwMvScHB+SvPk6h0QNxvxuw0rHwO9DQ?= =?us-ascii?Q?k79lnyEpcSCgqcaEqEGYi8L294JrLXswdC5JU6BBwp8=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5678 Original-Authentication-Results: marvell.com; dkim=none (message not signed) header.d=none;marvell.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: b3943106-cfd1-49bd-5562-08d8b6168757 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8eCWbg1Gs/wk0S/UJH2nzz7dXkOo3ilnoVXGkZWUH3ZVNPLC6WdoHp+8xLokkUcvJkPALHgzXAv/VASm7ld2R/1zDOdWtPFyBqunCPKM+ecfJEpCSyOQGS/hVIO5PZVFaPeGmauUbm3zPWIgWW25uV+Qc/1YbXHZ1ozveC9w1c6xeGDs0tj8pS7gE/Z/5EGkJvVDtRitagpZvjLUrc4Uu6Q1HKm0Wts+sMopryYFUbwYCww1+Fv8z5QlFaW0e+RaTqbqQ7/Qlc0/n6Cizib0TuABuqSncgsu0Y5epjcD58FroKJkiEUk/c0c7UozwEus0vbHOYs3+M6qM7HvY+7vbS9xeVOAP8owVdurwonsW8qCRc9qiT4Q02tbOA5R4sLLU7/SO/Y6FT1Cr4D4XZLOCcN+I8Jnijyvk3UHLuhu/J9GVtnJE6la1aVeZgugmPdeGEMLjjTOt1g0fnuL7A6Dx5m8Rt+7qL2Gl16MHz4cPRrrAUFgix/M+axgPx6f3TYdo7Qv/he4yVHD/zy2E+fKDw== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(376002)(396003)(346002)(136003)(39860400002)(46966006)(26005)(316002)(54906003)(8676002)(110136005)(2906002)(336012)(478600001)(450100002)(82740400003)(7696005)(55016002)(4326008)(8936002)(9686003)(6506007)(86362001)(5660300002)(33656002)(34020700004)(356005)(70586007)(70206006)(83380400001)(81166007)(186003)(47076005)(52536014)(53546011)(82310400003)(357404004); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2021 09:52:03.7797 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 33fac9d9-4fcb-4a74-296f-08d8b6168cbb X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5214 Subject: Re: [dpdk-dev] [EXT] [PATCH v2 4/5] common/octeontx2: fix build with sve enabled X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Pavan Nikhilesh Bhagavatula > Sent: Friday, January 8, 2021 6:29 PM > To: Ruifeng Wang ; jerinj@marvell.com; Nithin > Kumar Dabilpuram > Cc: dev@dpdk.org; vladimir.medvedkin@intel.com; > hemant.agrawal@nxp.com; Honnappa Nagarahalli > ; nd ; stable@dpdk.org > Subject: RE: [EXT] [PATCH v2 4/5] common/octeontx2: fix build with sve > enabled >=20 > Hi Ruifeng, >=20 > >Building with gcc 10.2 with SVE extension enabled got error: > > > >{standard input}: Assembler messages: > >{standard input}:4002: Error: selected processor does not support `mov > >z3.b,#0' > >{standard input}:4003: Error: selected processor does not support > >`whilelo p1.b,xzr,x7' > >{standard input}:4005: Error: selected processor does not support `ld1b > >z0.b,p1/z,[x8]' > >{standard input}:4006: Error: selected processor does not support > >`whilelo p4.s,wzr,w7' > > > >This is because inline assembly code explicitly resets cpu model to not > >have SVE support. Thus SVE instructions generated by compiler auto > >vectorization got rejected by assembler. > > > >Fixed the issue by replacing inline assembly with equivalent atomic > >built-ins. Compiler will generate LSE instructions for cpu that has the > >extension. > > > >Fixes: 8a4f835971f5 ("common/octeontx2: add IO handling APIs") > >Cc: jerinj@marvell.com > >Cc: stable@dpdk.org > > > >Signed-off-by: Ruifeng Wang > >--- > > drivers/common/octeontx2/otx2_io_arm64.h | 37 +++-------------------- > >- > > 1 file changed, 4 insertions(+), 33 deletions(-) > > > >diff --git a/drivers/common/octeontx2/otx2_io_arm64.h > >b/drivers/common/octeontx2/otx2_io_arm64.h > >index b5c85d9a6..8843a79b5 100644 > >--- a/drivers/common/octeontx2/otx2_io_arm64.h > >+++ b/drivers/common/octeontx2/otx2_io_arm64.h > >@@ -24,55 +24,26 @@ > > static __rte_always_inline uint64_t > > otx2_atomic64_add_nosync(int64_t incr, int64_t *ptr) { > >- uint64_t result; > >- > > /* Atomic add with no ordering */ > >- asm volatile ( > >- ".cpu generic+lse\n" > >- "ldadd %x[i], %x[r], [%[b]]" > >- : [r] "=3Dr" (result), "+m" (*ptr) > >- : [i] "r" (incr), [b] "r" (ptr) > >- : "memory"); > >- return result; > >+ return (uint64_t)__atomic_fetch_add(ptr, incr, > >__ATOMIC_RELAXED); > > } > > >=20 > Here LDADD acts as a way to interface to co-processors i.e. > LDADD instruction opcode + specific io address are recognized by HW > interceptor and dispatched to the specific coprocessor. OK. Now I understand the background. >=20 > Leaving it to the compiler to use the correct instruction is a bad idea. > This breaks the arm64_armv8_linux_gcc build as it doesn't have the > +lse enabled. > __atomic_fetch_add will generate a different instruction with SVE enabled= . >=20 > Instead can we add +sve to the first line to prevent outer loop from > optimizing out the trap? Since the inline assembly needs to be preserved, we have to tune the enable= d extensions. I will change in next version. Thanks, Ruifeng >=20 > I tested with 10.2 and n2 config below change works fine. > -" .cpu generic+lse\n" > +" .cpu generic+lse+sve\n" >=20 > Regards, > Pavan. >=20 > > static __rte_always_inline uint64_t > > otx2_atomic64_add_sync(int64_t incr, int64_t *ptr) { > >- uint64_t result; > >- > >- /* Atomic add with ordering */ > >- asm volatile ( > >- ".cpu generic+lse\n" > >- "ldadda %x[i], %x[r], [%[b]]" > >- : [r] "=3Dr" (result), "+m" (*ptr) > >- : [i] "r" (incr), [b] "r" (ptr) > >- : "memory"); > >- return result; > >+ return (uint64_t)__atomic_fetch_add(ptr, incr, > >__ATOMIC_ACQUIRE); > > } > > > > static __rte_always_inline uint64_t > > otx2_lmt_submit(rte_iova_t io_address) { > >- uint64_t result; > >- > >- asm volatile ( > >- ".cpu generic+lse\n" > >- "ldeor xzr,%x[rf],[%[rs]]" : > >- [rf] "=3Dr"(result): [rs] "r"(io_address)); > >- return result; > >+ return __atomic_fetch_xor((uint64_t *)io_address, 0, > >__ATOMIC_RELAXED); > > } > > > > static __rte_always_inline uint64_t > > otx2_lmt_submit_release(rte_iova_t io_address) { > >- uint64_t result; > >- > >- asm volatile ( > >- ".cpu generic+lse\n" > >- "ldeorl xzr,%x[rf],[%[rs]]" : > >- [rf] "=3Dr"(result) : [rs] "r"(io_address)); > >- return result; > >+ return __atomic_fetch_xor((uint64_t *)io_address, 0, > >__ATOMIC_RELEASE); > > } > > > > static __rte_always_inline void > >-- > >2.25.1