From patchwork Fri Jun 7 11:42:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Liebler X-Patchwork-Id: 1945082 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=RPk1Da7O; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4VwgBM5rw4z20KL for ; Fri, 7 Jun 2024 22:15:07 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2003939CC297 for ; Fri, 7 Jun 2024 12:15:06 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 3C79339CC2B6 for ; Fri, 7 Jun 2024 12:14:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3C79339CC2B6 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3C79339CC2B6 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717762484; cv=none; b=ROzI113HrFpJPKaTlKBRWko5TBgVOpuGAGvZ11Xi0RBGZA6yssIbE/5H+gk/dFysXq2H+SfOWfwQYzhQzMKchs02SMlPKffCMI3/BaLGnqtvjO8NWCCq0z9YcJeeGTxsLPmyhXbZwA6r2USVSQmFSvIDlYhFgfeIuGasnjVr2KQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717762484; c=relaxed/simple; bh=8pAlqJ8OZ09xN1pnsmMskJa/2h/BTQYu0e1+JxFT+A8=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=txrVL9rR/v1h47mqjz3nzDA5cPpJgK3+zIuAMvUkxBaMCmTx00K3pUXHey46OzZpR1s/yDeXftAlazXceaM8o80imBPLRjbM0ha1S/bDFvfstbTqr6Imtq3BAUK6DndFlca9BxDWHkvj53V3OZgfj1W9dYqgLt4I5I53pmSRvh8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0353727.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 457C7p8G021688; Fri, 7 Jun 2024 12:14:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc : content-transfer-encoding : date : from : in-reply-to : message-id : mime-version : references : subject : to; s=pp1; bh=enospzCzeXe5Ex6vbFzyBOZ+P76btHDQgnmOTfg24lM=; b=RPk1Da7OItVvNTGyhivG1rOrLJm9VSkAbNgADZph4RD5ZBTu6fZaeMZ8qJXAuGDHXfxV goSMRluVy3IBHIwzkJuTYF4uGnl7P6PUO843A7Vhj6g4iWGj/BNqhYudr0uzkYdtf2SS uiQNZvyqQg+fyf3olxNk2UeCMUpwE1UWWd+/YKgxwIXxfizvSS5t/JA803Jav4rOMrxd eog09dH07333Wo2E+tyiKFEFEU6wW2LRCCmvTo7cnJnTP4bJwbkPUY7uShVjXj9X46hI /cxsbebL0kFn/sPjd4k3piHwvSViRqRFknbupEDXFkH5MKl/sWmr/dCxOgT6pTZ0Bye6 Ow== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3ym1x600mj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 07 Jun 2024 12:14:37 +0000 Received: from m0353727.ppops.net (m0353727.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 457CEaAu031387; Fri, 7 Jun 2024 12:14:36 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3ym1x600m8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 07 Jun 2024 12:14:36 +0000 Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 457AB5Kq026694; Fri, 7 Jun 2024 11:46:04 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3ygffng812-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 07 Jun 2024 11:46:04 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 457Bjwlx48890276 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 7 Jun 2024 11:46:00 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8037D2004D; Fri, 7 Jun 2024 11:45:58 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 52E8920063; Fri, 7 Jun 2024 11:45:58 +0000 (GMT) Received: from a35lp69.lnxne.boe (unknown [9.152.108.100]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP; Fri, 7 Jun 2024 11:45:58 +0000 (GMT) From: Stefan Liebler To: libc-alpha@sourceware.org Cc: fweimer@redhat.com, devel@otheo.eu, adhemerval.zanella@linaro.org, bergner@linux.ibm.com, Stefan Liebler Subject: [RFC 8/9] elf: Remove LD_HWCAP_MASK / tunable glibc.cpu.hwcap_mask Date: Fri, 7 Jun 2024 13:42:43 +0200 Message-ID: <20240607114543.659306-9-stli@linux.ibm.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240607114543.659306-1-stli@linux.ibm.com> References: <20240607114543.659306-1-stli@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: KzE5CeGnPtQyk1xkmiaMjejXO3TFHGNS X-Proofpoint-ORIG-GUID: 9ldWvnvZKdj2IgD9AAxmBFKXlvnOMar2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-06-07_06,2024-06-06_02,2024-05-17_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 mlxscore=0 malwarescore=0 impostorscore=0 mlxlogscore=999 spamscore=0 bulkscore=0 priorityscore=1501 phishscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2405010000 definitions=main-2406070089 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Remove the environment variable LD_HWCAP_MASK and the tunable glibc.cpu.hwcap_mask as those are not used anymore in common-code after removal in elf/dl-cache.c:search_cache(). The only remaining user is sparc32 where it is used in elf_machine_matches_host(). If sparc32 does not need it anymore, we can get rid of it at all. Otherwise we could also move LD_HWCAP_MASK / tunable glibc.cpu.hwcap_mask to be sparc32 specific. Reviewed-by: Adhemerval Zanella --- elf/dl-tunables.list | 7 ------- elf/tst-env-setuid.c | 1 - manual/README.tunables | 12 ++++++------ manual/tunables.texi | 11 ----------- sysdeps/generic/unsecvars.h | 1 - sysdeps/sparc/sparc32/dl-machine.h | 6 ------ 6 files changed, 6 insertions(+), 32 deletions(-) diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list index 1186272c81..40ac5b3776 100644 --- a/elf/dl-tunables.list +++ b/elf/dl-tunables.list @@ -83,13 +83,6 @@ glibc { minval: 0 } } - cpu { - hwcap_mask { - type: UINT_64 - env_alias: LD_HWCAP_MASK - default: HWCAP_IMPORTANT - } - } elision { enable { diff --git a/elf/tst-env-setuid.c b/elf/tst-env-setuid.c index 43047c48f3..59f2ffeb88 100644 --- a/elf/tst-env-setuid.c +++ b/elf/tst-env-setuid.c @@ -52,7 +52,6 @@ static const struct envvar_t filtered_envvars[] = { { "GLIBC_TUNABLES", FILTERED_VALUE }, { "LD_AUDIT", FILTERED_VALUE }, - { "LD_HWCAP_MASK", FILTERED_VALUE }, { "LD_LIBRARY_PATH", FILTERED_VALUE }, { "LD_PRELOAD", FILTERED_VALUE }, { "LD_PROFILE", PROFILE_LIB }, diff --git a/manual/README.tunables b/manual/README.tunables index 72ae00dc02..594879397b 100644 --- a/manual/README.tunables +++ b/manual/README.tunables @@ -96,11 +96,11 @@ where 'check' is the tunable name and 'val' is a value of same type. To get and set tunables in a different namespace from that module, use the full form of the macros as follows: - val = TUNABLE_GET_FULL (glibc, cpu, hwcap_mask, uint64_t, NULL) + val = TUNABLE_GET_FULL (glibc, malloc, mmap_max, int32_t, NULL) - TUNABLE_SET_FULL (glibc, cpu, hwcap_mask, val) + TUNABLE_SET_FULL (glibc, malloc, mmap_max, val) -where 'glibc' is the top namespace, 'cpu' is the tunable namespace and the +where 'glibc' is the top namespace, 'malloc' is the tunable namespace and the remaining arguments are the same as the short form macros. The minimum and maximum values can updated together with the tunable value @@ -114,11 +114,11 @@ where 'check' is the tunable name, 'val' is a value of same type, 'min' and To set the minimum and maximum values of tunables in a different namespace from that module, use the full form of the macros as follows: - val = TUNABLE_GET_FULL (glibc, cpu, hwcap_mask, uint64_t, NULL) + val = TUNABLE_GET_FULL (glibc, malloc, mmap_max, int32_t, NULL) - TUNABLE_SET_WITH_BOUNDS_FULL (glibc, cpu, hwcap_mask, val, min, max) + TUNABLE_SET_WITH_BOUNDS_FULL (glibc, malloc, mmap_max, val, min, max) -where 'glibc' is the top namespace, 'cpu' is the tunable namespace and the +where 'glibc' is the top namespace, 'malloc' is the tunable namespace and the remaining arguments are the same as the short form macros. When TUNABLE_NAMESPACE is not defined in a module, TUNABLE_GET is equivalent to diff --git a/manual/tunables.texi b/manual/tunables.texi index 8dd02d8149..0b1b2898c0 100644 --- a/manual/tunables.texi +++ b/manual/tunables.texi @@ -55,7 +55,6 @@ glibc.cpu.x86_non_temporal_threshold: 0xc0000 (min: 0x4040, max: 0xfffffffffffff glibc.cpu.x86_memset_non_temporal_threshold: 0xc0000 (min: 0x4040, max: 0xfffffffffffffff) glibc.cpu.x86_shstk: glibc.pthread.stack_cache_size: 0x2800000 (min: 0x0, max: 0xffffffffffffffff) -glibc.cpu.hwcap_mask: 0x6 (min: 0x0, max: 0xffffffffffffffff) glibc.malloc.mmap_max: 0 (min: 0, max: 2147483647) glibc.elision.skip_trylock_internal_abort: 3 (min: 0, max: 2147483647) glibc.cpu.plt_rewrite: 0 (min: 0, max: 2) @@ -504,16 +503,6 @@ Behavior of @theglibc{} can be tuned to assume specific hardware capabilities by setting the following tunables in the @code{cpu} namespace: @end deftp -@deftp Tunable glibc.cpu.hwcap_mask -This tunable supersedes the @env{LD_HWCAP_MASK} environment variable and is -identical in features. - -The @code{AT_HWCAP} key in the Auxiliary Vector specifies instruction set -extensions available in the processor at runtime for some architectures. The -@code{glibc.cpu.hwcap_mask} tunable allows the user to mask out those -capabilities at runtime, thus disabling use of those extensions. -@end deftp - @deftp Tunable glibc.cpu.hwcaps The @code{glibc.cpu.hwcaps=-xxx,yyy,-zzz...} tunable allows the user to enable CPU/ARCH feature @code{yyy}, disable CPU/ARCH feature @code{xxx} diff --git a/sysdeps/generic/unsecvars.h b/sysdeps/generic/unsecvars.h index f1724efe0f..97857a11aa 100644 --- a/sysdeps/generic/unsecvars.h +++ b/sysdeps/generic/unsecvars.h @@ -12,7 +12,6 @@ "LD_DEBUG\0" \ "LD_DEBUG_OUTPUT\0" \ "LD_DYNAMIC_WEAK\0" \ - "LD_HWCAP_MASK\0" \ "LD_LIBRARY_PATH\0" \ "LD_ORIGIN_PATH\0" \ "LD_PRELOAD\0" \ diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h index d855c66fe3..2c56d8a80e 100644 --- a/sysdeps/sparc/sparc32/dl-machine.h +++ b/sysdeps/sparc/sparc32/dl-machine.h @@ -39,13 +39,7 @@ elf_machine_matches_host (const Elf32_Ehdr *ehdr) return 1; else if (ehdr->e_machine == EM_SPARC32PLUS) { -#if defined SHARED - uint64_t hwcap_mask = TUNABLE_GET (glibc, cpu, hwcap_mask, uint64_t, - NULL); - return GLRO(dl_hwcap) & hwcap_mask & HWCAP_SPARC_V9; -#else return GLRO(dl_hwcap) & HWCAP_SPARC_V9; -#endif } else return 0;