From patchwork Fri Feb 6 15:29:16 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 129729 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 3C48A435EB99 for ; Fri, 6 Feb 2026 15:31:04 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3C48A435EB99 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=Jok7Evnu; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=Jok7Evnu X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazlp170120005.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::5]) by sourceware.org (Postfix) with ESMTPS id 8CCD7438E67F for ; Fri, 6 Feb 2026 15:30:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8CCD7438E67F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8CCD7438E67F Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c200::5 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1770391824; cv=pass; b=VR7qubyZrUOJq8W8Kt155KOe66Z+z2cRzyDwE8IY8snwlHMMSumOPyitvp4IXuxRE+vWD8c/GEFQf6Jgwfb5yiskcM/PsSQTGKISNZNsfwdR2hbeMHmPYj7k77KW5CfJ8JcCG6E1UWulFD4doAhXYcB3yfWqkD+gCRkTrfbBhDo= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1770391824; c=relaxed/simple; bh=+/XWWfqI4qAKNTogCsgYBAgaoYSeqpDgPZ7KmUd0B1c=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=ixTBf0wm+xGYpdcKL7S6kWM1sYCe/LNfbpli45r55/7TuHafPUL97DxjybbBvya/itzea+y76iMedqurjoxrIl/uETx6udZZfrjO/dpWbPwWnmxawKAMdyKVcKkrep7h9ZIUjoyUW1jxZrFESs3uMwPlknxj9PBjEaf9F5EW3F8= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8CCD7438E67F ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=V0RO6Jp5MVY4gCfLQMTyYVVWWVwZu14oaHA0lrOjERvTChY4NM3lH6fu9pEfHIxeSvCZeUhF7xbEXQcom7HU/haHSdUIDISDdjqcZbmcRSN4t1sOkXi+8hNPoBaQIi0MkYKIpCMKdfSW8R8rOEQ8eTPvyB2uom8t6A3YD9xmI4cSHRbrK9Ne+6sb9Vw39i81EO7cQPpHk+VBsbLLRAlRZCpL6eKi9EoJL4Nq9B+FMrO25QWGf+Sg4sPIyiBcffLI4JSFIc5rz7isGw1SxWIXQNFvtLNndFfixtIXG0kPI6Pch4L8UT9RU30LzxIYhUcjpPmJ3Z7X6uNh18dEydFesg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=UMpj4ITTLmKWfGNOB9p1iEDpzd6NbDPZAdCLXzl0o0A=; b=HZbpE1CT4GYT21uuEXICRNhQ9EU0EgWWQcRy1N8I040dx1zKYzsBTVffiJr4jn3YCCvFEQX25dk3ViL3sm0AvDDF8funCt2qIMrEsCjjDeZILWbQaVjJYZ11oDJVq1tDzuQj1B+7Mpn3LrcmWVo4ZDF/p1Fs8dEE8WwFMSsO4iqVLJRpzYg4z47BS3tvgH6ak98CsU5rfWbrl9uXj4SWT2gYO3/AxVJtcoE954AI8O2pB70mvjQey+SH5sy6N6S75IMY3iW/ffnLrAAL3cYBKVlwunXz/Zpbce4wHTn3z2+dx0Xny08+szrw1akojUKf5AENdfuGtuiHuZO4vBhKCA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=linaro.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UMpj4ITTLmKWfGNOB9p1iEDpzd6NbDPZAdCLXzl0o0A=; b=Jok7EvnuOPRx6WlomnTxfga0WbXo5e1JxZKx4nH9KcZh/NymhavXQA8zxmVBdmP2MCgr1sCW2KHnqIZgP1GyWraBW/m0pTO/zURLlFdllFVkfi5W3TlK6gVsJyDt4omN/PM4Kpd039MUCOV0+hTUvKECF98W8XkFfXqT9BgaxeE= Received: from DU2PR04CA0058.eurprd04.prod.outlook.com (2603:10a6:10:234::33) by AMDPR08MB11673.eurprd08.prod.outlook.com (2603:10a6:20b:73c::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.14; Fri, 6 Feb 2026 15:30:19 +0000 Received: from DU2PEPF00028D01.eurprd03.prod.outlook.com (2603:10a6:10:234:cafe::bd) by DU2PR04CA0058.outlook.office365.com (2603:10a6:10:234::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Fri, 6 Feb 2026 15:30:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DU2PEPF00028D01.mail.protection.outlook.com (10.167.242.185) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.10 via Frontend Transport; Fri, 6 Feb 2026 15:30:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kdXrn2NHHIqnIoJqlifK/t20rH9DFw5sUxgHUqztwa93SCLibvF/6krFrD/yBIPxo2fUcUoI7ixPp0FQ6VJT8CLSDruZDmrSr8kyzeQbQ3CTjZNXjHQl2Jw7Op+Z9LYLjSGotNQ3k9A00vAxCmbY8lMp7ck70U1ei0U9Jjukt7ge4sOGdXixKiQKf8y2vcx7jW9xgaSod9XqV7aJ7ewdMk+CyIJ0xDQupqqObVXMP4SvpoqawhgC2/LZiQ0mpumkvoyxJOgukNydT63BMnCvK436c3WsJdaRVLY6Yhn3ySbJuX8e2ejmRVGY1LHTI2qhlulcKI5GL55VWK7KnEjtlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=UMpj4ITTLmKWfGNOB9p1iEDpzd6NbDPZAdCLXzl0o0A=; b=m/zYM4tOctJOsGLdJdCF/AiJGuNnoGvPiwlGNyd4Rj6JVRvrZZM6H827wDC/nt0kYw47mzdVrsIKqtWOCPATHuTH8yPmYxRdzl9vNkQ8vSaGcp0hbbVS+gmaVQXAZUevH8IsKKdkhqh80Voy0hdFueD/3+kKhNAEp0HJQYNY1zV89mtmKH1sH4CPvX2ITI3gfkAuxZ75cFxYHe1uYzSH0jKRRLdXoiPtqbe3qr+ikGyVC0YIXyQe+2ads4RYumI9iga+feguu5P1kfRMdY6/EOSBJkwPU1GJtYBXF6rY577GFRGhMWWLwL8/inyYYFlT/fgqj0+2ccxx7Y4utDPfVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UMpj4ITTLmKWfGNOB9p1iEDpzd6NbDPZAdCLXzl0o0A=; b=Jok7EvnuOPRx6WlomnTxfga0WbXo5e1JxZKx4nH9KcZh/NymhavXQA8zxmVBdmP2MCgr1sCW2KHnqIZgP1GyWraBW/m0pTO/zURLlFdllFVkfi5W3TlK6gVsJyDt4omN/PM4Kpd039MUCOV0+hTUvKECF98W8XkFfXqT9BgaxeE= Received: from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20) by DU0PR08MB8303.eurprd08.prod.outlook.com (2603:10a6:10:40d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.15; Fri, 6 Feb 2026 15:29:16 +0000 Received: from PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::5821:707a:c30b:dd9a]) by PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::5821:707a:c30b:dd9a%5]) with mapi id 15.20.9587.013; Fri, 6 Feb 2026 15:29:16 +0000 From: Wilco Dijkstra To: Adhemerval Zanella Netto , GNU C Library Subject: [PATCH v2] malloc: Remove unused tcache code from unsorted bin scan Thread-Topic: [PATCH v2] malloc: Remove unused tcache code from unsorted bin scan Thread-Index: AQHcl31a/QZRpA5HmUuoznnQqhDR5A== Date: Fri, 6 Feb 2026 15:29:16 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAWPR08MB8982:EE_|DU0PR08MB8303:EE_|DU2PEPF00028D01:EE_|AMDPR08MB11673:EE_ X-MS-Office365-Filtering-Correlation-Id: f116137f-500b-4c24-4ffa-08de6594a2fd x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|1800799024|366016|38070700021; X-Microsoft-Antispam-Message-Info-Original: =?iso-8859-1?q?b3rZCGYquPKvXuOBn?= =?iso-8859-1?q?F+bG3pyOboEojhPUY7bRjJCNshWHWtMsWVYxOy2UQTCDaWGr7tJ2J4QIpejt?= =?iso-8859-1?q?S8y0ULSh5zntcTlfPzCzrprT9kI5supGKOrPnIEKfAuzOpijdHOogn1nUgcD?= =?iso-8859-1?q?6pLsg3+3HL917HxVySEE1bq6MvycVDGfKvZnPc3lbixOjFUF3EVKEANjKq+i?= =?iso-8859-1?q?xHpVdVSt0sChWLaETFrPXN/0eRfG7aUbfjVobNkdcSaXGSeL+vSE0eK071DV?= =?iso-8859-1?q?x7Dj2fhoi6X2Yj0nAsA2uqeErnsCp9ZwFDXtMJB273BrwN7HCUr2fgjh0LTO?= =?iso-8859-1?q?hHRmitPAHiXpYHNkDY2yeiTwVnJPZaBOBx2YQj7TMZJhgGgCQUvSBIKTfzLM?= =?iso-8859-1?q?Z/EqPLMhj8Xmz8+dMoEJZHnR7SHjzoqtvXyIJDTzt9HV/EXnScqKymvXNmiQ?= =?iso-8859-1?q?oVwSoBFsV1W0uBZFVqlCaigiNDE7BPJZKRH5ujteHC2u3yJygRyo0toc6L9k?= =?iso-8859-1?q?rten3L825oBfrnuDgcdYKI/UTLi0EjPlVyrXuPJoQ2mHB4paV8M9PuoK7svp?= =?iso-8859-1?q?DuXynv2DMQ9fInPN35wvw7gz+ep0yw5Hq2WgCRKOXbvMnON+OimOfFYYYnx/?= =?iso-8859-1?q?ETqMATyKkl2ayGtwou/mZ6KHkugXkZWtMBeZFrbLIjr6stJVck+Q6Xfkpoqj?= =?iso-8859-1?q?Lb+u4p4d/gTn055o5sWH8K5+9blBRbcJS93/O5a5gat8fCx2h9yneFLbQkoK?= =?iso-8859-1?q?GlSPl3p0kiYAwrv5pNOa0kW4deRdLBSjQmf95nsLoNGG537yYoobQ5uu6ZZK?= =?iso-8859-1?q?WXZFBf/3vetE5FHe6fmdvxKt4me9lGP+u0H701jzjwXmyHEnTXxs3Od94phR?= =?iso-8859-1?q?HpUVv/SSwfLN+/761iHdw88crSKvXD+b/KKcNKHsaFf/sS8kuysejV5xcvsV?= =?iso-8859-1?q?FX8XWfk+L6JvcEu71IfSq1VSedfXg4Q35OHqF1WzrhgjS/hq7T2iR1xg0IyF?= =?iso-8859-1?q?dvSKspDYRrFLN23bU0+GrC1GPcjUG3d76Klq36BvEaDy+KUf3qh6jLi7Khn8?= =?iso-8859-1?q?W6DbrdRmGdc5xASOxi9iVyx101BiYPFXhNtgloOFAc/qfdbT6NJ5c96U2vdH?= =?iso-8859-1?q?Zf57G884oiyMxt03IMTK+E9A/dLsLchaRYPj6Hkb9UUBcvUHjulvmHnODee/?= =?iso-8859-1?q?zIyozXMotd+QA2Ym0eJN7aUNCPAJbjTRJwY5v6aiQvO0LwTdGZoVqCBuyd3K?= =?iso-8859-1?q?uie9jPbOPKlpEk8W6v5ItjTv1LrBVk6co1h/HQmVC0hCmSiWlvv8jUBuwJIj?= =?iso-8859-1?q?eTzZSUqftP7h35pTt8fAomdrBVOp5tKkt5LzSlIsQFk01qfSEdxDwodKk2yh?= =?iso-8859-1?q?y8WZ00ni5zbHLgVOOkCg3CjqvPai5t59ZzA2EQ+gtlrxEMBaW/DxumzWWz3x?= =?iso-8859-1?q?j7XPySzfGNrbr3zF6YosCyamZ6DHP9XfjZbCxAMOY+hAZrjQ0vnkOgUQNUJj?= =?iso-8859-1?q?NFEIgAqdnVhQ8fs7vrZQX9tkwHTgj4+HeyhnGQshFS17X/08a+x8J/nUMK1C?= =?iso-8859-1?q?CQqPoKFAgWo3FPEENXhEOq5u22EvBJmTOzPrQU523R4usSYoXgMU8fvYbLvL?= =?iso-8859-1?q?EIh4c8yxjneohSzwiy/LcnmRb0268uxDLew3UYQoca4XQNn47OzDsabJk/7W?= =?iso-8859-1?q?LBeSbU=3D?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAWPR08MB8982.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700021); DIR:OUT; SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8303 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028D01.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 4139b7e3-bdae-4a88-f3bc-08de65947d27 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|1800799024|82310400026|14060799003|36860700013|35042699022; X-Microsoft-Antispam-Message-Info: =?iso-8859-1?q?qZcBxUmSMWT9vPI4c5db8/iEuW?= =?iso-8859-1?q?c8UJDywiTYsrWX3I1ZnIsWXHzHcGIjkugIm0HxsFBJBi3qW/pCz/pehhn9ve?= =?iso-8859-1?q?fgGavOXME+WYYrHnQqAhhD008aBht1zXBLf+rCNt2SEsaZahNUrS2X6SZuk9?= =?iso-8859-1?q?CjL3Cy6G7XJFALmW9iBGYlmJS73Fxox2yheEQluTaaaMtKVlXmFnaBztFV0K?= =?iso-8859-1?q?9nB2KrpOPiyLT+sCiWO1dkjznSYxY59l/duDEF2dVPviV84Fxw25R0IBWGZh?= =?iso-8859-1?q?gvEgoUMFW3EnX+Rbvf4naK9Q9xzojeo67/GeRpX3Rv1ivCnGwBb6JqdgG4r+?= =?iso-8859-1?q?eInyIG/1sQzJWPPUcBze5Sf7NAOGveZpJTBa02apirHgXppYx5bWYifnY6No?= =?iso-8859-1?q?5WZhI93mfcY3sgTixXJy02dVDCY3v8VGxriCaW1nY+OtZE9Wjn6KuGqIuq03?= =?iso-8859-1?q?DN+0b7Q9k5Rey3+HiHH3nQtwKhLNTy39vLUUYiY/H0Y5iXoGxuntvVLYeqWT?= =?iso-8859-1?q?H6cQEkjVycFvW89z8PWUwzevRR9jyc3RROhbkD0ao6c5KGmPDQXj+Vh6O7Un?= =?iso-8859-1?q?rqGKg1817H+OHgGfmtH0lEVzBtUVlicb+vNSBG5ZeSVSoB8t331hSTAv79Y3?= =?iso-8859-1?q?shOX4Wk+a6rKXLywJT4wozLCHlh+VSt7DlUqcdWTMb/Nf5IIEDRocfboxUHr?= =?iso-8859-1?q?yKSS26zJ0jVBIVQ1/IAGStSEb3I1zUKSEA/Y5LF9KIpb2L3D9PPFgK18sGX/?= =?iso-8859-1?q?ihMHXzXynUKCLze34A6itUkOv6Hf0SPG49MhUMz3NTrL4nPx7RkGr2dV5PyV?= =?iso-8859-1?q?CVfzOjxjjFVhJny1Y7YStvkkcqvYVAhQlRjKuf4SIM+YbI+OjSSM4AVjlzml?= =?iso-8859-1?q?ZSHmI+ja0uWo54YT8xusPo4ZyjcrODaSHLAyp10B4YBCGRgpN1amdlbl+XEw?= =?iso-8859-1?q?xc5y3lY1ejiJc8i74owzjd505TVONo1/lbCNawWa+ww5MW2bv3uA2jP3zeoY?= =?iso-8859-1?q?OIF77N+O2hX9j2YCh7ciO8tkr9Oto8Ua0bXSRz8L2z8LlXBJBnS/66h0yLx6?= =?iso-8859-1?q?P9Nazb0xrwpYF9RiEf0ZT/VwKOjrNUQD4p/Zku5t/0/fN+aUuzF0dXTdAt3W?= =?iso-8859-1?q?eWVBhD/gp9WWCeSK6LQwk9yZMuSX3D2eS1KjgsQNMbwWJ+0V/mZ6KpyK87DR?= =?iso-8859-1?q?uucv3nKzfn9EvyJaAUEZXgF4fGFE+EDE1SCwt7uCPNIwtm0FSTrOzTWq8bfm?= =?iso-8859-1?q?f1pYCqmXUKb9guDjGXInkAT1rMY9Gmam21o8W5dVAN7WdyhX/naP19gNlC0e?= =?iso-8859-1?q?R7zsmVTEwKMmjz9pQbUlwVRQovhO+/wXTQpbTTrTeLXflLngBablcj+Ksnu9?= =?iso-8859-1?q?D6jszCY2lmSUuYED7V+5y0SmqYjWq4LJjvBtcLqnYsmjtKA3Og/wcehoxNbT?= =?iso-8859-1?q?qatS2TOXu9ZlHWJwvWOslWQchtYMYAlCmWi/5Bjrkoh7ZjV1yx1c4w0X8RGe?= =?iso-8859-1?q?hRY0ssM2jYp12DMMj5lya2ZMj+8neE0qIMW/iTPq6sZ57p93X+OhL0hut3Tt?= =?iso-8859-1?q?wZ03n7CIiTHBTflHxLba+1LbB8VkEGvok1PPHIehvEbGHxMYkUgdom1YqYbi?= =?iso-8859-1?q?xtTA2EjbJGTRhDgtbTG/zL1XThTqi91UR9Pp7SD3jHJHdK+REdU8VE1mRd/v?= =?iso-8859-1?q?eRUWQ8NkKHoP50ZrvIXGbUAfplDx/OwPkshtkcqA=3D=3D?= X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(1800799024)(82310400026)(14060799003)(36860700013)(35042699022); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QZeNriy+REIHxjOZPzIBq6TOj/n01Kuws/p9UBKpjgHuHj0xSpFfeeUvg6tLlkHgA7xjzC2PssPK9NvM+S59F8cRElXfwN+dFTgS+RpPnHMIOHiumuvkPAUwyxChspJ/e0VmfA3bvSCgzpAEGTIBncKvxO6wb2BxpOPJMorBJxhQCOAlfqWBR6gDSlfRVE263hILLK3Q/jm3rRO9BQ8vOlGoM6gKEDPJiRIde2fpvNDu5299Y+uTjT/GoUvqf9b2qJywk2J4goTABosMZnJvNNg3raJW9YueP30gWA/qaeRFUxDe10NcsbWUeVDVXBPMeFyoy+AB/qJ+rqwM9eU8bEhws+DRDRCXMyi1soSiBaXxICcJ3qJ/R76FsBVTy+ICyeb11T98JrqoXVdUV34Q87d7Fx63NB86hEFfOfxPhKi2m208sQK6kMEj+qixh6ot X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Feb 2026 15:30:19.6685 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f116137f-500b-4c24-4ffa-08de6594a2fd X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D01.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11673 X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_PASS, SPF_NONE, TXREP, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on 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~patchwork=sourceware.org@sourceware.org Hi Adhemerval, > Now that tcache_unsorted_limit is not used anywhere, I think it should be > removed from manual (manual/probes.texi and manual/tunables.texi), along > with the tunables definition (elf/dl-tunables.list) and related tests > (elf/tst-rtld-list-tunables.exp). Good point, I've removed the remaining references in v2: Now that fastbins have been removed, there is no need to add chunks to tcache during an unsorted scan. Small blocks can only be added to unsorted as a result of a remainder chunk split off a larger block, so there is no point in checking for additional chunks to place in tcache. The last remainder is checked first, and will be used if it is large enough or an exact fit. The unsorted bin scan becomes simpler as a result. Remove the tcache_unsorted_limit tunable and manual entries. Passes regress, OK for commit? Reviewed-by: Adhemerval Zanella diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list index 5bc5f037920d6db99bff4df513ac2ea3ae416b2a..040a544c0e0fe57c2205966412ea8589bb178189 100644 --- a/elf/dl-tunables.list +++ b/elf/dl-tunables.list @@ -71,9 +71,6 @@ glibc { tcache_count { type: SIZE_T } - tcache_unsorted_limit { - type: SIZE_T - } mxfast { type: SIZE_T minval: 0 diff --git a/elf/tst-rtld-list-tunables.exp b/elf/tst-rtld-list-tunables.exp index 8df6f5906e6ccc1cc4094947e7084fbb8605dae3..9590021f3ae305a6088eaf81b106d2355b8da57a 100644 --- a/elf/tst-rtld-list-tunables.exp +++ b/elf/tst-rtld-list-tunables.exp @@ -8,7 +8,6 @@ glibc.malloc.mxfast: 0x0 (min: 0x0, max: 0x[f]+) glibc.malloc.perturb: 0 (min: 0, max: 255) glibc.malloc.tcache_count: 0x0 (min: 0x0, max: 0x[f]+) glibc.malloc.tcache_max: 0x0 (min: 0x0, max: 0x[f]+) -glibc.malloc.tcache_unsorted_limit: 0x0 (min: 0x0, max: 0x[f]+) glibc.malloc.top_pad: 0x20000 (min: 0x0, max: 0x[f]+) glibc.malloc.trim_threshold: 0x0 (min: 0x0, max: 0x[f]+) glibc.rtld.dynamic_sort: 2 (min: 1, max: 2) diff --git a/malloc/arena.c b/malloc/arena.c index 5bfcd7f9723a8a6396ec53ea49bef5472fa28672..cabeb0d8ce1783121af3327ccd3371ab516b8722 100644 --- a/malloc/arena.c +++ b/malloc/arena.c @@ -238,7 +238,6 @@ TUNABLE_CALLBACK_FNDECL (set_arena_test, size_t) #if USE_TCACHE TUNABLE_CALLBACK_FNDECL (set_tcache_max, size_t) TUNABLE_CALLBACK_FNDECL (set_tcache_count, size_t) -TUNABLE_CALLBACK_FNDECL (set_tcache_unsorted_limit, size_t) #endif TUNABLE_CALLBACK_FNDECL (set_hugetlb, size_t) @@ -290,8 +289,6 @@ __ptmalloc_init (void) # if USE_TCACHE TUNABLE_GET (tcache_max, size_t, TUNABLE_CALLBACK (set_tcache_max)); TUNABLE_GET (tcache_count, size_t, TUNABLE_CALLBACK (set_tcache_count)); - TUNABLE_GET (tcache_unsorted_limit, size_t, - TUNABLE_CALLBACK (set_tcache_unsorted_limit)); # endif TUNABLE_GET (hugetlb, size_t, TUNABLE_CALLBACK (set_hugetlb)); diff --git a/malloc/malloc.c b/malloc/malloc.c index a49e211925ae6303d064b7e590fd015e85affe38..0ff016e549694f457c3fe090f3265d35f1d60e28 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -1797,9 +1797,6 @@ struct malloc_par size_t tcache_max_bytes; /* Maximum number of chunks in each bucket. */ size_t tcache_count; - /* Maximum number of chunks to remove from the unsorted list, which - aren't used to prefill the cache. */ - size_t tcache_unsorted_limit; #endif }; @@ -1832,7 +1829,6 @@ static struct malloc_par mp_ = .tcache_count = TCACHE_FILL_COUNT, .tcache_small_bins = TCACHE_SMALL_BINS, .tcache_max_bytes = MAX_TCACHE_SMALL_SIZE + 1, - .tcache_unsorted_limit = 0 /* No limit. */ #endif }; @@ -3824,10 +3820,6 @@ _int_malloc (mstate av, size_t bytes) mchunkptr fwd; /* misc temp for linking */ mchunkptr bck; /* misc temp for linking */ -#if USE_TCACHE - size_t tcache_unsorted_count; /* count of unsorted chunks processed */ -#endif - /* Convert request size to internal form by adding SIZE_SZ bytes overhead plus possibly more to obtain necessary alignment and/or @@ -3925,24 +3917,8 @@ _int_malloc (mstate av, size_t bytes) the most recent non-exact fit. Place other traversed chunks in bins. Note that this step is the only place in any routine where chunks are placed in bins. - - The outer loop here is needed because we might not realize until - near the end of malloc that we should have consolidated, so must - do so and retry. This happens at most once, and only when we would - otherwise need to expand memory to service a "small" request. */ -#if USE_TCACHE - INTERNAL_SIZE_T tcache_nb = 0; - size_t tc_idx = csize2tidx (nb); - if (tc_idx < mp_.tcache_small_bins) - tcache_nb = nb; - int return_cached = 0; - - tcache_unsorted_count = 0; -#endif - - for (;; ) { int iters = 0; while ((victim = unsorted_chunks (av)->bk) != unsorted_chunks (av)) @@ -4012,28 +3988,10 @@ _int_malloc (mstate av, size_t bytes) set_inuse_bit_at_offset (victim, size); if (av != &main_arena) set_non_main_arena (victim); -#if USE_TCACHE - if (__glibc_unlikely (tcache_inactive ())) - tcache_init (av); - /* Fill cache first, return to user only if cache fills. - We may return one of these chunks later. */ - if (tcache_nb > 0 - && tcache->num_slots[tc_idx] != 0) - { - tcache_put (victim, tc_idx); - return_cached = 1; - continue; - } - else - { -#endif check_malloced_chunk (av, victim, nb); void *p = chunk2mem (victim); alloc_perturb (p, bytes); return p; -#if USE_TCACHE - } -#endif } /* Place chunk in bin. Only splitting can put @@ -4107,31 +4065,11 @@ _int_malloc (mstate av, size_t bytes) fwd->bk = victim; bck->fd = victim; -#if USE_TCACHE - /* If we've processed as many chunks as we're allowed while - filling the cache, return one of the cached ones. */ - ++tcache_unsorted_count; - if (return_cached - && mp_.tcache_unsorted_limit > 0 - && tcache_unsorted_count > mp_.tcache_unsorted_limit) - { - return tcache_get (tc_idx); - } -#endif - #define MAX_ITERS 10000 if (++iters >= MAX_ITERS) break; } -#if USE_TCACHE - /* If all the small chunks we found ended up cached, return one now. */ - if (return_cached) - { - return tcache_get (tc_idx); - } -#endif - /* If a large request, scan through the chunks of current bin in sorted order to find smallest that fits. Use the skip list for this. @@ -5114,13 +5052,6 @@ do_set_tcache_count (size_t value) return 0; } -static __always_inline int -do_set_tcache_unsorted_limit (size_t value) -{ - LIBC_PROBE (memory_tunable_tcache_unsorted_limit, 2, value, mp_.tcache_unsorted_limit); - mp_.tcache_unsorted_limit = value; - return 1; -} #endif static __always_inline int diff --git a/manual/probes.texi b/manual/probes.texi index ee019e651706f49253279b332edb7fc343a04183..23340e8e0774ae080bc6cecf0a916902c490f629 100644 --- a/manual/probes.texi +++ b/manual/probes.texi @@ -235,13 +235,6 @@ tunable is set. Argument @var{$arg1} is the requested value, and @var{$arg2} is the previous value of this tunable. @end deftp -@deftp Probe memory_tunable_tcache_unsorted_limit (int @var{$arg1}, int @var{$arg2}) -This probe is triggered when the -@code{glibc.malloc.tcache_unsorted_limit} tunable is set. Argument -@var{$arg1} is the requested value, and @var{$arg2} is the previous -value of this tunable. -@end deftp - @deftp Probe memory_tcache_double_free (void *@var{$arg1}, int @var{$arg2}) This probe is triggered when @code{free} determines that the memory being freed has probably already been freed, and resides in the diff --git a/manual/tunables.texi b/manual/tunables.texi index 7956df919beeb0b05b93d942e8dd8938ecc4d018..cacc0ea65262f06eb8c7f8a40520d5d85444a171 100644 --- a/manual/tunables.texi +++ b/manual/tunables.texi @@ -53,7 +53,6 @@ glibc.cpu.x86_shstk: glibc.pthread.stack_cache_size: 0x2800000 (min: 0x0, max: 0xffffffffffffffff) glibc.malloc.mmap_max: 0 (min: 0, max: 2147483647) glibc.cpu.plt_rewrite: 0 (min: 0, max: 2) -glibc.malloc.tcache_unsorted_limit: 0x0 (min: 0x0, max: 0xffffffffffffffff) glibc.cpu.x86_ibt: glibc.cpu.hwcaps: glibc.malloc.arena_max: 0x0 (min: 0x1, max: 0xffffffffffffffff) @@ -243,21 +242,6 @@ per-thread cache is approximately 236 KB on 64-bit systems and 118 KB on 32-bit systems. @end deftp -@deftp Tunable glibc.malloc.tcache_unsorted_limit -When the user requests memory and the request cannot be met via the -per-thread cache, the arenas are used to meet the request. At this -time, additional chunks will be moved from existing arena lists to -pre-fill the corresponding cache. While copies from the fastbins, -smallbins, and regular bins are bounded and predictable due to the bin -sizes, copies from the unsorted bin are not bounded, and incur -additional time penalties as they need to be sorted as they're -scanned. To make scanning the unsorted list more predictable and -bounded, the user may set this tunable to limit the number of chunks -that are scanned from the unsorted list while searching for chunks to -pre-fill the per-thread cache with. The default, or when set to zero, -is no limit. -@end deftp - @deftp Tunable glibc.malloc.mxfast One of the optimizations @code{malloc} uses is to maintain a series of ``fast bins'' that hold chunks up to a specific size. The default and