From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756279AbbJHTNH (ORCPT ); Thu, 8 Oct 2015 15:13:07 -0400 Received: from mail-bl2on0113.outbound.protection.outlook.com ([65.55.169.113]:53661 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752384AbbJHTNF (ORCPT ); Thu, 8 Oct 2015 15:13:05 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=scottwood@freescale.com; Message-ID: <1444331568.5336.328.camel@freescale.com> Subject: Re: [PATCH v2 22/25] powerpc32: move xxxxx_dcache_range() functions inline From: Scott Wood To: Christophe Leroy CC: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , , Date: Thu, 8 Oct 2015 14:12:48 -0500 In-Reply-To: <561514D4.9090406@c-s.fr> References: <20150929002935.GK6161@home.buserror.net> <561514D4.9090406@c-s.fr> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.0-fta1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Originating-IP: [50.157.106.250] X-ClientProxiedBy: CY1PR12CA0006.namprd12.prod.outlook.com (25.160.137.16) To BN3PR03MB1480.namprd03.prod.outlook.com (25.163.35.143) X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB1480;2:MpDJ43ORef1gyX2YslDF8Pzt+eRuorHGq/4LcgK64H4sEbd0b+A3qALfzXKOplLeTtxiHEX7naif2Y8T2UxaJ/YHljeYY/bfGYQpdSNwkEvKMhyMoEoxH9lsz5zqAdaN5kbMXYwNeAMsazjwfD5Om2f1uGKBN/DJT/X6Nas8Lds=;3:KQgliDJ/Ans2QOEzcjU9W3Aw2f+9S2NtiwuAXY4SU+n+JuvWU0ay1xTiFvj0FDpK89w2T9sEjw4U9gXRoO8aQ2mirv7EDJ6jiXcuDeBuCjxGwW2obhPHdOvfXuTCHGoNG2nDiRe7H+VwampjppILsw==;25:0xDdhyDiLm0Qt3sYEb9ltYl3+Vst1MVRPb7S+Kdq8SgXdJpnrwgFZV0ocI9NIEbn/NEvb8FaPAJNmWMh6kMPVBrA7N9bpBavRSazBexBf8LXaK4kVpbGFnIsUr8OR1Zru8pKz3z+7KsVwL46fBYAlGrOhNKesNRXo5ePyQQu3sFAbj6uYNHQjUI2kFmjiNTWXfGs79yggMNhVJYR07AA6gdhCaiiX+pE0FXPITT9cCAHhTQvbgyX5xG/xmwLe6ONg/xcXuegrnRADsgn/ilwTw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1480; X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB1480;20:fEIvv9aJzmSOzvMKLx+cL6s7lyWqDhMkowtLmzAiNSdDmApzTApu6V4BbjnVjHW+sG8l9XGzJtjTRn0E5MlSPUMUBMsnC10N98ckfg7nEFknpFWvt4+4yAEjCE6Ug49wh0t4WaG48FkxFc2EDHCXloM+u7A1d5b6CpA9k7l26ZSTV1usrC7AW5Y6xSYsYyLypGaupQY2jl9u/KZkf6Hnnd8cRi61+1Avw4SpU3WwfJjD7oi/stWdH19VHHVE8ytd+5S1P6P8HyPZNshO8dNEvkJNFcPzB9lbk/QH3+a27i+HSrChkENoftCiCINZf30A0sYbCkcLTS7xSrdaGsMX7hfX2D/Ru4VzSzg54NUaEgU2yOwCzwwLq028M2xgGRPxqe18Hol1fYb1hZxUDzKEvZcpNRx+jmij9HrmhcXQD81Hjrd+o3exDJxJ/Em6V5W4iOhHUGQhFZa9krysMn73ZpcszorIZ8W1WRjDU3VOkSyn+AlM6uQ3lnkTiamvrMb6;4:MLiHtmDhlAcuz6GfXvSGeSyPJT/rp2qz4QbyGTsTq7gcCE/Wdq3lbPDuIA7gOzeivUzHP0E3p5nHUWarDo4g6FffdcNzYRZYcFD5txlKHBGIFGpVsjjGNA26f7Hn0jqwoiCYQn1TdBaRjI7k2oKfjImdCDuZRUdzm1rP8nTycJ6MJKibOwHJE66pMClVF+rDOKuMHW6+zlqycVoVTJX8pIz1E08hHQT30i+ptE0Lksvy4R1tyisqDIDKR/P48EFTOVAA5XrZQNJfVGQuXyO7ab6stJbruDIT4oeXIfCYC6WgrMSmHZOBcA2A+TN0anht32U8krMytf5zVqNqCdg/K3Ts6oeIr2X9LxeF9wdBjes= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001);SRVR:BN3PR03MB1480;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1480; X-Forefront-PRVS: 0723A02764 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(479174004)(377424004)(189002)(24454002)(199003)(103116003)(36756003)(5820100001)(81156007)(5004730100002)(97736004)(50226001)(93886004)(76176999)(122386002)(77096005)(86362001)(5008740100001)(5007970100001)(92566002)(189998001)(5001960100002)(110136002)(50466002)(2950100001)(33646002)(46102003)(19580405001)(42186005)(101416001)(50986999)(23676002)(40100003)(47776003)(64706001)(87976001)(106356001)(105586002)(66066001)(99106002);DIR:OUT;SFP:1102;SCL:1;SRVR:BN3PR03MB1480;H:snotra.local;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjNQUjAzTUIxNDgwOzIzOmJ0UEExTzFHQ3JHek53ZzIwRUp5UjZtTVUz?= =?utf-8?B?MXExL3RucVlSbGt0UVpaUW1hVVFoYjZLNFVwSmx4Sm5SL2pIdENocGZEamJn?= =?utf-8?B?MUxmcGtBUUxEaGQ5R015RTcyWnF4bkczRHQ5Y1J2Vk5NYkZxQ1luay9QdHRN?= =?utf-8?B?VFZ2Qm1yTVNyOGlJQXJZRG5mUkd4NFFveVgwVzhVK1pGS3kreHFlblVwTUVz?= =?utf-8?B?UXd5aE1ZNEcyeVJBNWpCUlVtMFVBQWZIdWgwUllFaHcwMld0SGRnK2l2MjRB?= =?utf-8?B?dEd1S3dhRlNEb0J6N2U4SFlhZVpINHRuSmpjUzN2QTIyUXo0TFJ1NTFheFJv?= =?utf-8?B?emRaMHo2aTJWdlhPT2k0UXIrcWJVVFovZG1NSTdUYWQrZVBRK3RRVkNRdGRG?= =?utf-8?B?VHg1S3RFUEVjVnFPQVd3MU1qVmJvYmljZVJqTFBkQ3k4OThJNVdEcXRVMFYy?= =?utf-8?B?R2xkZ2pheElETGtTZDFXbFkwQWR3aDRQU2pHL0pKK25HZVZyRHpmVHpxdHc4?= =?utf-8?B?eWZ2Mlp5U1o3MzdjTHJFVFJjMEg3azFNQTk5YXRaRHYxZVhmcDRIOGRBaEgw?= =?utf-8?B?ZmpFMWkzN25Uc1Z6NCtaMTJQaEJKSklJYW81SGxmcUt0bG4xYUo3Y2FVRktG?= =?utf-8?B?ZXQyWCtYOTBZNDBQd3d0bHIzRkJMVXJSS2thRnZzZjB3QVpsNlN2dVgrakIz?= =?utf-8?B?N2R2Qk9XSGllQmlJVkNIT0FXd0hEVmJ5eEVsUWppMnk5U3BYWU5WQ1BmR1pT?= =?utf-8?B?L2xSM0F2L3RTY3hDZTNQa1JQR0FHUEZuc1VCMnBtYmJmM3ZoZXdjd1hrMDE2?= =?utf-8?B?cWo1cUdsbVVLUE1KUWdMN1ZNMXI0RjRCSkNvVjVackpzcFNEWEVSaXF1M2Np?= =?utf-8?B?TFNQckk5bC9Nd25jQU5DTVZBbWZIOWNCSGNjNFhvZ2NaMGVvVHJJWi9Oa3hs?= =?utf-8?B?bnpoZWtBZXAvZmdpUlhNeW45b0Q1Qm9IZnNuZk5mZTJRNTBha05GNFIvY3RR?= =?utf-8?B?aExtUWFYYS9tVEY0TGdzWGF0eFVvcEJsalhyOG9VVm9nSlQ0QldVTVplTktI?= =?utf-8?B?RW1ScFlWa045a1RmTU5ZSGtrczBoVTFPcTFndGtYckdTU2pDR1hNb3pnNjZ3?= =?utf-8?B?enU0c25mb0FZQUVPMEVydFQrS0pqUFJUYzhSN29hdEVWSzgxS0wrTnBYcVdE?= =?utf-8?B?U3ppR09qVEZRQUVSNDhPNXd4SWVLTi9iZEtma011WmxPWEV1blV4TUFhMHJn?= =?utf-8?B?SUR2dEpHcDVjKy9aQm5tM01pVWxJMU44c2tKZDA2QUZzVnVrRURGVlllYW40?= =?utf-8?B?TCtFY1ZvOEk5b2E0UmdNNE1tQ1N0SDZqOHpoc3hOVXV0OHFFVWRmYVYwUVhS?= =?utf-8?B?NTR2UXVvV3ZHbEJ2SGdhdWVycThMNVBEdktlZ2FFczg0ekpLQTgyQzdSKzJM?= =?utf-8?B?RThjMStCSS82ZkpYUzlUY25zVHljYVZDejhRVUJsNnlrWEhmV012NWRLTHJP?= =?utf-8?B?T3hHQT09?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB1480;5:wVgMbJmlZAbKScDicBFhJuPzVfQs7McQXtGvUx0jbFLF2qshODTv+PVCj1/+cxqqX4dbsEy+Limm30HMGEcZL006tHen3XAkO7s94dUHo+7Dwl9A2jALmZjryR4NaQZcbJV9ctyoXKmdrscjej09qg==;24:TP2/bdhHMcMTpL1FbB+on5AA3r52J9rb6Fr5SRin4wGdVozqAizSKmG4/E9fAXCLKgU05CHjDKNx/nmGZ1KDLCAAW5EDTutw9TXi1myHmsY=;20:3FBnHilSYebuQv6ZkubeeCXo9TbOqP3JIGplaTat4vqC9RH+bvUy3pX7ap8/Deze4rFmQtrDHk5m/EO98NBmgQ== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Oct 2015 19:12:55.7994 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB1480 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2015-10-07 at 14:49 +0200, Christophe Leroy wrote: > Le 29/09/2015 02:29, Scott Wood a écrit : > > On Tue, Sep 22, 2015 at 06:51:13PM +0200, Christophe Leroy wrote: > > > flush/clean/invalidate _dcache_range() functions are all very > > > similar and are quite short. They are mainly used in __dma_sync() > > > perf_event locate them in the top 3 consumming functions during > > > heavy ethernet activity > > > > > > They are good candidate for inlining, as __dma_sync() does > > > almost nothing but calling them > > > > > > Signed-off-by: Christophe Leroy > > > --- > > > New in v2 > > > > > > arch/powerpc/include/asm/cacheflush.h | 55 > > > +++++++++++++++++++++++++++-- > > > arch/powerpc/kernel/misc_32.S | 65 --------------------------- > > > -------- > > > arch/powerpc/kernel/ppc_ksyms.c | 2 ++ > > > 3 files changed, 54 insertions(+), 68 deletions(-) > > > > > > diff --git a/arch/powerpc/include/asm/cacheflush.h > > > b/arch/powerpc/include/asm/cacheflush.h > > > index 6229e6b..6169604 100644 > > > --- a/arch/powerpc/include/asm/cacheflush.h > > > +++ b/arch/powerpc/include/asm/cacheflush.h > > > @@ -47,12 +47,61 @@ static inline void > > > __flush_dcache_icache_phys(unsigned long physaddr) > > > } > > > #endif > > > > > > -extern void flush_dcache_range(unsigned long start, unsigned long > > > stop); > > > #ifdef CONFIG_PPC32 > > > -extern void clean_dcache_range(unsigned long start, unsigned long > > > stop); > > > -extern void invalidate_dcache_range(unsigned long start, unsigned long > > > stop); > > > +/* > > > + * Write any modified data cache blocks out to memory and invalidate > > > them. > > > + * Does not invalidate the corresponding instruction cache blocks. > > > + */ > > > +static inline void flush_dcache_range(unsigned long start, unsigned > > > long stop) > > > +{ > > > + void *addr = (void *)(start & ~(L1_CACHE_BYTES - 1)); > > > + unsigned int size = stop - (unsigned long)addr + (L1_CACHE_BYTES - 1); > > > + unsigned int i; > > > + > > > + for (i = 0; i < size >> L1_CACHE_SHIFT; i++, addr += L1_CACHE_BYTES) > > > + dcbf(addr); > > > + if (i) > > > + mb(); /* sync */ > > > +} > > I know this is 32-bit-specific code, but it's still bad practice to use > > "unsigned int" for addresses or sizes thereof. > > > > > Ok, I can fix size, but what about start and stop ? If I change that, it > means I also have to fix all caller. Do you expect me to do that ? start and stop are already unsigned long. > And it is very unlykely, but what if for some reason someone wants to > invalidate the entire user address space which is 3Gbytes size ? A > signed size would be negative here. Why would size be signed? -Scott