Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp907749pxf; Wed, 7 Apr 2021 14:45:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxryIMIS9qxkT2Gsl2rNFTV0015lS4cmblTppSUCTpcXXVJ7TfhqvcK4st+36U685vuBex6 X-Received: by 2002:a17:907:75d9:: with SMTP id jl25mr6159040ejc.452.1617831939516; Wed, 07 Apr 2021 14:45:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617831939; cv=none; d=google.com; s=arc-20160816; b=TmZc+ViBzRaUE5hFRsPi9Pxfan1/ARNOHA1rmnBxLVCjgdFgKBH36VBY5WsG8y1L+m rbdm8Oz+qcIYivEHI8+7pd2Mlvvh9+nF1BNFeR/QeepwIHMyxhzuUDZA38p7atw3zE8s lSTKcUXH91FlxX5/7sbJyrQQnWDPKB99GsLgk9MEqFS8S/yDPrnZTA7Grx9X/apctp1o emEHFkhM4NUjp7eE5mOxmj3xin4BMmEI5yGg55YDlp6HLBUzv83ETIfncYvwP1yMKJA2 C+NHIg3ZJyxU0afKnTL0s5fdShzD1paXj+dByBgJ5Bw/QPuBBNmscBz/fW2F5UDDzzNm tTiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:date:cc:to:subject:from:references:in-reply-to :message-id; bh=TZ2ueg+p3hmFxKcxruCSOq7z2+CZOFlm1a2S82l3cC4=; b=zw/f1QQujxnIOjQvxFrBAqFODiytqmeGhdqEbTaCk4nAyGV3SGu5ZKFU5OKBEcP2Le Uahx7KYlVZfwH6+nj5Lk71ZTxth+eMj1rFRDQTvU30GzDfoFYobEVH8nLmOgar6I41cI qzuEAxZUv+FecTTy9/2IXo7nfz2HcVcZju8RkYYmlM8boDMqyE1mog2Hjxjyvlmis9n9 kNOLkNNKXsMRoNFnYFHdQ9ol7kdWOmw8xR571k9ZAP1g7hdj0XnDhu98SmOcbpYro5jy 1SvIxG6Cze+dJjMChlEtyZjiKekFozFfl5opupcAlF9tBGVb26FFaBtnPIYMaHCh9rLA n8tA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s10si6315630edw.351.2021.04.07.14.45.16; Wed, 07 Apr 2021 14:45:39 -0700 (PDT) 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; 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 S1354818AbhDGRW4 (ORCPT + 99 others); Wed, 7 Apr 2021 13:22:56 -0400 Received: from pegase1.c-s.fr ([93.17.236.30]:58580 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354801AbhDGRWv (ORCPT ); Wed, 7 Apr 2021 13:22:51 -0400 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 4FFrnB6YF0zB09Zb; Wed, 7 Apr 2021 19:22:38 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id DIbYkYthL9sh; Wed, 7 Apr 2021 19:22:38 +0200 (CEST) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 4FFrnB5NmXzB09ZS; Wed, 7 Apr 2021 19:22:38 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 5D5FD8B7B6; Wed, 7 Apr 2021 19:22:40 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id RzSZtGe-hbcX; Wed, 7 Apr 2021 19:22:40 +0200 (CEST) Received: from po16121vm.idsi0.si.c-s.fr (unknown [192.168.4.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 187418B75F; Wed, 7 Apr 2021 19:22:40 +0200 (CEST) Received: by po16121vm.idsi0.si.c-s.fr (Postfix, from userid 0) id E26BD6799B; Wed, 7 Apr 2021 17:22:39 +0000 (UTC) Message-Id: <4443fe7b7aa391221fe09a3d58e15a20dbf9fd26.1617816138.git.christophe.leroy@csgroup.eu> In-Reply-To: <311235752428dacbee81728767aacc2bf4222384.1617816138.git.christophe.leroy@csgroup.eu> References: <311235752428dacbee81728767aacc2bf4222384.1617816138.git.christophe.leroy@csgroup.eu> From: Christophe Leroy Subject: [PATCH v1 6/8] powerpc/mem: Help GCC realise __flush_dcache_icache() flushes single pages To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Date: Wed, 7 Apr 2021 17:22:39 +0000 (UTC) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 'And' the given page address with PAGE_MASK to help GCC. With the patch: 00000024 <__flush_dcache_icache>: 24: 54 63 00 26 rlwinm r3,r3,0,0,19 28: 39 40 00 40 li r10,64 2c: 7c 69 1b 78 mr r9,r3 30: 7d 49 03 a6 mtctr r10 34: 7c 00 48 6c dcbst 0,r9 38: 39 29 00 20 addi r9,r9,32 3c: 7c 00 48 6c dcbst 0,r9 40: 39 29 00 20 addi r9,r9,32 44: 42 00 ff f0 bdnz 34 <__flush_dcache_icache+0x10> 48: 7c 00 04 ac hwsync 4c: 39 20 00 40 li r9,64 50: 7d 29 03 a6 mtctr r9 54: 7c 00 1f ac icbi 0,r3 58: 38 63 00 20 addi r3,r3,32 5c: 7c 00 1f ac icbi 0,r3 60: 38 63 00 20 addi r3,r3,32 64: 42 00 ff f0 bdnz 54 <__flush_dcache_icache+0x30> 68: 7c 00 04 ac hwsync 6c: 4c 00 01 2c isync 70: 4e 80 00 20 blr Without the patch: 00000024 <__flush_dcache_icache>: 24: 54 6a 00 34 rlwinm r10,r3,0,0,26 28: 39 23 10 1f addi r9,r3,4127 2c: 7d 2a 48 50 subf r9,r10,r9 30: 55 29 d9 7f rlwinm. r9,r9,27,5,31 34: 41 82 00 94 beq c8 <__flush_dcache_icache+0xa4> 38: 71 28 00 01 andi. r8,r9,1 3c: 38 c9 ff ff addi r6,r9,-1 40: 7d 48 53 78 mr r8,r10 44: 7d 27 4b 78 mr r7,r9 48: 40 82 00 6c bne b4 <__flush_dcache_icache+0x90> 4c: 54 e7 f8 7e rlwinm r7,r7,31,1,31 50: 7c e9 03 a6 mtctr r7 54: 7c 00 40 6c dcbst 0,r8 58: 39 08 00 20 addi r8,r8,32 5c: 7c 00 40 6c dcbst 0,r8 60: 39 08 00 20 addi r8,r8,32 64: 42 00 ff f0 bdnz 54 <__flush_dcache_icache+0x30> 68: 7c 00 04 ac hwsync 6c: 71 28 00 01 andi. r8,r9,1 70: 39 09 ff ff addi r8,r9,-1 74: 40 82 00 2c bne a0 <__flush_dcache_icache+0x7c> 78: 55 29 f8 7e rlwinm r9,r9,31,1,31 7c: 7d 29 03 a6 mtctr r9 80: 7c 00 57 ac icbi 0,r10 84: 39 4a 00 20 addi r10,r10,32 88: 7c 00 57 ac icbi 0,r10 8c: 39 4a 00 20 addi r10,r10,32 90: 42 00 ff f0 bdnz 80 <__flush_dcache_icache+0x5c> 94: 7c 00 04 ac hwsync 98: 4c 00 01 2c isync 9c: 4e 80 00 20 blr a0: 7c 00 57 ac icbi 0,r10 a4: 2c 08 00 00 cmpwi r8,0 a8: 39 4a 00 20 addi r10,r10,32 ac: 40 82 ff cc bne 78 <__flush_dcache_icache+0x54> b0: 4b ff ff e4 b 94 <__flush_dcache_icache+0x70> b4: 7c 00 50 6c dcbst 0,r10 b8: 2c 06 00 00 cmpwi r6,0 bc: 39 0a 00 20 addi r8,r10,32 c0: 40 82 ff 8c bne 4c <__flush_dcache_icache+0x28> c4: 4b ff ff a4 b 68 <__flush_dcache_icache+0x44> c8: 7c 00 04 ac hwsync cc: 7c 00 04 ac hwsync d0: 4c 00 01 2c isync d4: 4e 80 00 20 blr Signed-off-by: Christophe Leroy --- arch/powerpc/mm/mem.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 9a5542f4de92..460ab5000a3f 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -522,7 +522,7 @@ EXPORT_SYMBOL(flush_dcache_icache_page); */ static void __flush_dcache_icache(void *p) { - unsigned long addr = (unsigned long)p; + unsigned long addr = (unsigned long)p & PAGE_MASK; clean_dcache_range(addr, addr + PAGE_SIZE); -- 2.25.0