From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 38F2D38532C2 for ; Wed, 30 Nov 2022 16:50:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 38F2D38532C2 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.vnet.ibm.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=linux.vnet.ibm.com Received: from pps.filterd (m0098417.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2AUGNuEF011342 for ; Wed, 30 Nov 2022 16:50:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=message-id : date : subject : to : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pp1; bh=bBn/RT82UWhoElxjdte40nHKhPUXa6mhc4wFoh9oYBI=; b=FQP7oqCBG8v+MfaVqV2esE23Q2CoDyMRotMJi5QckELFKi+/yuUCJCuBsCPmswVRdi5u PP7403r5JR0tQ5PmBGSH4hf/kcjPLOz1VK+6HfQWWIaGQwllKmWwrd8tDX9fuBzLp6Go rklA99tp3Rxbj892UhHDp/+ugx1DRxHD7u2ylD+pc1HI314Brh3CQ60iTBk528zspbBr qyi0rfFNAKAc1nW9B1oA1yNzb/x69EsddsgeVhxcWMxWBBAXsHbFDNtsq409iv0dZ9oR x+rP+qr2WdlF+3fs1faXfkWoufnIYxq9HGBjpgDKaf4vGD8a8wdqsv5Ug/4KYDU20xGm 7A== Received: from ppma05wdc.us.ibm.com (1b.90.2fa9.ip4.static.sl-reverse.com [169.47.144.27]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3m65abt3ss-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 30 Nov 2022 16:50:56 +0000 Received: from pps.filterd (ppma05wdc.us.ibm.com [127.0.0.1]) by ppma05wdc.us.ibm.com (8.16.1.2/8.16.1.2) with SMTP id 2AUGZQkp007473 for ; Wed, 30 Nov 2022 16:50:56 GMT Received: from smtprelay07.wdc07v.mail.ibm.com ([9.208.129.116]) by ppma05wdc.us.ibm.com with ESMTP id 3m3t71s4ts-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 30 Nov 2022 16:50:56 +0000 Received: from smtpav02.dal12v.mail.ibm.com (smtpav02.dal12v.mail.ibm.com [10.241.53.101]) by smtprelay07.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 2AUGosKi42533364 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Nov 2022 16:50:54 GMT Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2C39E58065; Wed, 30 Nov 2022 16:50:54 +0000 (GMT) Received: from smtpav02.dal12v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 134885805C; Wed, 30 Nov 2022 16:50:54 +0000 (GMT) Received: from [9.163.34.35] (unknown [9.163.34.35]) by smtpav02.dal12v.mail.ibm.com (Postfix) with ESMTP; Wed, 30 Nov 2022 16:50:53 +0000 (GMT) Message-ID: <3c74512e-c26b-9167-da31-a3ad5101b83d@linux.vnet.ibm.com> Date: Wed, 30 Nov 2022 10:50:53 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.13.1 Subject: Re: [PATCH] powerpc64: Remove old strncmp optimization Content-Language: en-US To: Paul E Murphy , Rajalakshmi Srinivasaraghavan , libc-alpha@sourceware.org References: <20221129160257.1947346-1-rajis@linux.ibm.com> <8071be27-aebe-6f59-5929-ebf4807046c7@linux.ibm.com> From: Rajalakshmi Srinivasaraghavan In-Reply-To: <8071be27-aebe-6f59-5929-ebf4807046c7@linux.ibm.com> Content-Type: text/plain; charset=UTF-8; format=flowed X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: aAWh02kkUp8l0UqVQruqqxF7lezX8zNE X-Proofpoint-GUID: aAWh02kkUp8l0UqVQruqqxF7lezX8zNE Content-Transfer-Encoding: 8bit X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-11-30_04,2022-11-30_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 lowpriorityscore=0 mlxscore=0 spamscore=0 suspectscore=0 clxscore=1011 bulkscore=0 priorityscore=1501 adultscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2211300115 X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,NICE_REPLY_A,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 11/29/22 4:37 PM, Paul E Murphy wrote: > > > On 11/29/22 10:02 AM, Rajalakshmi Srinivasaraghavan via Libc-alpha wrote: >> This patch removes the power4 strncmp optimization for powerpc64 and >> uses >> __strncmp_ppc implementation instead.  Currently, both power4 and ppc >> IFUNC variants result in similar performance. > What cpu was used to test performance? I'd be curious if this holds > for something like the venerable ppc970. Compared __strncmp_power4 and __strncmp_ppc benchtest numbers on POWER8 and POWER10 systems. > >> >> Tested on ppc64le with and without --disable-multi-arch flag. >> --- >>   sysdeps/powerpc/powerpc64/multiarch/Makefile  |   3 +- >>   .../powerpc64/multiarch/ifunc-impl-list.c     |   2 - >>   .../powerpc64/multiarch/strncmp-power4.S      |  23 -- >>   sysdeps/powerpc/powerpc64/multiarch/strncmp.c |   3 - >>   sysdeps/powerpc/powerpc64/power4/strncmp.S    | 225 ------------------ >>   5 files changed, 1 insertion(+), 255 deletions(-) >>   delete mode 100644 >> sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S >>   delete mode 100644 sysdeps/powerpc/powerpc64/power4/strncmp.S >> >> diff --git a/sysdeps/powerpc/powerpc64/multiarch/Makefile >> b/sysdeps/powerpc/powerpc64/multiarch/Makefile >> index 6f2436b660..ed25e234ba 100644 >> --- a/sysdeps/powerpc/powerpc64/multiarch/Makefile >> +++ b/sysdeps/powerpc/powerpc64/multiarch/Makefile >> @@ -12,8 +12,7 @@ sysdep_routines += memcpy-power8-cached >> memcpy-power7 memcpy-a2 memcpy-power6 \ >>              strnlen-power8 strnlen-power7 strnlen-ppc64 \ >>              strcasecmp-power7 strcasecmp_l-power7 \ >>              strncase-power7 strncase_l-power7 \ >> -           strncmp-power8 strncmp-power7 \ >> -           strncmp-power4 strncmp-ppc64 \ >> +           strncmp-power8 strncmp-power7 strncmp-ppc64 \ >>              strchr-power8 strchr-power7 strchr-ppc64 \ >>              strchrnul-power8 strchrnul-power7 strchrnul-ppc64 \ >>              strcpy-power8 strcpy-power7 strcpy-ppc64 stpcpy-power8 \ >> diff --git a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c >> b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c >> index 5a3c7a5886..238f784146 100644 >> --- a/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c >> +++ b/sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c >> @@ -171,8 +171,6 @@ __libc_ifunc_impl_list (const char *name, struct >> libc_ifunc_impl *array, >>                     __strncmp_power8) >>             IFUNC_IMPL_ADD (array, i, strncmp, hwcap & >> PPC_FEATURE_ARCH_2_06, >>                     __strncmp_power7) >> -          IFUNC_IMPL_ADD (array, i, strncmp, hwcap & >> PPC_FEATURE_POWER4, >> -                  __strncmp_power4) >>             IFUNC_IMPL_ADD (array, i, strncmp, 1, >>                     __strncmp_ppc)) >> >> diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S >> b/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S >> deleted file mode 100644 >> index df6ad6ae9c..0000000000 >> --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp-power4.S >> +++ /dev/null >> @@ -1,23 +0,0 @@ >> -/* Copyright (C) 2013-2022 Free Software Foundation, Inc. >> -   This file is part of the GNU C Library. >> - >> -   The GNU C Library is free software; you can redistribute it and/or >> -   modify it under the terms of the GNU Lesser General Public >> -   License as published by the Free Software Foundation; either >> -   version 2.1 of the License, or (at your option) any later version. >> - >> -   The GNU C Library is distributed in the hope that it will be useful, >> -   but WITHOUT ANY WARRANTY; without even the implied warranty of >> -   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU >> -   Lesser General Public License for more details. >> - >> -   You should have received a copy of the GNU Lesser General Public >> -   License along with the GNU C Library; if not, see >> -   .  */ >> - >> -#define STRNCMP __strncmp_power4 >> - >> -#undef libc_hidden_builtin_def >> -#define libc_hidden_builtin_def(name) >> - >> -#include >> diff --git a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c >> b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c >> index da3de73c27..7400ed3b9a 100644 >> --- a/sysdeps/powerpc/powerpc64/multiarch/strncmp.c >> +++ b/sysdeps/powerpc/powerpc64/multiarch/strncmp.c >> @@ -26,7 +26,6 @@ >>   # include "init-arch.h" >> >>   extern __typeof (strncmp) __strncmp_ppc attribute_hidden; >> -extern __typeof (strncmp) __strncmp_power4 attribute_hidden; >>   extern __typeof (strncmp) __strncmp_power7 attribute_hidden; >>   extern __typeof (strncmp) __strncmp_power8 attribute_hidden; >>   # ifdef __LITTLE_ENDIAN__ >> @@ -46,7 +45,5 @@ libc_ifunc_redirected (__redirect_strncmp, strncmp, >>                  ? __strncmp_power8 >>                  : (hwcap & PPC_FEATURE_ARCH_2_06) >>                ? __strncmp_power7 >> -             : (hwcap & PPC_FEATURE_POWER4) >> -               ? __strncmp_power4 >>                  : __strncmp_ppc); > Minor nit, does the spacing of __strcncmp_ppc need updating here too? Ack.