From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 920653858D1E for ; Thu, 10 Feb 2022 21:08:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 920653858D1E Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 21AKbKoq013393 for ; Thu, 10 Feb 2022 21:08:17 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3e368u2cay-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 10 Feb 2022 21:08:16 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 21AL5u2U060477 for ; Thu, 10 Feb 2022 21:08:03 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2107.outbound.protection.outlook.com [104.47.58.107]) by userp3030.oracle.com with ESMTP id 3e1ec5t53r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 10 Feb 2022 21:08:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hu0piaOYf6bbBAioh7annS+/+vIMyHEqxlR5QFqqwBaUDcreNPA8CReFxqO/QGD7UcHHsNEWYNyVPuOfwdMhoEDBMrVqDEVurPmM0vsUEKY2M9GcOKELwIBhJtIO0SEMDRSeTI51VBhKqKsBgOpCWUfxHrPIYXYnV91zTAIYf0X9iXYZj+g3og2TEtgqFAqm7AYLAkAVm8KGAHQzbCvpGBkkhjEIHv6eEHQYsGGqP5OH3tWES1PjWuWLEzwtRwza3uYE1GJXPUloqKvsHgBHYj+Ia8SfNuuKHzz1yu8dCT7a156Eh2N8DcKF6WOfMqti7Xep2g16HT2doCdhlCbVbw== 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=DRciHolnUEN2lMBoej9nTw+Yd+NKMBq2x2cEiI9zvxA=; b=cajdqdgcAWKPNyaIAJQFu0Z/hrJ85XhaTe0VtCIDzU7mzyYUU4MlFXfFaqIZso+xIlYd0nG46ge2vIeZuH4W1F6Zpv1CXUPfxf6RojFpM8EdyuGOOLsHD+ZK4UzswmYmHFyqc33dlYVdzrLVu45WyDrPbbPikxHgh+qJNdDBtmJkYlWFwyVa1hWGX2n2O3Q2Rl5PfpT1k8zhPoAg2bz8A0Dz9XdOgVzRtS9oPff66xev6axqp7YEa+ybh0SM4nsXIhrl1OdkYRt4PXeevJ8mXZa9M2ThKLr2V1IbMJ4kPTOQTSo1lNSeglTVuPW77Rn0rkHixbJBYJV+gEeAeMQ4JA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from BYAPR10MB3208.namprd10.prod.outlook.com (2603:10b6:a03:159::10) by BN7PR10MB2563.namprd10.prod.outlook.com (2603:10b6:406:c3::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Thu, 10 Feb 2022 21:07:59 +0000 Received: from BYAPR10MB3208.namprd10.prod.outlook.com ([fe80::782e:2286:183e:ac74]) by BYAPR10MB3208.namprd10.prod.outlook.com ([fe80::782e:2286:183e:ac74%5]) with mapi id 15.20.4951.018; Thu, 10 Feb 2022 21:07:58 +0000 Message-ID: <0efdd4fe-4e35-cf1d-5731-13ed1c046cc6@oracle.com> Date: Thu, 10 Feb 2022 15:07:54 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1 Subject: Re: [PATCH v2] x86-64: Optimize bzero Content-Language: en-US To: libc-alpha@sourceware.org References: <20220208224319.40271-1-hjl.tools@gmail.com> <1f75bda3-9e89-6860-a042-ef0406b072c1@linaro.org> <78cdba88-9e00-798a-846b-f0f77559bfd5@gmail.com> From: Patrick McGehearty In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: MN2PR03CA0024.namprd03.prod.outlook.com (2603:10b6:208:23a::29) To BYAPR10MB3208.namprd10.prod.outlook.com (2603:10b6:a03:159::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: af2ee433-47e9-4a7e-a121-08d9ecd96a58 X-MS-TrafficTypeDiagnostic: BN7PR10MB2563:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Qtg6qw0iELnQ56+PaeZD8kAsLdk7la/kj4ZFsODrCGyzOy1lrXnp9MT7CDvsQ02mlnKPdsX/ekZK0qHYebjBR1ONnfsDStxhcLIzvJaVSSONEjCcCEXhLAdmf6sVBKrPCEmfj7T66bEJZvzbGF4QbvcKF6ZqB3475GO2rhqJBVRx2wE8VxVi/ikETep87wC8pm0nLkkbRlH/VuysFgwGmRMC8tSPWXUWYT2SWVk409yj1MAvdpfJUrdaRHBBy652JP8EAcomDedQ+p94QyJNWeaAcdznwL+JlRRUGWkAKK676Xn5YUPhuk2HyBmHLxRb/bezv/mcRyDD8f53yrbtiCFlTGjclnKT5hIaKagGwc8q4jOM6mlxL8+e1YK2O3ePtXi4UD/sSpfSCYdI70Us+bGneHXTtFlrzXHD30VcxEspu4QnXy4B1L+Q4JZmOM+wEPUuMvNbLdVTsaLNv+o+Ms7SDMNiahmutihgOKKBkmgMFB59l4U9CunCJ9PCvTDT6HRVJXPCNcrj/pciaM0SngFCNL8yvH+7UeNkIdYch00/Vk1feeht3uBu3juNWbw9yPzZvR88BmgVwRjTpSDf1xI8eCnsXV391olrUkw2vCtduaRqn0zntka/fWbQWZwYcTF1IclH6pBOLYVUWneBg9NxpLsyegoQ0LA6d3FHW+UQ85vrrMfEbO5w5NC4lxWtnLFq+GObtWLldhQhnw4zYtR2bWwzvQg6Bkw8llbjSAfuC+yiKtIZ0M57Y/adze+CKMitmzcLB2MhPoBeZBZFUI1pCCo3FmembPUc7gXfTgR8bsLl8G8RoHYSdHGeQxTa+CY9h8bcwATclc5gT6AC/AUlUgSbtJPTtXd4taiEYu0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR10MB3208.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(508600001)(6666004)(36756003)(6512007)(38100700002)(38350700002)(966005)(316002)(2906002)(6916009)(31696002)(6506007)(83380400001)(66476007)(66946007)(31686004)(8936002)(6486002)(53546011)(86362001)(52116002)(66556008)(8676002)(5660300002)(186003)(2616005)(26005)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SHRUUDJROGVWVWQrTkw5SjhIUDE5U1JzNldEN3R4OVMwK0I4ejdsQ0FTTEdE?= =?utf-8?B?cDVGb2cvNHZtdFpqbGlPNklxZS9TZ2dNOEI5Ry94Z25VallJNTdxR29BVHpS?= =?utf-8?B?U2FKby9ydlNkbkF0R1l2ZTloNjhpRnV6WkViL3FmL1RLL2RJa2d2TitHUXB4?= =?utf-8?B?NnY1MW1qSGliakZCZHB3ZjVTcVAxa0JaZzJ5SWdFSjhueWZRTjRudUZzS3N2?= =?utf-8?B?R1JJRUV4bTV5K256OGMyZ0ZybnJwS3ZFN2hRZlZUMDYwTUtPK3dNZklwYisw?= =?utf-8?B?N2JPeW01aDBKY1pRSC9OeEtQVmRzTzl6MzNkQ0Z4NC84SUIwT0ZvTDM2aUJ2?= =?utf-8?B?TnYwbFlCK0ZSRFFSZE5RS3Vja3VnZXMvT21UM2JZQU9jL0Q2L0dQN2JEUkpa?= =?utf-8?B?ZXI2WXhXL2tKdlVuK2FSSkkxbVBKdFgvTjhCcjJMc0xaS1AwaFUxWWhLNlJU?= =?utf-8?B?RjNLdnBTYXp2M3ZmdzJWUG1LRGQwOFNHRlNKVzlKbWJBMnZRWjh2eEpoNnFm?= =?utf-8?B?UDJITElldnhrUGZwL2pFY1hlM011OENsbG8xWGY3Y0lZenFkWDNrWnpuZERQ?= =?utf-8?B?bDFEVGZES0prbDd0aXVBa2hma3B3SjN5OXFSck1TeU5rSzFuSXFRcFVWWllx?= =?utf-8?B?SjRCYytoZVJ4OEVKY1VGUGhIWUNzS2RIZ0Z2S0dXd2grdCtNTWsvbkpuQTFS?= =?utf-8?B?UFdCcGZIbVo0OWl2cHl5bmtraGdDTDV5SDNjWG9jbk5oU2RlZ05QeEd3SnpL?= =?utf-8?B?LzRkUTJjakI5SE1ZV3VpMllPb3pad2huZXQrcXNFL2lzcWl0UmNaZ1ZnMGd5?= =?utf-8?B?R0NSN2kyOHREQWcyczQwaG5qMlJiV0dKUEQvNi9OTjB6czgwU2ZSeUlqN3ZQ?= =?utf-8?B?SG9rZmNFV2FoZndtVCtyVHpVY2xwMVJER3dQb3ovSGZxUU9YUkJubS81Qmdw?= =?utf-8?B?eUc5ZzQ0WUNKNXFScFZJRkNmSVhnMHpzempXQ1dWUWJjRUZtV1NEeEJXSW93?= =?utf-8?B?NG45b014QjFJRHlpVHZwUG5nL3NvT2p3VmFzWmtqVm5tb3N6TXlaUjd3ZU9q?= =?utf-8?B?MEk5UURRM0xFK3dDdE0weElla2J1RE13OXBRV2Jid2pnYjkxR1dRb3dHd2sy?= =?utf-8?B?WWdqOWRLR0lnTlA1REU0NWltZDVBVDRadEdTWXdYcVJpZlVMSTZSNmZhWlNo?= =?utf-8?B?L0Q5anhlWDY0NTNrSFIxYTh2Y014bE5VOWVrU2F1c2o4SVhBZEFydXpTRnhN?= =?utf-8?B?SDdVNUJWZ0VZOXZPZkh1RzhJWTc5VnhYZWdOZWsrY1NzNkxySlkrZ09WbGtV?= =?utf-8?B?S2xvWlBJVTcrQ1A2ZktxMEswcU9BTVBBbGhianNYVkxYLzBVd0w1ZzQrUDBy?= =?utf-8?B?RUIxa2o3MTlmYjNzUUVvTEttM2Ywc2xoaHRmM2FDRUpLVjdYWVdIcHdueUpp?= =?utf-8?B?V0UreU5YOXQ1TEFGU3RYNlpKcUl0cWJJQy92WnI1R3dlaElrcFp1dzg0U3BU?= =?utf-8?B?TjlWaHYrQnIyL0RtbFBuVkdZSUpuMzBTNW0xYUVJZ1RuTlAvdW1GMWFHc0xn?= =?utf-8?B?OC9GRGh5YlNqNzVtVitPTHI0SDZnNGtzc0dhQUtGcHdFK0EvK0NRWGc1bzRK?= =?utf-8?B?REhFb2ZNclVQdjZIcXlJMnNXVy9uS1ZUYmRBTjQwTTI2QWN6K2tOcXFSc01W?= =?utf-8?B?TThFQjE2aGVQaCtlMkdaWmJkTGxoT1ZCcUtCY1ZKeElpWmtXcU5YOEVTR0F2?= =?utf-8?B?UlIzQzFIZXF0RFpSWWZyU0pGVVdtbjMrRkF1TWhDbGg4Tk50ODB0SWU3ak9Y?= =?utf-8?B?VGtRMU05OFNkZE1vTmgrRUdJdEhKeHN2QVVBTUMrZVRNTU1uajBaTkxuMUVS?= =?utf-8?B?RkhqT24wdGozUzZ2Y3p2dDlFY21DYTJUYjA4ayswcXR4Q3VNb2g2d0FQSWpP?= =?utf-8?B?dmRnOW9EcFczMUhWaUZvN2taVDhBb2JjNi93MExsajRLbnNhbXRuaTlRY1lV?= =?utf-8?B?d2VTRWlKT2hVWmk5cXB2M3FvSUxzUnB5dVdBYmRIRExLWTVYRnAwaTlvUFFj?= =?utf-8?B?ejVkVW1DMm90TkZ3a3Z5cTJCQ3N6M1NCZ01UR3VmekxsV1JVeEdwMlBiTU5S?= =?utf-8?B?NDQ1bUFTVitNY0puMUNSd1YwaDU1NkNOUjY2clVqMnNOZ29lTkRBYWNVR3Ay?= =?utf-8?B?QXJnL0lIeDBmb1JJRG9tSDQ1MTFZdE9Zd3lhd2RwYkVRbTlJV2s1NktWeXRr?= =?utf-8?B?Wlg0QW5LK3FYenZaOUZydVJYaWlnPT0=?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: af2ee433-47e9-4a7e-a121-08d9ecd96a58 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3208.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2022 21:07:58.9168 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3dB/Pj8nLRvA/rYq4UTorabJaae+lnJc9kFKsFz52oHHECBiExHhco+Trrj1LQuHSE9QCWOzPauvuLPOTK3j7ZYipE+MpqiEWL8IHwTLv5M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR10MB2563 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10254 signatures=673431 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 adultscore=0 malwarescore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202100111 X-Proofpoint-ORIG-GUID: 9PoDT1MILSZSZhtxJjR1xSiX7dJXuV4O X-Proofpoint-GUID: 9PoDT1MILSZSZhtxJjR1xSiX7dJXuV4O X-Spam-Status: No, score=-6.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Feb 2022 21:08:20 -0000 Just as another point of information, Solaris libc implemented bzero as moving arguments around appropriately then jumping to memset. Noone noticed enough to file a complaint. Of course, short fixed-length bzero was handled with in line stores of zero by the compiler. For long vector bzeroing, the overhead was negligible. When certain Sparc hardware implementations provided faster methods for zeroing a cache line at a time on cache line boundaries, memset added a single test for zero ifandonlyif the length of code to memset was over a threshold that seemed likely to make it worthwhile to use the faster method. The principal advantage of the fast zeroing operation is that it did not require data to move from memory to cache before writing zeros to memory, protecting cache locality in the face of large block zeroing. I was responsible for much of that optimization effort. Whether that optimization was really worth it is open for debate for a variety of reasons that I won't go into just now. Apps still used bzero or memset(target,zero,length) according to their preferences, but the code was unified under memset. I am inclined to agree with keeping bzero in the API for compatibility with old code/old binaries/old programmers. :-) Using shared memset code for the implementation of bzero is worthwhile for reducing future maintenance costs. - Patrick McGehearty former Sparc/Solaris performance tuning person On 2/10/2022 2:42 PM, Adhemerval Zanella via Libc-alpha wrote: > > On 10/02/2022 17:27, Alejandro Colomar (man-pages) wrote: >>> We are discussing different subjects here: what I want is to remove the >>> glibc *internal* optimization for bzero, which is essentially an >>> implementation detail. In a first glance it would change performance, >>> however gcc does a hard job replacing bzero/bcmp/bcopy with their >>> str* counterparts, so it highly unlike that newer binaries will actually >>> call bzero. >> Okay, then yes, go ahead and remove bzero(3) from glibc if GCC will >> continue supporting it. Just remember that some users keep writing and >> wanting to write bzero(3) instead of memset(3) in their .c files, so >> it's far from being dead in source code. > Again, I am not proposing to *remove* bzero, but rather the internal > optimizations that currently only adds code complexity and maintenance > burden. My patchset [1] will keep the ABI as-is, the difference is > bcopy and bzero will use the default implementation on all architectures. > > [1] https://patchwork.sourceware.org/project/glibc/list/?series=7243