From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752413AbbJWDcY (ORCPT ); Thu, 22 Oct 2015 23:32:24 -0400 Received: from mail-bl2on0128.outbound.protection.outlook.com ([65.55.169.128]:51712 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750911AbbJWDcW (ORCPT ); Thu, 22 Oct 2015 23:32:22 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=scottwood@freescale.com; Message-ID: <1445571130.701.151.camel@freescale.com> Subject: Re: [PATCH 9/9] powerpc: optimise csum_partial() call when len is constant From: Scott Wood To: Christophe Leroy CC: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , , , Date: Thu, 22 Oct 2015 22:32:10 -0500 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.16.0-fta1 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Originating-IP: [50.157.106.250] X-ClientProxiedBy: CY1PR0801CA0013.namprd08.prod.outlook.com (25.163.136.151) To BN3PR03MB1480.namprd03.prod.outlook.com (25.163.35.143) X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB1480;2:rErYRmq4TMPxge3bdEFNXlmSdZxHCggZBduihgAsSin72v/W7pr+g6ZisFCUkKimuYNjafFoVVdApCLHqTQZI6x78GjXE/miigR7hcxO2duFraU2YlIwGcHu63CPArW/5HhKJeQ1mXlCtDMSjNcT3SgJLsIb69uSDfYTLSqGGz0=;3:nBJiuhGE7B3Ozl8726vQVOj/kc3vE2Q/A0HlJ5pMOjAWHseT4KC9oB7uXjNU4/QNgFKUhb8O/N9x0t6nyn0nPa2v4FtvB8h28ZiaWHtWfEUf+rmqSwyYXNeP9+0olTvLD/RL7Tu59ijw9Dc2eU3Llw==;25:BbynAeoWiZZdUKWLvXFnBDokuW8c/x7s4OjUIFGFuQFcJzQ76hfBgcd3cSpY3ydwS6fVU7/CSdHRvKiuLtBPDhPlsgTj3AqoqnxlPh+74NQsgOEq1yqfsKn1hkwvP8qBbykrdtyU3k618EFZ7B/mUwhbUD21TMx8ZoCanQhivImyCCmS/NKAlzcrs4Xsbi+zIGALbxh/aFQtwHVq/A1JwJEL+YgYZvSd8Jlk+emXEZiq12AJlqjPYt1zzrH6LdTconTPkS+HYhUoWohcYym9Ww== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1480; X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB1480;20:edQpIi5P7s7Kre3BCWd1mblt5KbTBXo5Jc31l/LobbTODv3pmro6UpJHK46GP74OEYe/vdmwCE47A24M8PH4OX8E5UfQeAZEApHSE7mF42fH73e8mq/81LcIy0J2uhumiK78o/ZQjn3YuTDaqD0sRqosDV5mvSXCz1MltPi6lSNfZ3UVHgp//zeJTD4jyB4bxDXqBfwJia0rV9gzjONUDbpzRvt2iy+yKUnNnOTBiEg964Y1xmvMwt906GJLKpYI8GeXF/nO3TQxukLd2z5QPQNzkG5GfWc91tPqn7VeNCuk9owTgsaPUlYZwDTffRDeDkcKoa0zqYqvs4kFHUT4zwCet1J92bmFH1vJnJlm2qq8/vpX217lmzLrsjLosGk4BA/nlZ681ef7zkg2ADyk1hj8kD6s85ppJD0ShvKUGYt5IQQ/t1CBhR7RtsMtzbEgWxgWPQp54k6rDd1ODM3ndpUFMKQK12fG8Yqm2DZ0/DTzMe5W4WmBR5x5nnm0RdKG;4:f07loTl+RkhN1HkxAG+A7MBpKt+LteM3WUKdS2FeFQ+/iB1UyNey5C8G5hM+4SozUP2bgXIRq0OYDmzVX8kodg5PumfsJzguIPQwN1ESmRRdgdJX+oPtUeSwpYG4AinmhEDh8stoEhysDYIqURXz4oFya4/ECvPQ3t4L9urqsyFAQyaMRpTlZ2Ih99q3ERdlxJk8Tvx9uOyLpCU1ttWN1cV1Hg0nxZtoKbjk5TPnzOfEaCPgl+ZbN3m+lg+x4U6uakKIfo/kFirsMzmu/MUMadSXXFkBNlWLUkWtscVDq3kFZGosrD3IjwmESz2plb6XSXIJHEVViNyh3m8iGAlmlRw7ag28lyHcXNOzzrsuEtvOcE6ZBp58Odw1GpGdFu/X X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(102215026);SRVR:BN3PR03MB1480;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1480; X-Forefront-PRVS: 0738AF4208 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(377424004)(189002)(199003)(24454002)(50466002)(97736004)(101416001)(50986999)(106356001)(5007970100001)(5004730100002)(92566002)(103116003)(189998001)(5820100001)(23676002)(105586002)(86362001)(110136002)(66066001)(36756003)(76176999)(77096005)(19580405001)(50226001)(33646002)(5008740100001)(40100003)(42186005)(2950100001)(47776003)(122386002)(5001960100002)(87976001)(81156007)(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?MTtCTjNQUjAzTUIxNDgwOzIzOll5Q0xGdms5cDU2RS91ZC9nZVdLc0dIVDJP?= =?utf-8?B?V1lNMFhFS1pPbDE4bjZiNktwM1Z5SzNPbEx6REJRcTF2eUR6d1VqVkhiZlpo?= =?utf-8?B?RXdPQ0F0Nm9OaFBJTnc3WjdSSy94M0FWOGVpRlRUajBkYlBtaWFXODVaOHhJ?= =?utf-8?B?MWpQN0pNMnpqcFFtVTlGWktwRTNGa21PakRmVm8zS2JBQnZQOEd3cG1oYVZ0?= =?utf-8?B?SXdpWWc4b2tNMDcxYnF4L0hieHNSbk4zUWMrUENOdGhhSTd4S3d0bStmTWI5?= =?utf-8?B?RkYzeW5TN1EySVJId0F3dkxaeHJlTm1zQjY4ZU8vNlUya0FzVFhmZ1RvelhR?= =?utf-8?B?VCs1MnFjMGZ1Y0VyM3dvQkJ6RFQ4Tm11UnFjYVpHemJWRUtQUzdvTGlMZjVZ?= =?utf-8?B?WTRocTM1RXU1cDFCUFdvRWVRL0pDZHBsYTc3QTZTRDBDbE5XRlpnK3NES1Rx?= =?utf-8?B?L1A0ZjlMR09JZVhjdEVwcWVXbUhOU0RDakQwZ25jcXJ6Q2x3K3cvSlFWWjBM?= =?utf-8?B?NHYwZzBjL0lmd1FuVmlScUhWbHpub3JhRldOM0RlaERGVnRNMnBsZ1ZQRTgw?= =?utf-8?B?WkhVVHN0WDFic29rMmtRcS9KYzB0THIrS0JiSjcxM1d0bzNuMnI5eVFMSWZs?= =?utf-8?B?Sy9sNTBvQ0k1TzUwc0lTQmg3endKUzFRaGJkSmRiUGNkUGNHVXEySkNVcU9q?= =?utf-8?B?VW4yRk5GZEdRU3R3Y3ZOUHVXQXBBdTRHSEdMZFIzWG0xYlRDSDhsdjJManRQ?= =?utf-8?B?LzlzWE9jSVpNK0svOG01WjJPcnBROTRrbTFzY2c4blBmUCszemdIOG8zbU9Q?= =?utf-8?B?YnVXNTlNT0FYZ3JVZHBGT0dtRmUrQjFESmtqei9QOElLdXFkOWJRbE5qKytH?= =?utf-8?B?S1I3UG1PY25jTzZ5MUpzMkdJdkppRm1YM1JLbkk1WTRZa012T21CcWxxRUtn?= =?utf-8?B?L1haZ0Zwemp1bXlZdFY5Q0lPcUIrWlVLUnB2UkRmcTJDSFlwKzVWUTNLV211?= =?utf-8?B?MXdTM2Z0ZXFQT0lnR1pUTnVRRkxhZVE2WmFUNHIyeU5BTkhxd2xVM3Y1d3lh?= =?utf-8?B?SnorUGRjVHZiRjlsOTdYTlJ1Q1MwOCtsQWxUM2FoSC9lSGU4Y3R2TS9lQkF5?= =?utf-8?B?TEpxam1pZG00YWczcXI2MnEzQm0yQ21tVHlRN2tDR3d1WktxWEllaFk4QnVS?= =?utf-8?B?VENGWDhBS0FQTEY5dDczMmVncnhyRXlGdUhWU2JJRUxYL1hQRUVlR3VKdWdk?= =?utf-8?B?SzYzSzQ2eEhkSlBWaWY2aGFkVTFnRmNDWi9xUlJSZitQUnlhUStWWFNjN3hr?= =?utf-8?B?U092WDJCTHQ1TXhlT3psMUMxY2VnaVNmSzVYa1pwQlVhbFE1M3FDcGRqSlFY?= =?utf-8?Q?xq26Caiq?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR03MB1480;5:MTT4xSWZsyydi86XwjvdomW3ppZMnqE1pu5gZMkHPAqvuO7U8inenwdB+zSnCBcnGJdNXhJJWQjh7Yc3SVQlwymsGpu9JnYJq20U1O5oCLONsEKejjmuv676VMGB50VFOPNZcc5TFfqL0HAFh1v7/A==;24:Pa31ZrrA9X9w+jcv6LEbWb8NMokIoAlHiKojUpxhiyuxr55LP04GDNsHbxU9C6kW/DsWdYI4sMkBqqLIx4daq3b8LJ9+ZaF1cullrBTSchM=;20:UDR62h5RhFQVkpSyA2v/Qj+j9ejTPLc6NUjUs0Hz+5OHRWRQmfT7Tw8YJvhE2/kyWIY30DEK97CGCcnZaVALGA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2015 03:32:18.9503 (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 Tue, 2015-09-22 at 16:34 +0200, Christophe Leroy wrote: > csum_partial is often called for small fixed length packets > for which it is suboptimal to use the generic csum_partial() > function. > > For instance, in my configuration, I got: > * One place calling it with constant len 4 > * Seven places calling it with constant len 8 > * Three places calling it with constant len 14 > * One place calling it with constant len 20 > * One place calling it with constant len 24 > * One place calling it with constant len 32 > > This patch renames csum_partial() to __csum_partial() and > implements csum_partial() as a wrapper inline function which > * uses csum_add() for small 16bits multiple constant length > * uses ip_fast_csum() for other 32bits multiple constant > * uses __csum_partial() in all other cases > > Signed-off-by: Christophe Leroy > --- > arch/powerpc/include/asm/checksum.h | 80 ++++++++++++++++++++++++++-------- > --- > arch/powerpc/lib/checksum_32.S | 4 +- > arch/powerpc/lib/checksum_64.S | 4 +- > arch/powerpc/lib/ppc_ksyms.c | 2 +- > 4 files changed, 62 insertions(+), 28 deletions(-) Benchmarks? -Scott