Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp401656pxb; Tue, 1 Feb 2022 02:21:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJxrM03KoT2PJacI8zjx0U0983KmcqQgvJ3kbf6U5hqp+8M0aopVOUIm4Vigs8vatFKdfzrs X-Received: by 2002:a05:6402:270a:: with SMTP id y10mr24184134edd.413.1643710913655; Tue, 01 Feb 2022 02:21:53 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dk3si9091489edb.0.2022.02.01.02.21.29; Tue, 01 Feb 2022 02:21:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; arc=fail (body hash mismatch); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354600AbiA3K3j convert rfc822-to-8bit (ORCPT + 99 others); Sun, 30 Jan 2022 05:29:39 -0500 Received: from mail-eopbgr120054.outbound.protection.outlook.com ([40.107.12.54]:11671 "EHLO FRA01-PR2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1354443AbiA3K3g (ORCPT ); Sun, 30 Jan 2022 05:29:36 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GUmNKuxL6bmNxJlwV74TlrwJHe23a1oqxuQtEg4o0esTSOGz5xbFtE1ExMMW+w1dVMSPz5+O9Oh7P0IQApIh2r8kqYCYWACl1txmigUF5yBfhYxeMo8sIGfzLcDK7uBdaXFef1gYCWvUE6czg1vqcLSRO7ZrIUOMKIiwAAf2Fyc32aPbv/SRCyP5xwaUU59QkChOHY0vTkn4paH269r0sPUtPFHCZ2a9Cyzdv4QhnzndaykVvV2EAkBPFGkWtQCzy71GTs3R4CW/27iavujRWlgG0avsEHDOipu0WVFg1Y4KTvxmpuqTjj1Z5eLXv1dR8w33yHJdVIwmKkFuQ4Ad2w== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qQiR5WniVdcPVVeZv8tiwL9SfMWm8FRiPyDqkKClio8=; b=h8EKxeJe4O9W0dyihKFhvThTUl+rpnzFvkCRPJs7PtEjoeo4SLIDFATEFSBNC5q5RyTZ1cchX4xZvbXmBTMIz5oYUWT68oTV4L1qAJAo9y0kF3hgFNdwsB2KfdvX0JgcEHfyrk2qtbkjGT464DozLpfJi5J/03EvI+MHayskXVSBtD5IwpOfEmGwApwWu9eNP2kAwFVG12IBEWqSNEtHMtila6iko4eu5DFpae0F4jG7cIRpaqJ3xNH4BGMfWnK5SbeCr4Qs7XQzbuW5ENl2RHTdJMEQleEhiDwjwm0rbZKAKDE3YPC/bmNL3fHNHfoVhAP3VcmfsQ4PpGjxgm9ioQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PR0P264MB2886.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1d1::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.20; Sun, 30 Jan 2022 10:29:34 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::c9a2:1db0:5469:54e1]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::c9a2:1db0:5469:54e1%6]) with mapi id 15.20.4930.020; Sun, 30 Jan 2022 10:29:34 +0000 From: Christophe Leroy To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman CC: Christophe Leroy , "linux-kernel@vger.kernel.org" , "linuxppc-dev@lists.ozlabs.org" Subject: [PATCH] powerpc/32s: Make pte_update() non atomic on 603 core Thread-Topic: [PATCH] powerpc/32s: Make pte_update() non atomic on 603 core Thread-Index: AQHYFcRGBttrVlXBwkaPm4X9nqdB0g== Date: Sun, 30 Jan 2022 10:29:34 +0000 Message-ID: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 978734e3-67f8-4610-bb79-08d9e3db68cc x-ms-traffictypediagnostic: PR0P264MB2886:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2150; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5OGSLt0aqFW4OoGt1pBlsMTIBsr9bsP55J0liMo7ImYjKV1mngMGxC3yvWBGMiBp994I3B+wlXPiFKW+cFEDVbHHMoFhOb+SS9N0ZIrpcCMj4RNyp8Zc5xrZdKUDSsrhOhlvalVrY+9fy0VbsEBmN89E9sGnF5IV3uVjFr4567qmDy4gO0IiPW3NZxsH3epw3suFBxHRZDsKeZsRaa8YSieJPUb6DHSyML+6OXtVw/V5/KwSWe1dPtaWJfRVVVpvGtoGRnARpeuFhXSVinYZyP7jKLr5UVcArmz8LKcxsZ0NZjNlWS96pviPxrtdm8UD3+BwZeOr5sdZzvA24KZsyXNuTehjPfcQEAZ8VJ1qhbKh2iVdX/fj7xH1p60ZIbGlcZFb74y9BOoK2yPkOf7ccOnHbbkvnRTBcA9MFQiPMXAdn5TeliEkYXBJG9zIFKKwRnW2ZTqPGhDte0ucChjuwz6GR9YVpkv59ao1Eg1AvXCW6sEeQ5Itd9qz8AJDwYfRpoLrYMlwBIrnNTwHv4rv7GSkeCohLT+R8durlcJ+J8JQQPJ4v/dhR0HNbdEAZsQ5FVcMLOULotqo3e/tYb31Szr+YYZF5wLiTvdVY3n7yrW9mXICv+lp7twOQpF7UNjvQ0aIOfLfk3JN8Qjwn52o6ZGtHHXf2aiBy4+9osTmhlKAPmsw0AL/l95BFwZjGCkHPGfbxQKmF/CAW7oSSAaJ1A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(38100700002)(122000001)(6506007)(6512007)(508600001)(86362001)(2616005)(8936002)(186003)(36756003)(54906003)(83380400001)(316002)(71200400001)(91956017)(110136005)(26005)(6486002)(44832011)(38070700005)(2906002)(5660300002)(66946007)(66556008)(66476007)(66446008)(64756008)(76116006)(4326008)(8676002)(20210929001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?NAk4yLwoXtxgrat35h5RZ2IVQbIXBRU6KAyCeGFneMHCBEYMf7zQS9ygdJ?= =?iso-8859-1?Q?2b41XDrTU1jcxy/S5ZdZRxY45Bvnj6d/cc6MYGKbN4rCpqovOXLtHP0MEf?= =?iso-8859-1?Q?MtExj1MGZdBGTW8QCfFbBMYF64WRNr/6LXetW/p/7hpUB+Yr+kBygFLUsE?= =?iso-8859-1?Q?jQAnTw/+CZYC/15ryX4nSYK+Ojp1YEfuqKTmUoO5gUtxFS8AWKFOkDhjvf?= =?iso-8859-1?Q?BW+lIT/ik81bv6NhpqZ4B64QfHyA4Ep+hJ+K9kCNKPk1+2o2d9AKOva5w4?= =?iso-8859-1?Q?9R/g83fwUvhPdrkQVQAxAdvJeRXdV/4cGAd9dNZVfdtfGQcicEO8buWiml?= =?iso-8859-1?Q?j4t9YRc+Otl9LKekdkDqWr7h0ixRO+tgdj87e8xJITP6eV+NhGl8PZfOCa?= =?iso-8859-1?Q?wqjFS0RJuozP0oWLJQXePjhmLMksJ+Epj4wLG3U/Gml14TmlYffne5N3yi?= =?iso-8859-1?Q?0ks1MsZ7Aw2DV03i/Ry++bjJ3drefoAu8nMaYMD8WQNdFiW2o7G9rFTrAT?= =?iso-8859-1?Q?mPgrdqryscTF5yNIdEJqr065PM+2QmuFN9qmG30K2GCmvIqyn/SIOPsByr?= =?iso-8859-1?Q?mWig5qUSfV5yd1kuRsNzOHD1OCo2PfmBvFr/jqPfpRQINJtExTIkUJ39Yo?= =?iso-8859-1?Q?l1Y2u94JPbJ4q6k/yur1z14c6nJ/Bpsbt78mf415SuAYy1ndgDFJ+qLN1b?= =?iso-8859-1?Q?Mqj6FUga0kKtbEvFsYplXtTlJOq0o9txOPtCp0Z/NocZBEX83SdcQ7c2hS?= =?iso-8859-1?Q?vOfxrOKldjWlEEhk/DS1qYXrVvrKq7qqbtqpIm96kwiUj8WLZej9pHHOqD?= =?iso-8859-1?Q?FImljh9TyWIX1/OHXzrMpEO7sHo48Hd9xjclJ7zBhETpvIWa5w4QP7cTN6?= =?iso-8859-1?Q?EalvBbp49Oz36V37c2ukWoXe1/TIZaIOOVEgnxfQOrzvlHMDMyNVWnHS73?= =?iso-8859-1?Q?2f8DJBZTr9IGuhw9kl3RH5b/Pjx3d/NdRqonX2jcfBTpBVjFQ+N+eKHHdA?= =?iso-8859-1?Q?WZH50pCazFHZOGydSa/01a4WeMbdS7TB56sP5Pa4MHDY8rvQdcKcYejieH?= =?iso-8859-1?Q?IWXWadHutocuP1SnHOPvqxMOzK7ajzKblE9vr3KHz3aykUbn6PKavtZtpR?= =?iso-8859-1?Q?iwE5y7XkPZvARiCqiXhRdxJ2FwQ7lAi8wNm7ft3exZ0rR3F4TyHXxcF/tz?= =?iso-8859-1?Q?ggGwqMuwBvJD1wy/hnOISfsBAPtevpgQpiagd088qONofiZ/PAoKL50i2c?= =?iso-8859-1?Q?XbJ094Wgr7P9ag6EtQpeyhjowwRsXq4avgf6w09fkssZElztoSgNl8GNcv?= =?iso-8859-1?Q?n6xKszbuNKekCdgNQqxDmbNyyffQ+cixvMhn33BASKCd+I+PMCqSk6SNjV?= =?iso-8859-1?Q?kJyll35TTk0XdT/NJzYsXIR+AN9Ns+TtlNQrPqR+aIgW7DoAPBxO8QxATJ?= =?iso-8859-1?Q?XsQytK4m+lKTC0LC0SeFLAh3ALdyt7pqQ87VFy9Fmu4BLGP5GAbPDtjYcl?= =?iso-8859-1?Q?yXXIN8stcn5XW/+2OnCZVi6c7wlGz43WkK2kHwloOtKasuhHKm8H0HfEqJ?= =?iso-8859-1?Q?0KhT8WcGqvcRkaH76pGmeA2uKykIRpf8Y1MGdmqCNRTic7lO9IV/o4KTxq?= =?iso-8859-1?Q?CfdnAQJvliBvgw6lEUVGmgZM6LLUUYg/3swWcMjbzNQ49WWKoiUGI1BH/D?= =?iso-8859-1?Q?Oc1qz6FQFr2hpKngtBwpjyIMhms16n6uFPmIR4PW3Ve24NptOFtO8xGzQC?= =?iso-8859-1?Q?slvqHlYp/eIUSki3u14txWgCY=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 978734e3-67f8-4610-bb79-08d9e3db68cc X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2022 10:29:34.4432 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: SxE5IiNeHwtiCbMdJ5on3q9MyEyHKz7ZYUi4UB1hCl7T2wRNKfI5jZ2tEbek6LuF14sILBj2f103eFL8OjXnS0ELcOMiLk1HFb9jWnY8iVs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB2886 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 603 core, TLB miss handler don't do any change to the page tables so pte_update() doesn't need to be atomic. Signed-off-by: Christophe Leroy --- arch/powerpc/include/asm/book3s/32/pgtable.h | 37 ++++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/arch/powerpc/include/asm/book3s/32/pgtable.h b/arch/powerpc/include/asm/book3s/32/pgtable.h index f8b94f78403f..772e00dc4ef1 100644 --- a/arch/powerpc/include/asm/book3s/32/pgtable.h +++ b/arch/powerpc/include/asm/book3s/32/pgtable.h @@ -298,28 +298,35 @@ static inline pte_basic_t pte_update(struct mm_struct *mm, unsigned long addr, p unsigned long clr, unsigned long set, int huge) { pte_basic_t old; - unsigned long tmp; - __asm__ __volatile__( + if (mmu_has_feature(MMU_FTR_HPTE_TABLE)) { + unsigned long tmp; + + asm volatile( #ifndef CONFIG_PTE_64BIT -"1: lwarx %0, 0, %3\n" -" andc %1, %0, %4\n" + "1: lwarx %0, 0, %3\n" + " andc %1, %0, %4\n" #else -"1: lwarx %L0, 0, %3\n" -" lwz %0, -4(%3)\n" -" andc %1, %L0, %4\n" + "1: lwarx %L0, 0, %3\n" + " lwz %0, -4(%3)\n" + " andc %1, %L0, %4\n" #endif -" or %1, %1, %5\n" -" stwcx. %1, 0, %3\n" -" bne- 1b" - : "=&r" (old), "=&r" (tmp), "=m" (*p) + " or %1, %1, %5\n" + " stwcx. %1, 0, %3\n" + " bne- 1b" + : "=&r" (old), "=&r" (tmp), "=m" (*p) #ifndef CONFIG_PTE_64BIT - : "r" (p), + : "r" (p), #else - : "b" ((unsigned long)(p) + 4), + : "b" ((unsigned long)(p) + 4), #endif - "r" (clr), "r" (set), "m" (*p) - : "cc" ); + "r" (clr), "r" (set), "m" (*p) + : "cc" ); + } else { + old = pte_val(*p); + + *p = __pte((old & ~(pte_basic_t)clr) | set); + } return old; } -- 2.33.1