From patchwork Sun Jan 30 10:29:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Leroy X-Patchwork-Id: 1586351 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=2404:9400:2:0:216:3eff:fee1:b9f1; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2404:9400:2:0:216:3eff:fee1:b9f1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JmnWd4F2Vz9ryY for ; Sun, 30 Jan 2022 21:30:05 +1100 (AEDT) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4JmnWc6F45z3bTT for ; Sun, 30 Jan 2022 21:30:04 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=csgroup.eu (client-ip=2a01:111:f400:7e18::624; helo=fra01-pr2-obe.outbound.protection.outlook.com; envelope-from=christophe.leroy@csgroup.eu; receiver=) Received: from FRA01-PR2-obe.outbound.protection.outlook.com (mail-pr2fra01on0624.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e18::624]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4JmnWS47shz2xWd for ; Sun, 30 Jan 2022 21:29:55 +1100 (AEDT) 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 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?NAk4yLwoXtxgrat35h5RZ2I?= =?iso-8859-1?q?VQbIXBRU6KAyCeGFneMHCBEYMf7zQS9ygdJ2b41XDrTU1jcxy/S5ZdZRxY45?= =?iso-8859-1?q?Bvnj6d/cc6MYGKbN4rCpqovOXLtHP0MEfMtExj1MGZdBGTW8QCfFbBMYF64W?= =?iso-8859-1?q?RNr/6LXetW/p/7hpUB+Yr+kBygFLUsEjQAnTw/+CZYC/15ryX4nSYK+Ojp1Y?= =?iso-8859-1?q?EfuqKTmUoO5gUtxFS8AWKFOkDhjvfBW+lIT/ik81bv6NhpqZ4B64QfHyA4Ep?= =?iso-8859-1?q?+hJ+K9kCNKPk1+2o2d9AKOva5w49R/g83fwUvhPdrkQVQAxAdvJeRXdV/4cG?= =?iso-8859-1?q?Ad9dNZVfdtfGQcicEO8buWimlj4t9YRc+Otl9LKekdkDqWr7h0ixRO+tgdj8?= =?iso-8859-1?q?7e8xJITP6eV+NhGl8PZfOCawqjFS0RJuozP0oWLJQXePjhmLMksJ+Epj4wLG?= =?iso-8859-1?q?3U/Gml14TmlYffne5N3yi0ks1MsZ7Aw2DV03i/Ry++bjJ3drefoAu8nMaYMD?= =?iso-8859-1?q?8WQNdFiW2o7G9rFTrATmPgrdqryscTF5yNIdEJqr065PM+2QmuFN9qmG30K2?= =?iso-8859-1?q?GCmvIqyn/SIOPsByrmWig5qUSfV5yd1kuRsNzOHD1OCo2PfmBvFr/jqPfpRQ?= =?iso-8859-1?q?INJtExTIkUJ39Yol1Y2u94JPbJ4q6k/yur1z14c6nJ/Bpsbt78mf415SuAYy?= =?iso-8859-1?q?1ndgDFJ+qLN1bMqj6FUga0kKtbEvFsYplXtTlJOq0o9txOPtCp0Z/NocZBEX?= =?iso-8859-1?q?83SdcQ7c2hSvOfxrOKldjWlEEhk/DS1qYXrVvrKq7qqbtqpIm96kwiUj8WLZ?= =?iso-8859-1?q?ej9pHHOqDFImljh9TyWIX1/OHXzrMpEO7sHo48Hd9xjclJ7zBhETpvIWa5w4?= =?iso-8859-1?q?QP7cTN6EalvBbp49Oz36V37c2ukWoXe1/TIZaIOOVEgnxfQOrzvlHMDMyNVW?= =?iso-8859-1?q?nHS732f8DJBZTr9IGuhw9kl3RH5b/Pjx3d/NdRqonX2jcfBTpBVjFQ+N+eKH?= =?iso-8859-1?q?HdAWZH50pCazFHZOGydSa/01a4WeMbdS7TB56sP5Pa4MHDY8rvQdcKcYejie?= =?iso-8859-1?q?HIWXWadHutocuP1SnHOPvqxMOzK7ajzKblE9vr3KHz3aykUbn6PKavtZtpRi?= =?iso-8859-1?q?wE5y7XkPZvARiCqiXhRdxJ2FwQ7lAi8wNm7ft3exZ0rR3F4TyHXxcF/tzggG?= =?iso-8859-1?q?wqMuwBvJD1wy/hnOISfsBAPtevpgQpiagd088qONofiZ/PAoKL50i2cXbJ09?= =?iso-8859-1?q?4Wgr7P9ag6EtQpeyhjowwRsXq4avgf6w09fkssZElztoSgNl8GNcvn6xKszb?= =?iso-8859-1?q?uNKekCdgNQqxDmbNyyffQ+cixvMhn33BASKCd+I+PMCqSk6SNjVkJyll35TT?= =?iso-8859-1?q?k0XdT/NJzYsXIR+AN9Ns+TtlNQrPqR+aIgW7DoAPBxO8QxATJXsQytK4m+lK?= =?iso-8859-1?q?TC0LC0SeFLAh3ALdyt7pqQ87VFy9Fmu4BLGP5GAbPDtjYclyXXIN8stcn5XW?= =?iso-8859-1?q?/+2OnCZVi6c7wlGz43WkK2kHwloOtKasuhHKm8H0HfEqJ0KhT8WcGqvcRkaH?= =?iso-8859-1?q?76pGmeA2uKykIRpf8Y1MGdmqCNRTic7lO9IV/o4KTxqCfdnAQJvliBvgw6lE?= =?iso-8859-1?q?UVGmgZM6LLUUYg/3swWcMjbzNQ49WWKoiUGI1BH/DOc1qz6FQFr2hpKngtBw?= =?iso-8859-1?q?pjyIMhms16n6uFPmIR4PW3Ve24NptOFtO8xGzQCslvqHlYp/eIUSki3u14tx?= =?iso-8859-1?q?WgCY=3D?= 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 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" 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; }