From patchwork Fri Mar 19 13:26:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 42683 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5B940386F464; Fri, 19 Mar 2021 13:26:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5B940386F464 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1616160414; bh=xgcsNrd2GfBa6ArB28NhvEu7fvKfgVBCJd7TUeOvEg4=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=EqsQVEa1IyS15JdqmLy265yKxXMM6mdUzks+dm7C/uMHhpfuWdYcsktA1sGAntcvo M8DRjMXAPqZV19Ky1sNgVOaq1PPvHosZeaGySV6fLgGGSrp7aqfC2U89aU4JuoVzsP xyJbVCcmuFc2tBMydTeDCPn6O6u4/r8IJFEP80ig= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70059.outbound.protection.outlook.com [40.107.7.59]) by sourceware.org (Postfix) with ESMTPS id 44F1D385142A for ; Fri, 19 Mar 2021 13:26:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 44F1D385142A Received: from AM5PR1001CA0072.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::49) by PAXPR08MB6512.eurprd08.prod.outlook.com (2603:10a6:102:15a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:26:42 +0000 Received: from AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:15:cafe::98) by AM5PR1001CA0072.outlook.office365.com (2603:10a6:206:15::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:26:42 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT039.mail.protection.outlook.com (10.152.17.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:26:41 +0000 Received: ("Tessian outbound 04b74cf98e3c:v87"); Fri, 19 Mar 2021 13:26:41 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7dba612785a6d8ef X-CR-MTA-TID: 64aa7808 Received: from e01bfd2c6870.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 51E054B5-6D25-4127-BB9B-F3D3F197EE79.1; Fri, 19 Mar 2021 13:26:22 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e01bfd2c6870.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 19 Mar 2021 13:26:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B3R/KCGnMemJgTZI52oa4K/u51I3/RUIV37pocCRWUvFmtZqs7168KYgHPpLHFZiYnPiKC+0aKRqg/4QlEVbiNSCW9kM+yYU8m+C4+ZztbkF0I7nMsndX5ntHVzZuIteyg9rAcN+ZL0xsJcM9O5leEE71v7fM9UI0vAmbK6hV3CdHEs/ls8uLfFJFOojmIRZl9dHZ5Bl4iZBWe1N9mZhoIzNmN1k5q0TgZ0Lp+k9I5KocmzzZQUaXu0bUwQGv2lug30X/h/ZEj2hGg4QjcjmgQ8CF57BAPSKJE7mlvYJ0+T6JcPm7fpsoeedgiew/VoQyITTegwzaA2KlPUyffQpPw== 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-SenderADCheck; bh=xgcsNrd2GfBa6ArB28NhvEu7fvKfgVBCJd7TUeOvEg4=; b=M7UcAeGWmvpHqNYmSosl4YbNI6mvn0zDeQP105p8H+ZVwWL6OPJXqDrYokSDOnKEWxaR2b3t/WpluUPVYjURQNtJNSrZsyB7532sp/CW+7/7czjOCG/w7Xvd8X/lysklOSdrVzHxTFMKPA8wDdmevKt/TKS6GGlMI6LbFYnx+C2tYqWOGRKmXE0wYb2ITk2s0UBcEP5SaX2bWOha7c8ieCXfmqVofRqLGeCoXy63zdKKjaPRYP8zEDgjNZ+M+1qVWp+MCPwjasf+s9JuSgLcqFZ3c/xgc36eMi2i1fluWGmu1nOGQBGYOU/VPF0zQBsjYVTDIj2zF9l3XrZLr/aIWQ== 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 Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) by PA4PR08MB5966.eurprd08.prod.outlook.com (2603:10a6:102:ee::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:26:21 +0000 Received: from PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336]) by PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 13:26:21 +0000 To: libc-alpha@sourceware.org, DJ Delorie Subject: [PATCH 1/6] malloc: Use memsize instead of CHUNK_AVAILABLE_SIZE Date: Fri, 19 Mar 2021 13:26:09 +0000 Message-Id: <4af59f688a0c79487187441c3257466037164221.1616155129.git.szabolcs.nagy@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-Originating-IP: [217.140.106.49] X-ClientProxiedBy: SA0PR11CA0126.namprd11.prod.outlook.com (2603:10b6:806:131::11) To PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (217.140.106.49) by SA0PR11CA0126.namprd11.prod.outlook.com (2603:10b6:806:131::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:26:19 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 22fb0bdf-1f54-4ea2-6c8a-08d8eadaa255 X-MS-TrafficTypeDiagnostic: PA4PR08MB5966:|PAXPR08MB6512: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: SnAhNYV9ANrSm1vv++Jag9Nqmkl6YadYwStvYH2+hjGnxHoE2p20DFjgwvc/Nje2ahzuo1EzgOZVAkU7bza714IIcRJwJ88lSAGfR6au65C56efqagCVbLVfGTXuKwXRrkGFRBrS/gDlEAedTegvlZblbQlvUDRsjZ9y0a1J2p1xBnuKstOE6b+SsS+wkWGXzfWo9q2ao+DPBRiQE43k/zF9OOtOk7e9o8koQ3kLJtpGyhTiWMjes+td4GQUCSf6Tj3hRkXpSKTiNDYTV5yXflF2Efw7MvYA6msQG2NI0Z6NYXkp6O6Mf6S/mZio6hxUMIs+IIp+1n5nnjh2GsqIAD8HhgZ5Jn60hRVwSJ7Hp01MMNVY0a2OYcdyTV9Y6JSCUMoPTBvhle9y6G78lePFae4BMOImdj34gqJY6TfH8GAzeSqwr40M2BF+J7Eiq494oDzrhCYHgZmGFnwIfzHiV8EW8imbo0GcDb076oaiorohNnvmZxYbYfY3SjI9LqyrnqwYmGl83x9rO1ck7B5U7gfzts4nd/9TXeibHl/NIt6+k/UqZ/RBIARpwvrlEaGwAeXN7lag3Bg2in5zTeGV+QTRRoPFlh35PiJE4w051ugEhDsCYAlfF05GBZx9yRpt+fhbve4DFYOb/D2dN9t7ua3+1gkgq4EBmeM9mG/7IwOm/lL2hM+pgDE+ETE9IIoT X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR08MB6320.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(136003)(376002)(366004)(346002)(2616005)(6916009)(26005)(316002)(36756003)(8936002)(6512007)(44832011)(5660300002)(8676002)(66556008)(66476007)(186003)(2906002)(6666004)(6506007)(66946007)(69590400012)(16526019)(86362001)(6486002)(83380400001)(52116002)(478600001)(38100700001)(956004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: rRumdxmtuz9DLhmcxOKdYvPSTQf6bJykP4H9jNsslcr9lcCDji49pqx0ENmnobc9QUE3Nn4YUWzhtBwniuDAmpGl7dlbZzeEc9Dsy9U4r7pT7bgkfXDM9ouulZwqm8zK5A6U02AOtZbwC4dq8AtBlAMwmZcb7eA2vd2ZyDdeWr1p9StxfYwjuqyluWNa0kT3ym7IBDWy1THz1KHILL9XxId1fjE2gTWfwx/lkn/WvElyKghaBGvq6l0Wfw6HFyTZvVCa5HWhxpvlQj9uVtBpQ/NwP6KCUdEXUGFNuxxkkMHNyxT79ODGlcJ6IJCYHZwtaevGGubylHO0cTwRg3bSfp4RdjEfNh7UD+2Zo7yM/7n+sA12QThhvj+692jxO1T5JhVzHAdaY8zXTsvmg7PRJjPtk22iE6tpf2ipzPcE4Q1x6CDTvQNfNfH94Kpt1/O/h6nxX/jSdYhqnx5OSEC1EnyeV6IvO8eY5HSZGHyhYFUo9wik7AHTI7v8C4BZzudM478K80EnaLk34LnRa52/x3/61rcXDWJxSeMGOR/6jj+pxhJtRFIBD+Wx0Io2ZONUDgKMwV11PyBgoVeJrhKqc7VUwRW1PWoiTNtwk77PKndGEdPHG8Jmula2WzTcfPs8aH1cjvJN2P1IGx6JuiEpZUTYFEUH7NxMPvHwjpF106W8gv2NQU2pEhX/QADLrZ9v3HS5Byw0GJivO2PHk7oy9gCRd+ZdoFWQnOtPmAEvQDEkp3aMje4CRV8q55UT1RpIr5dWJmtw1Qg0GZQDM7NFYS+TPwJI0ePoCA21N4gmwkKhre6nW3ELXDHoheFrmEs2v7l1qfXDYWRZLWXNA7ZdNuMvQudW1y1LmszeEZPNL6cXj37MHOGdfwScNZpaHXfoL9UGFHrY50cpXIWhGqApGqe97VRy01RS7WRcr9PBnNSTF0WtEPvTldolT8fswcyMSL75Nxs48kL8CZwSLSdWunp3TR8mDA+cpXsqB1mfMwdYJUtY9LqRmhgU5Z52sqgqSKEpt74v7cZcfRLuuuNJCecAYu1ERFwXohvC6gVmKdjwUzNVdc57YVUTXhHS1woss1foNKmxd8zPkw8Yg90lKOaZQTFj9iwU/Yj9WE0JhffSE1Nv40tt3aQ9YEuIMRnaBuNC6873Gjq+mmNoU+lstXiAcX7La22Pe4n8daUVlktET+hp+M7qklFEvkM8gY0YmNWZ1js3DaC0nQMK0ITjQy90iRE2JaQ4j+x/0prwwPNHX8E2JcCFbN6/rOG7XEiD7jKwSDuLomHHSOzq1fH7pQq4CmUtie91aeqsx9Rtsed54Xr/mJGpGYvCpr7+g04M X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5966 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: dab18c8d-2d97-4193-5896-08d8eada9595 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VnuGB9bR8+V6DulHCwf8Ar5MUkEeeycRWIDOtdk91+wm0MupLIaOp0q1yb1Y2FJxG+AFZfj4v8tFpVIdafCAYcEDFIxbvNV5kgZDE0PbE1SBMwDUI1niu9MOnk7krIqDBqWPucMda6iRYrp0NZmSIhfOQNIXNIx1BzF4deNi4j8y3rp/OwQO8wh3qdENA4Tc3cUsq7U2YpGY053wZFWODc0X7nkPEdBT1diGiquCk37UbylfyrHJcMUOB7mOE3MkbPoQsgSdHE5R1Noi37lPVYMzKbMzbtKZn+Keyjz4TEOZnWsjDcUd8dKopx5mJOGbIkeOOr0zt2bbh7T0UHAr0S+oakXjOGrQ+Uj1vshPJR2rpCWQgCrVFVXae27F7hlKEQ2lGC+sitse7vEuPm0U5r66JZwQ89Uey+h/P/iyhxFD5UVWapySJw6kamUiNONjaXxhkT11XNfDPaLjeVrOBPGjLx7IqkMl2eqxX+tAhGKtZAdFkg5MPNBXSje5bLttg02b+bI2kG4LxyZOM3QS2rk7DyayfdQaGflBgR+PYPs7hR+W8Mw/cogGKRolh4WEvcTC/SubQMD0Lh4REVupM97C4hD/av/qaFvIiJr/8TS6hl8BCZp+Mbltskj4Ej91sVqVhQ5Lu24VTldWtWZ90uXGEmSJT84yPRojD8yoj4JL2DlwYaC2ZxvnCQMy6v97 X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(346002)(376002)(136003)(39860400002)(396003)(46966006)(36840700001)(6862004)(44832011)(956004)(47076005)(8676002)(6506007)(70206006)(69590400012)(83380400001)(186003)(16526019)(336012)(2616005)(6666004)(36860700001)(6486002)(86362001)(2906002)(316002)(478600001)(81166007)(82740400003)(5660300002)(36756003)(8936002)(356005)(6512007)(70586007)(26005)(82310400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 13:26:41.9452 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 22fb0bdf-1f54-4ea2-6c8a-08d8eadaa255 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6512 X-Spam-Status: No, score=-14.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-Patchwork-Original-From: Szabolcs Nagy via Libc-alpha From: Szabolcs Nagy Reply-To: Szabolcs Nagy Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" This is a pure refactoring change that does not affect behaviour. The CHUNK_AVAILABLE_SIZE name was unclear, the memsize name tries to follow the existing convention of mem denoting the allocation that is handed out to the user, while chunk is its internally used container. The user owned memory for a given chunk starts at chunk2mem(p) and the size is memsize(p). It is not valid to use on dumped heap chunks. Moved the definition next to other chunk and mem related macros. --- malloc/hooks.c | 11 +++++------ malloc/malloc.c | 39 +++++++++++++++++++-------------------- 2 files changed, 24 insertions(+), 26 deletions(-) diff --git a/malloc/hooks.c b/malloc/hooks.c index 9474e199c3..b82ff5781b 100644 --- a/malloc/hooks.c +++ b/malloc/hooks.c @@ -102,7 +102,7 @@ malloc_check_get_size (mchunkptr p) assert (using_malloc_checking == 1); - for (size = CHUNK_AVAILABLE_SIZE (p) - 1; + for (size = CHUNK_HDR_SZ + memsize (p) - 1; (c = *SAFE_CHAR_OFFSET (p, size)) != magic; size -= c) { @@ -130,7 +130,7 @@ mem2mem_check (void *ptr, size_t req_sz) p = mem2chunk (ptr); magic = magicbyte (p); - max_sz = CHUNK_AVAILABLE_SIZE (p) - CHUNK_HDR_SZ; + max_sz = memsize (p); for (i = max_sz - 1; i > req_sz; i -= block_sz) { @@ -175,7 +175,7 @@ mem2chunk_check (void *mem, unsigned char **magic_p) next_chunk (prev_chunk (p)) != p))) return NULL; - for (sz = CHUNK_AVAILABLE_SIZE (p) - 1; + for (sz = CHUNK_HDR_SZ + memsize (p) - 1; (c = *SAFE_CHAR_OFFSET (p, sz)) != magic; sz -= c) { @@ -200,7 +200,7 @@ mem2chunk_check (void *mem, unsigned char **magic_p) ((prev_size (p) + sz) & page_mask) != 0) return NULL; - for (sz = CHUNK_AVAILABLE_SIZE (p) - 1; + for (sz = CHUNK_HDR_SZ + memsize (p) - 1; (c = *SAFE_CHAR_OFFSET (p, sz)) != magic; sz -= c) { @@ -279,8 +279,7 @@ free_check (void *mem, const void *caller) else { /* Mark the chunk as belonging to the library again. */ - (void)tag_region (chunk2rawmem (p), CHUNK_AVAILABLE_SIZE (p) - - CHUNK_HDR_SZ); + (void)tag_region (chunk2rawmem (p), memsize (p)); _int_free (&main_arena, p, 1); __libc_lock_unlock (main_arena.mutex); } diff --git a/malloc/malloc.c b/malloc/malloc.c index 36583120ce..03eb0f40fa 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -1331,18 +1331,6 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ MINSIZE : \ ((req) + SIZE_SZ + MALLOC_ALIGN_MASK) & ~MALLOC_ALIGN_MASK) -/* Available size of chunk. This is the size of the real usable data - in the chunk, plus the chunk header. Note: If memory tagging is - enabled the layout changes to accomodate the granule size, this is - wasteful for small allocations so not done by default. The logic - does not work if chunk headers are not granule aligned. */ -_Static_assert (__MTAG_GRANULE_SIZE <= CHUNK_HDR_SZ, - "memory tagging is not supported with large granule."); -#define CHUNK_AVAILABLE_SIZE(p) \ - (__MTAG_GRANULE_SIZE > SIZE_SZ && __glibc_unlikely (mtag_enabled) ? \ - chunksize (p) : \ - chunksize (p) + (chunk_is_mmapped (p) ? 0 : SIZE_SZ)) - /* Check if REQ overflows when padded and aligned and if the resulting value is less than PTRDIFF_T. Returns TRUE and the requested size or MINSIZE in case the value is less than MINSIZE on SZ or false if any of the previous @@ -1465,14 +1453,26 @@ checked_request2size (size_t req, size_t *sz) __nonnull (1) #pragma GCC poison mchunk_size #pragma GCC poison mchunk_prev_size +/* This is the size of the real usable data in the chunk. Not valid for + dumped heap chunks. */ +#define memsize(p) \ + (__MTAG_GRANULE_SIZE > SIZE_SZ && __glibc_unlikely (mtag_enabled) ? \ + chunksize (p) - CHUNK_HDR_SZ : \ + chunksize (p) - CHUNK_HDR_SZ + (chunk_is_mmapped (p) ? 0 : SIZE_SZ)) + +/* If memory tagging is enabled the layout changes to accomodate the granule + size, this is wasteful for small allocations so not done by default. + Both the chunk header and user data has to be granule aligned. */ +_Static_assert (__MTAG_GRANULE_SIZE <= CHUNK_HDR_SZ, + "memory tagging is not supported with large granule."); + static __always_inline void * tag_new_usable (void *ptr) { if (__glibc_unlikely (mtag_enabled) && ptr) { mchunkptr cp = mem2chunk(ptr); - ptr = __libc_mtag_tag_region (__libc_mtag_new_tag (ptr), - CHUNK_AVAILABLE_SIZE (cp) - CHUNK_HDR_SZ); + ptr = __libc_mtag_tag_region (__libc_mtag_new_tag (ptr), memsize (cp)); } return ptr; } @@ -3316,8 +3316,7 @@ __libc_free (void *mem) MAYBE_INIT_TCACHE (); /* Mark the chunk as belonging to the library again. */ - (void)tag_region (chunk2rawmem (p), - CHUNK_AVAILABLE_SIZE (p) - CHUNK_HDR_SZ); + (void)tag_region (chunk2rawmem (p), memsize (p)); ar_ptr = arena_for_chunk (p); _int_free (ar_ptr, p, 0); @@ -3459,7 +3458,7 @@ __libc_realloc (void *oldmem, size_t bytes) newp = __libc_malloc (bytes); if (newp != NULL) { - size_t sz = CHUNK_AVAILABLE_SIZE (oldp) - CHUNK_HDR_SZ; + size_t sz = memsize (oldp); memcpy (newp, oldmem, sz); (void) tag_region (chunk2rawmem (oldp), sz); _int_free (ar_ptr, oldp, 0); @@ -3675,7 +3674,7 @@ __libc_calloc (size_t n, size_t elem_size) regardless of MORECORE_CLEARS, so we zero the whole block while doing so. */ if (__glibc_unlikely (mtag_enabled)) - return tag_new_zero_region (mem, CHUNK_AVAILABLE_SIZE (p) - CHUNK_HDR_SZ); + return tag_new_zero_region (mem, memsize (p)); INTERNAL_SIZE_T csz = chunksize (p); @@ -4863,7 +4862,7 @@ _int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize, else { void *oldmem = chunk2rawmem (oldp); - size_t sz = CHUNK_AVAILABLE_SIZE (oldp) - CHUNK_HDR_SZ; + size_t sz = memsize (oldp); (void) tag_region (oldmem, sz); newmem = tag_new_usable (newmem); memcpy (newmem, oldmem, sz); @@ -5110,7 +5109,7 @@ musable (void *mem) result = chunksize (p) - CHUNK_HDR_SZ; } else if (inuse (p)) - result = CHUNK_AVAILABLE_SIZE (p) - CHUNK_HDR_SZ; + result = memsize (p); return result; } From patchwork Fri Mar 19 13:26:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 42682 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C48FB386F430; Fri, 19 Mar 2021 13:26:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C48FB386F430 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1616160413; bh=uOWR/7/lMokzniipYY1T3NTfqc/1o0a3PTkV8lfTbpg=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=aHKaKCqQG8g+mDjLZ/KRlJMVQEKwY5oKXRsC8lfJbKaeDUrCkgwFN6ti8GB614tbe TZGZtorM3FKM6b9xfdxA99OOWmDOzimsBmtuMXB+JkrO1mIcMzTOAFN+/Knf20e5qU HZM+aMvGVoAMkBdD8Z129k9a8KYBdN3o2ZH623N8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150073.outbound.protection.outlook.com [40.107.15.73]) by sourceware.org (Postfix) with ESMTPS id 442D03857C7F for ; Fri, 19 Mar 2021 13:26:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 442D03857C7F Received: from AM5PR1001CA0049.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:15::26) by PAXPR08MB6944.eurprd08.prod.outlook.com (2603:10a6:102:135::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:26:48 +0000 Received: from AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:15:cafe::5b) by AM5PR1001CA0049.outlook.office365.com (2603:10a6:206:15::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:26:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT039.mail.protection.outlook.com (10.152.17.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:26:47 +0000 Received: ("Tessian outbound 04b74cf98e3c:v87"); Fri, 19 Mar 2021 13:26:47 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 6b506989c3a0c412 X-CR-MTA-TID: 64aa7808 Received: from dd80ca25d5f0.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4DE95C3F-DC0B-4516-B229-9B4A0F99DE0F.1; Fri, 19 Mar 2021 13:26:39 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id dd80ca25d5f0.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 19 Mar 2021 13:26:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HRqQA8ZC5kAB1F7AnXSp6rRd3GteI7Px/0ruZgx7WAv8tpgn+ThZ3bzN6YPQy6146mDRpt9n9gedAup197Z3Ab5e8VrrGzTwlNQSpkJIfzmeh9S3ZNtgtym172XK5l7zImTG8b/6e+VEMkobhqjH2HLogxHS063opEMuKUUbQQkfl3KymhHe9cX6wTzfQ+nG3vaZBh++i0CLr9twE2U4avYYHIAP0L+Zq31QSA3xXi5oyrStbVo7LJNWVRMXyr2E6rJlkUlf9rbg+ODt7nWY6Lj+VFeaOLux9JMW0VmEt25weJ+oL9TQwdfsjnfGR/JNwIfavzWidI3WDCcFs0AkDQ== 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-SenderADCheck; bh=uOWR/7/lMokzniipYY1T3NTfqc/1o0a3PTkV8lfTbpg=; b=UtMYj2OvxjgPJuAATQM4R+3bw7pqEhjyLOn7JiymmiPOH4+NvJwOnkIiIX7+xFgnkMqnP+TzM2hM6GmbWVb8P9ZMzHpK/QxDLwOW6B9MhO/8emujWv8r7LaQlGKMPspQEiFCY5y/208dPxOBRsLgmiW2VNratf3+DFlhzEOoYvZt/aOIdE1rGLABJLiyzLDt/Uz+llEGqxbpUJFSoeeJvcJzm21WZCkF9XIljXnTQfTvQwCb5yUFouaRnf9YVRiAP03ouLysnWXISwhHgTCQvctFpDG1GN9er6Onmq6GmTov0gz48ClGNRNea8mS7R3n0eUwRF7auU5PLcpKNg8mWg== 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 Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) by PA4PR08MB5966.eurprd08.prod.outlook.com (2603:10a6:102:ee::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:26:38 +0000 Received: from PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336]) by PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 13:26:38 +0000 To: libc-alpha@sourceware.org, DJ Delorie Subject: [PATCH 2/6] malloc: Use different tag after mremap Date: Fri, 19 Mar 2021 13:26:32 +0000 Message-Id: <4aadefff0647fd8a4ade4377bdfab60989c37b7f.1616155129.git.szabolcs.nagy@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-Originating-IP: [217.140.106.49] X-ClientProxiedBy: LO4P123CA0340.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18c::21) To PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (217.140.106.49) by LO4P123CA0340.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32 via Frontend Transport; Fri, 19 Mar 2021 13:26:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c15dcd30-86fb-44c4-ada4-08d8eadaa5a9 X-MS-TrafficTypeDiagnostic: PA4PR08MB5966:|PAXPR08MB6944: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:7691;OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: lVgm0IIxbxQlE/y9+NHJfD+IzL42rkWdHL3YK1R7sopgZhzU028tZMhw/Tk6WP1qe0Kz8yrljeM0s4amgfZryrTUW2ki0JxrZmXx5Z8aXqjubC9rtGcSTIUzu3yzFii9EdIs5NH/7+nUQ+fYdtXPVV16zAQ7prTgbQEzg1yxcEVQoc6IVl6WJuxm4m+6dPGuRjLZna+ep0WulAceK/luhUihWxQ9iB52dQwzvhvFRE0J8Nkb87STVdRF5gN7dAq/ew/jSKA//K8XstDtulit7AKFro2ig1h0KfQ5EYDiMXj0xh5B1Vf1eNsc8sWUFDgp6qvJho2VcQqKfh5x2sHx16cvTp8pdVVZ4AMhgxsLeMAtK3N2RLcPINMM2F8Yzq00B9EJnBk87X8nS9rhF71u93jz5TnJx6ww8V8lsXgc675AEsfZX8i2tPJWtCw0Ef8QBr8xqqrbv7O/CzeC8hgEkdMlxZLIqEUdawTONunpqpRPt6BxxkMIZ9bhYmqi+WiCSduRTrrl1qRRvaFhvdvYP8lLGdPCsfGpS5Uimm+qgOFP1qg1FzQW2aossH2ZPauLIfaVPgpm0z9oFolMhr6mBVxZYSSw7BbkcBxI6sjNSRbgIEEf4qqpRf8Ar3UzGqSOJtfqU/Icfv+xdrsTFoLBSwoOjd2Rdp0KX8aI9DXRahkFwBDPoKECmm8vRgDFxcNF X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR08MB6320.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(136003)(376002)(366004)(346002)(2616005)(6916009)(26005)(316002)(36756003)(8936002)(6512007)(44832011)(5660300002)(8676002)(66556008)(66476007)(186003)(2906002)(6666004)(6506007)(66946007)(69590400012)(16526019)(86362001)(6486002)(83380400001)(52116002)(4744005)(478600001)(38100700001)(956004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 7czkhQOhqaaLS0gr0bxSa/0ViyC7yjpcQ10CWvd9e5HPWYX8gYi0JAMnd0OPx8uVlPaCOSwAUp6tE3stbKxsIJv7V51sAehlYSeJzgi8QU4ret9o6iipkMt+ebwpOA1wu6XztyDNXCEncgcEzExGKPIeJnAk5l8RvHJXFi9ahlJllhy/Mwv0okVI3CrK7ThTBUplgKWX0XEaNQob4p7tSb870Yu48c7ZahE9zcwz2VeHmiZ6EHmrMAELuxNPYVR+aMNhXwxxUlOruziiSuTjOYyF7s/mxIYhOCAJ7WKdhElHlo1zUwRWpMB9YFh7PcfPHmNRMFzbtW8m4NeIXRVSt31aMlVaThWrplVfpKVxFKdd1KNjj3gZJ12g/jGy50ak5xK9TDsdeiLDGwSXRH9QFPGSCG7R3tu+HuGwfRuBT132glZXoCdPDc+nZDhWTHPYpsLT6LhCCqMFddmYeM/jyfIZXqG96vBVNybxjj8BxX17kDiJzr0fGfStsaQOzkP780JoZON9KmcniO/FbWl8YezhZGeiecL0lkOuomFx5/lNxwHcKBCV5iyZ/Nf7d2Jt2zO9yqVTiFDmtB87AQxfrPty9wwLDyJW/HxuDTqb5u7TdCo0La9/vJrnVdJkwdMBoOZ2dQqQ2J7e76SO+EJ+CiZrASsrsr82W0haOBZiR+NftftMHQrAgAiXRh3saiAs7U8UmdBYCpdHN8BA2+EBNQv2L1ClNGcjqebwJ2GFgOO44Abn9grS3sH59qWN2cI4M5SvRk/IXD8cH/nW/ifBmcoHKVHbgqbCmOgxiHF23QJ+6qzv61goAvRlzsCWSU+VG9m89FlRgr0pKsHMJDIkc6IEYUTOR1yER2qAi1vmVWWs8WQmU0H95pvfEvMbaaT4SBjSM6rWuNeZr0Kf5k66ZR6UYK/wwF3Y61YPsk8TZahvvi46yZq+MxBr7AUsbV8gDnWICoQ/EZFRljyK7ekUDw8r//GdX+74XTNJTpNAl2wDY8ti7q1JNBPkmtkxCk2wLDzKoN1EGKVaeXkhIi+gXU/7Upq9acmKig4icLrsBskI4BCW7+JgZ/42Gw/yvVl1UzuBfgWptZa6NuP0eXvPnZdltnthtr+xZeUNgv9uGW+ico4M6To4/hQ5KU7tSqARYP0yFnAWUk/Lkj8Na659PIK76jLvYixeKNi4D6bZyM+GS2vj5Gfi4tEq6NQfEvTKqiN1yx7p3vZ++FIh0tKCSpUsZqLkefEjb5xd4APxp7YMOz2gd6mh17w2zuUwJC3F+PU8iDKzY39r4M1ZBzTNTQbC5RF+NUJpyhFXwKPFqqzeCEI9AZEPxNqvEet6OmMH X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5966 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: a79a3614-586f-47ea-c77e-08d8eadaa041 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ly4Lzaf9RnfZKRgvggy6N9SMtUY6nGH3etjaArnoheavDvFSC9Dh0TuEsMhEyrDZ9w7U0OOPnyjHfJ5tAK9ZV5AHqhddNAqPUN+acOURfY6FUKrAewLFSas7QuJUXaY//xxlq8awt+rOOehFID5TRc5WdpgBL98mCFZflpy4izbT3Ttb6c3sXWyiYf+TOgBMpovaRbDOPZfnX9SXTD+MLJ77grumr5neKuFQ+pL0XTDvn2pRlK3ODwztpKKrWR5ZpZyA29E7D4nAhiXwFPp8zwtD5l8BzIvuVaXpzrPfAe8VVB6P5M9MlbZ8Y6AUY4OOF4XCA5THly6KW3a5t6wSOngj7ctd1gD0lxaJ1HTuJoqfgP+6+SyiwH5IIkRH73mC3ZiJ8qaLb6x0Zspa1LYaMALm3dBpTB+n12tnK2mJekxpulAm5fMsi67vo2GZKnsnUba5yp7J5SJyq7AZg/Z/dJxKiH2Xg76b+z2GrKlQcLP8nacWaLJyGppFmoy9UPoppKySQSYcOhRcquyvC4CdnVWtbCyVqTS1y1y5POy5Hyt5C2+DOIMNDVPAI+Qt5Shad8JoQ4zB9qdBmpqggzlnUibdZj8UvRItr7Vmibmm66p710khjUIDGsUWe3UdKbvcdzIuYaC77WMod4NQpzzvZfdXo5WTvp7eRs2EQSoZ5wBFark9oqQ2b6GHSTCW8mhs X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(136003)(346002)(376002)(39860400002)(36840700001)(46966006)(47076005)(8936002)(16526019)(6862004)(316002)(2616005)(5660300002)(956004)(86362001)(44832011)(6512007)(336012)(186003)(36860700001)(69590400012)(70586007)(6486002)(356005)(70206006)(82740400003)(2906002)(4744005)(83380400001)(6666004)(6506007)(8676002)(36756003)(82310400003)(26005)(81166007)(478600001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 13:26:47.5476 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c15dcd30-86fb-44c4-ada4-08d8eadaa5a9 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT039.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6944 X-Spam-Status: No, score=-14.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-Patchwork-Original-From: Szabolcs Nagy via Libc-alpha From: Szabolcs Nagy Reply-To: Szabolcs Nagy Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" The comment explained why different tag is used after mremap, but for that correctly tagged pointer should be passed to tag_new_usable. Use chunk2mem to get the tag. --- malloc/malloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/malloc/malloc.c b/malloc/malloc.c index 03eb0f40fa..34884808e2 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -3411,7 +3411,7 @@ __libc_realloc (void *oldmem, size_t bytes) newp = mremap_chunk (oldp, nb); if (newp) { - void *newmem = chunk2rawmem (newp); + void *newmem = chunk2mem (newp); /* Give the new block a different tag. This helps to ensure that stale handles to the previous mapping are not reused. There's a performance hit for both us and the From patchwork Fri Mar 19 13:26:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 42684 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0DA39384A01D; Fri, 19 Mar 2021 13:27:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0DA39384A01D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1616160434; bh=VU1szCNw7+bBArLTTl09mqGD+pJmXc0G2pw6Q3wfdWA=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=ExAReKiY08W0QS8mrwW0rt6/vDevXUW5oml9ka5HsBYfn/6MUaZRFj7pI6coZ9GIw nMusmI4j5EF8bpIYxsPnpaNZ7Cd9Xem5quLN6bGP/ZUQ9NWJRRNkID/a5k+pUiaqXW ZjNP82FKl/Uc0ia+OMIwf5fWfkAw93CtBkIIJxU8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) by sourceware.org (Postfix) with ESMTPS id 11EF73857C7F for ; Fri, 19 Mar 2021 13:27:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 11EF73857C7F Received: from AM6P194CA0049.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:84::26) by DB6PR0801MB2085.eurprd08.prod.outlook.com (2603:10a6:4:79::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32; Fri, 19 Mar 2021 13:27:08 +0000 Received: from VE1EUR03FT026.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:84:cafe::b4) by AM6P194CA0049.outlook.office365.com (2603:10a6:209:84::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:27:08 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT026.mail.protection.outlook.com (10.152.18.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:27:08 +0000 Received: ("Tessian outbound 26664f7d619a:v87"); Fri, 19 Mar 2021 13:27:07 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 146ff488219cd4c4 X-CR-MTA-TID: 64aa7808 Received: from 5749acc68fb2.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 25345A89-CDCC-4730-9FE7-F286BF44E215.1; Fri, 19 Mar 2021 13:27:01 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5749acc68fb2.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 19 Mar 2021 13:27:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aLMNmDIol4BhOCm/41rhXKgsYJg/QwwTTusYnsJn3tpfAhVicWQx1UgTUTp6li9UOfkOa75XeY3LSbmZaH58d0ZACvmidm+2y3MVJ+75Gn8shII9u757hTCX9pKlm7iR9VKWaDmVN1URerFvMCryXKjz9fqcOkfdXay7M8FKgxu+qxmsKR36x3heF3HRxqvJpwGMNkk54cu299vcKD4+vzoCAGRHo+dgNtyNngYyJabcNEYFz1vki9Z73b/5BzvC1enVnlaf8MEDAxjN/+O3Yo+SUVWhu3roS6t+u3BgNFenxYhnwzqiRn6zQ5/raUQ1Vym955Zz9jCRhHpaPl3+yg== 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-SenderADCheck; bh=VU1szCNw7+bBArLTTl09mqGD+pJmXc0G2pw6Q3wfdWA=; b=UFJDO8+PgQY1y9UQRdy/PNP+MIDUUxw2a/fG0BuuQRlrIuv5GTiILRCSIlpfUfinXzZv3W2A7A81oYkE7bo91q6++CgaEQNgS0Fr8udqvyn8he6sgxu3EznSklPPtvcFlPLsuhSFcbvdU27Op3OvXyMqwpSMnOJ6kEMnrMbyIAuMaxRDUIP65ADIQfJ6PBy9Z7zGgHE4A8vEJwmt2A5z4zUr0/cSynNeM/HgEdGlhfb81ZJ2zal2wWhSgiCgT44ghpSZ6lK4++knlQKEdmTbp/gTZ8JFbKIVoPWiP5rBc7kPq2ZxjbRWgbu1c50XlxLky0htkI7KFNYOY4N876f+AQ== 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 Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) by PA4PR08MB5966.eurprd08.prod.outlook.com (2603:10a6:102:ee::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:26:59 +0000 Received: from PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336]) by PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 13:26:59 +0000 To: libc-alpha@sourceware.org, DJ Delorie Subject: [PATCH 3/6] malloc: Use chunk2rawmem throughout Date: Fri, 19 Mar 2021 13:26:49 +0000 Message-Id: X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-Originating-IP: [217.140.106.49] X-ClientProxiedBy: BL1PR13CA0092.namprd13.prod.outlook.com (2603:10b6:208:2b9::7) To PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (217.140.106.49) by BL1PR13CA0092.namprd13.prod.outlook.com (2603:10b6:208:2b9::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.9 via Frontend Transport; Fri, 19 Mar 2021 13:26:58 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: f191c643-71b2-4bba-0bda-08d8eadab22d X-MS-TrafficTypeDiagnostic: PA4PR08MB5966:|DB6PR0801MB2085: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: l6bOQnPcj6kD3HIrL1ULYdZPi+Fs1z5KFtaSMa+GSFBE1kZgwzNsM5DO3RMH5MtUowsQ1sD10qKYpe+pmC9FkIcAj2J5QtqMlS8lV6D2egxfoutHQLleYLPP2I/96eNheO4tzrB54rk52KBilXQYQ8NhSIkfnwb4O0hSPac+JskWusoVbvRCWwATmIhcemDrPkkl/tmnAw89ciewlXym07Rn9UdEchn+MEZrrlf0FkYGZMLVc5omgZvk2pe2iYFw789rbBcUwG6m0YvmJeunR+cVudpkWFX/vZqFTCa0JcrNsMAWXOX+Ebvk75Q1NuaN3xnrpORADgIdKLDTl9/lhjovNY7Gp85Ie5sXe/yL1a6j2bTGKP4yS73INV8dN0u9spAcJ9XrdRt8pQXpvKpKq34GvSygfZ8u9Yw/kfUnZmMwe4GTdirJrWEU5yX05Vw/kOqsntWIiH+v0bAYzR475VAuiJwkmDobEL+7JY740U4pYN1SGLYP+JWzCFCtmy8AYk2gO/Pz4GW0+Pd7QsBDovT4YFpDeJDyO9Xb4qjap44Fmvw0Uv9YvV+M6BSLVSWBWDeOJhx8SMG9bxQbTcHKjReZSZ8QAauK2M3NRLwUVtwCWZPHp38pd53KZzAvWOSs/judxV+raMeV+oDxM7GqFraLrw+RHXai3c1XgAhA47DWQJ/zuRLqIT0gmXGYq3bQ X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR08MB6320.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(2616005)(6916009)(26005)(36756003)(8936002)(6512007)(44832011)(5660300002)(8676002)(66556008)(66476007)(186003)(2906002)(6666004)(6506007)(66946007)(69590400012)(16526019)(86362001)(6486002)(83380400001)(498600001)(52116002)(38100700001)(956004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 1UQaZ3+h7tHG58l1XTfrH6nsFUMmj/qlCJLSodKgrJFJ4GOE3KcBqEYuSSfla8uJLsYrKKRIUFHQD30+u0E+mKz4G6T7v0J8Jf0phbLSjhkDJJM/o5uNVUD8p7SY4jR7pZZwHN5yJH4zayeg4zGLTnxPLs3JWFUqA0gl833eZVJPsQ1saccVbtla7Ai/2HOB4daKe0XzneASEevH5jNenWFlw2043qyKrt3FTAoi6+o/ZqnoNrp6cyPf3tr2pq/W2gwEbFtTQNHxeY9Oifmr++QBfXfIg10uZPYVC3X/zgQ9+YfzecQcGa/l/6/doz0SlV/XWuFLkajoBZwJhICMy3OiynviigHrwIxh8TAdDJHL4cD5QY5mIrV21SAslUr7NMaDoTnJky3hqkEVePeb9kmj9Jc7y9TolMslq4ZDNGBtciLERskUJb7zz5Jezn4kp/TMzZIi93YhwW3sjS3drRRQSbY//gEsK0Z2K2w7XA8XdveYyRBVee5Zue+b2SZKE2PBlTAfzH4ZVt7iI/XRaHOMFoGvBWjEf7ctnrBiun7k5l8yytxL1NTIjgly44fBaEFv5999gboAdBIeQ/dLjZDvRDSAqvBRtjKcxyfJKk/CQGQ66Fq2JphF+cZK+doqOePyZ1AEpSHKokL2D5Dxf88qtGj6mTsxot1MgDljBCR6THXLsSxPl61DyPI8zHje7zG2TiUXUenJhoPik7dKU9mNiO8kWXIMcHTTO6rNjbD9zqL8QKtiZwAje7v9TbjKdzUtGh9EtriC0jllbxxqiCwQbb/o0KoSbRcHQJP/BUvuQPdvyR77/vVg3uqqOBIfzRJliuWbr3WElMrDXh+oOZB6aGlQnj/orkKFT1dslOABISsbcF4gEgw8IHVyxnml7dqlbgpA4NCzuSuzsIeWMt0cAP5S6J20C46P/n7YfmTco17trTMO6xU3z2/e+ixGuWBVJytoJv3+Mqm/llfATHobO1gEmBLhAnVvagSfpmBN4TgoDAbWEc05xWDJlfmcYHrMLQZdHf1If+sD673dT+vvbosWs0s460dtK5KZHokOR2S9o1qaUMa66/mCn81fQH4sRES2Frszn33f57UsBIGW584DbsQUwgAh3lbNt82fmYJRJ7vhpVOfHckU66/c4pVpqLs2YHXGotXaAGbTHZrTKPP+BsbjOA3lq/G7pIS8ppB5holbwbsP5ADmpDO1GzK42DJKImDK47C8udPWrIl/q8QiHuqSFF0jPN+uLp93oqUqb7mpdzdXnSXcC3dBeZIWdLvJ3XWeOG7RXhKh45CzX2UmNwEnwoE4RGxq319bDN4qV4wkzbXwLgUa+gUQ X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5966 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: fbe2583b-411d-4b06-37bd-08d8eadaac7e X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RkozR9lgi+jz4x7ZR+4/NLAt5D8QDeDGq9XcDiJ6/WkgQWgo9KUgdcUBNxE1IEbclFTDleVDDda+5gyudaazn4R6FDDRUG77zcD8dLK3S3JI4h7qlJQEtFA9UwWva6avCY/5nIryfygzJpZ0jEATo7nREh8Keksp9v8WsV7oRZ+oiOKAuPVH+iUO87Fp/vInO8bd+9IRzO3eVM54475g9h0FX6E990GqxNtPv8ZVOHAfHN07szqZdG/xC0wGuiap2yCoLIuqzsDr47iTvytmzajMNIcKKeKmtusZtCdbsJcc+A/M1/2gFtrUSJNPpKhIFdX+y4TzF2buYzcFULd0R4rAnMgxgA8BGz7W46Db6U0U/lbz9+hvPSL9eDc1M1QfJRDYK/dC7yQUMJdz384TxLDwjlidI8mpqMw7H+6FBnfhC1ytFqoRtDVUUJu5BesDmKslk5GoyNA4KNtkI+vewZRRugd8V+l38tcDvRIrgBnCYcag4+vi3pUNdvSRsnI8nhcPXe3jOEVdW7QWkEiaoIVFtAeQz+m+8/KVzVIklUQJqWaJVb72w1EAk/a1psxGnqWRH1z7N9bXaSPovMrsoimfxklbs8Y8NvtlK918EagDbAV3Bo8Lv8/j3/O+BwEOHAqJFRSf6a0hgMueGWOrQVLUEDKW+yFIIGLyKz4hEM6pu1mQXhC2cotFOq61JKNc X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(136003)(39860400002)(346002)(376002)(396003)(46966006)(36840700001)(16526019)(186003)(8676002)(8936002)(2906002)(44832011)(6486002)(2616005)(6862004)(81166007)(83380400001)(6666004)(26005)(316002)(70206006)(70586007)(956004)(336012)(5660300002)(6512007)(36756003)(86362001)(478600001)(82310400003)(36860700001)(82740400003)(69590400012)(356005)(47076005)(6506007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 13:27:08.4165 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f191c643-71b2-4bba-0bda-08d8eadab22d X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB2085 X-Spam-Status: No, score=-14.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-Patchwork-Original-From: Szabolcs Nagy via Libc-alpha From: Szabolcs Nagy Reply-To: Szabolcs Nagy Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" The difference between chunk2mem and chunk2rawmem is that the latter does not get the memory tag for the returned pointer. It turns out chunk2rawmem almost always works: The input of chunk2mem is a chunk pointer that is untagged so it can access the chunk header. All memory that is not user allocated heap memory is untagged, which in the current implementation means that it has the 0 tag, but this patch does not rely on the tag value. The patch relies on that chunk operations are either done on untagged chunks or without doing memory access to the user owned part. Internal interface contracts: sysmalloc: Returns untagged memory. _int_malloc: Returns untagged memory. _int_free: Takes untagged memory. _int_memalign: Returns untagged memory. _int_realloc: Takes and returns tagged memory. So only _int_realloc and functions outside this list need care. Alignment checks do not need the right tag and tcache works with untagged memory. tag_at was kept in realloc after an mremap, which is not strictly necessary, since the pointer is only used to retag the memory, but this way the tag is guaranteed to be different from the old tag. --- malloc/hooks.c | 2 +- malloc/malloc.c | 58 ++++++++++++++++++++++++++++--------------------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/malloc/hooks.c b/malloc/hooks.c index b82ff5781b..e888adcdc3 100644 --- a/malloc/hooks.c +++ b/malloc/hooks.c @@ -330,7 +330,7 @@ realloc_check (void *oldmem, size_t bytes, const void *caller) #if HAVE_MREMAP mchunkptr newp = mremap_chunk (oldp, chnb); if (newp) - newmem = chunk2mem (newp); + newmem = tag_at (chunk2rawmem (newp)); else #endif { diff --git a/malloc/malloc.c b/malloc/malloc.c index 34884808e2..9ddb65f029 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -1286,18 +1286,26 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ headers have distinct tags. Converting fully from one to the other involves extracting the tag at the other address and creating a suitable pointer using it. That can be quite expensive. There are - many occasions, though when the pointer will not be dereferenced - (for example, because we only want to assert that the pointer is - correctly aligned). In these cases it is more efficient not - to extract the tag, since the answer will be the same either way. - chunk2rawmem() can be used in these cases. - */ + cases when the pointers are not dereferenced (for example only used + for alignment check) so the tags are not relevant, and there are + cases when user data is not tagged distinctly from malloc headers + (user data is untagged because tagging is done late in malloc and + early in free). User memory tagging across internal interfaces: + + sysmalloc: Returns untagged memory. + _int_malloc: Returns untagged memory. + _int_free: Takes untagged memory. + _int_memalign: Returns untagged memory. + _int_memalign: Returns untagged memory. + _mid_memalign: Returns tagged memory. + _int_realloc: Takes and returns tagged memory. +*/ /* The chunk header is two SIZE_SZ elements, but this is used widely, so we define it here for clarity later. */ #define CHUNK_HDR_SZ (2 * SIZE_SZ) -/* Convert a user mem pointer to a chunk address without correcting +/* Convert a chunk address to a user mem pointer without correcting the tag. */ #define chunk2rawmem(p) ((void*)((char*)(p) + CHUNK_HDR_SZ)) @@ -1320,7 +1328,7 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ #define aligned_OK(m) (((unsigned long)(m) & MALLOC_ALIGN_MASK) == 0) #define misaligned_chunk(p) \ - ((uintptr_t)(MALLOC_ALIGNMENT == CHUNK_HDR_SZ ? (p) : chunk2mem (p)) \ + ((uintptr_t)(MALLOC_ALIGNMENT == CHUNK_HDR_SZ ? (p) : chunk2rawmem (p)) \ & MALLOC_ALIGN_MASK) /* pad request bytes into a usable size -- internal version */ @@ -2528,7 +2536,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) check_chunk (av, p); - return chunk2mem (p); + return chunk2rawmem (p); } } } @@ -2898,7 +2906,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) set_head (p, nb | PREV_INUSE | (av != &main_arena ? NON_MAIN_ARENA : 0)); set_head (remainder, remainder_size | PREV_INUSE); check_malloced_chunk (av, p, nb); - return chunk2mem (p); + return chunk2rawmem (p); } /* catch all failure paths */ @@ -3030,7 +3038,7 @@ mremap_chunk (mchunkptr p, size_t new_size) assert (chunk_is_mmapped (p)); uintptr_t block = (uintptr_t) p - offset; - uintptr_t mem = (uintptr_t) chunk2mem(p); + uintptr_t mem = (uintptr_t) chunk2rawmem(p); size_t total_size = offset + size; if (__glibc_unlikely ((block | total_size) & (pagesize - 1)) != 0 || __glibc_unlikely (!powerof2 (mem & (pagesize - 1)))) @@ -3096,7 +3104,7 @@ static __thread tcache_perthread_struct *tcache = NULL; static __always_inline void tcache_put (mchunkptr chunk, size_t tc_idx) { - tcache_entry *e = (tcache_entry *) chunk2mem (chunk); + tcache_entry *e = (tcache_entry *) chunk2rawmem (chunk); /* Mark this chunk as "in the tcache" so the test in _int_free will detect a double free. */ @@ -3411,7 +3419,7 @@ __libc_realloc (void *oldmem, size_t bytes) newp = mremap_chunk (oldp, nb); if (newp) { - void *newmem = chunk2mem (newp); + void *newmem = tag_at (chunk2rawmem (newp)); /* Give the new block a different tag. This helps to ensure that stale handles to the previous mapping are not reused. There's a performance hit for both us and the @@ -3852,7 +3860,7 @@ _int_malloc (mstate av, size_t bytes) } } #endif - void *p = chunk2mem (victim); + void *p = chunk2rawmem (victim); alloc_perturb (p, bytes); return p; } @@ -3910,7 +3918,7 @@ _int_malloc (mstate av, size_t bytes) } } #endif - void *p = chunk2mem (victim); + void *p = chunk2rawmem (victim); alloc_perturb (p, bytes); return p; } @@ -4011,7 +4019,7 @@ _int_malloc (mstate av, size_t bytes) set_foot (remainder, remainder_size); check_malloced_chunk (av, victim, nb); - void *p = chunk2mem (victim); + void *p = chunk2rawmem (victim); alloc_perturb (p, bytes); return p; } @@ -4043,7 +4051,7 @@ _int_malloc (mstate av, size_t bytes) { #endif check_malloced_chunk (av, victim, nb); - void *p = chunk2mem (victim); + void *p = chunk2rawmem (victim); alloc_perturb (p, bytes); return p; #if USE_TCACHE @@ -4205,7 +4213,7 @@ _int_malloc (mstate av, size_t bytes) set_foot (remainder, remainder_size); } check_malloced_chunk (av, victim, nb); - void *p = chunk2mem (victim); + void *p = chunk2rawmem (victim); alloc_perturb (p, bytes); return p; } @@ -4313,7 +4321,7 @@ _int_malloc (mstate av, size_t bytes) set_foot (remainder, remainder_size); } check_malloced_chunk (av, victim, nb); - void *p = chunk2mem (victim); + void *p = chunk2rawmem (victim); alloc_perturb (p, bytes); return p; } @@ -4351,7 +4359,7 @@ _int_malloc (mstate av, size_t bytes) set_head (remainder, remainder_size | PREV_INUSE); check_malloced_chunk (av, victim, nb); - void *p = chunk2mem (victim); + void *p = chunk2rawmem (victim); alloc_perturb (p, bytes); return p; } @@ -4419,7 +4427,7 @@ _int_free (mstate av, mchunkptr p, int have_lock) if (tcache != NULL && tc_idx < mp_.tcache_bins) { /* Check to see if it's already in the tcache. */ - tcache_entry *e = (tcache_entry *) chunk2mem (p); + tcache_entry *e = (tcache_entry *) chunk2rawmem (p); /* This test succeeds on double free. However, we don't 100% trust it (it also matches random payload data at a 1 in @@ -4491,7 +4499,7 @@ _int_free (mstate av, mchunkptr p, int have_lock) malloc_printerr ("free(): invalid next size (fast)"); } - free_perturb (chunk2mem(p), size - CHUNK_HDR_SZ); + free_perturb (chunk2rawmem(p), size - CHUNK_HDR_SZ); atomic_store_relaxed (&av->have_fastchunks, true); unsigned int idx = fastbin_index(size); @@ -4564,7 +4572,7 @@ _int_free (mstate av, mchunkptr p, int have_lock) || __builtin_expect (nextsize >= av->system_mem, 0)) malloc_printerr ("free(): invalid next size (normal)"); - free_perturb (chunk2mem(p), size - CHUNK_HDR_SZ); + free_perturb (chunk2rawmem(p), size - CHUNK_HDR_SZ); /* consolidate backward */ if (!prev_inuse(p)) { @@ -4964,7 +4972,7 @@ _int_memalign (mstate av, size_t alignment, size_t bytes) { set_prev_size (newp, prev_size (p) + leadsize); set_head (newp, newsize | IS_MMAPPED); - return chunk2mem (newp); + return chunk2rawmem (newp); } /* Otherwise, give back leader, use the rest */ @@ -4995,7 +5003,7 @@ _int_memalign (mstate av, size_t alignment, size_t bytes) } check_inuse_chunk (av, p); - return chunk2mem (p); + return chunk2rawmem (p); } From patchwork Fri Mar 19 13:27:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 42685 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0DE27386F44F; Fri, 19 Mar 2021 13:27:31 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0DE27386F44F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1616160451; bh=kQW3RfmqeFOi77+L6hUq20atldb+tco7+vs/p0Wd7EU=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=AUgZYkzVuck2M6bUIv9eo6mTwQRgJqH6iZE9hcVqucYNi+KFu2g0x9KWMC52tEqR4 NTbVhEpmNIDt0blvzkbt8Qzm7LH+6T+qGzdwfl98xaXdyXrKVCDMMAJ+t8eeBBCs4B CO3YJ2Qx473YH7VLxWPtD+sP21W0bTyoH0gxKoOY= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2078.outbound.protection.outlook.com [40.107.20.78]) by sourceware.org (Postfix) with ESMTPS id DBEF7385142A for ; Fri, 19 Mar 2021 13:27:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org DBEF7385142A Received: from MR2P264CA0032.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500::20) by VI1PR0801MB1773.eurprd08.prod.outlook.com (2603:10a6:800:5c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:27:25 +0000 Received: from VE1EUR03FT032.eop-EUR03.prod.protection.outlook.com (2603:10a6:500:0:cafe::68) by MR2P264CA0032.outlook.office365.com (2603:10a6:500::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:27:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT032.mail.protection.outlook.com (10.152.18.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:27:24 +0000 Received: ("Tessian outbound db863403a82e:v87"); Fri, 19 Mar 2021 13:27:24 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d607496193d557dd X-CR-MTA-TID: 64aa7808 Received: from c4b700312b32.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 125A7C86-F7A7-4879-9B81-B3FBC2566FE7.1; Fri, 19 Mar 2021 13:27:18 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c4b700312b32.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 19 Mar 2021 13:27:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UypjMv4O//nGbsTpIrTUIl87BjVooABeQ2V90XAIyIUTlU1azP4XQz0FMfcIF6DV1ts1V58L//w/WQJLJv2f9RRIOAHiRaesF/IYORYrj+frrMWFb05ooh+/LLptFyYaI8/YTN2Pjq6mX8tNJNzECxtXEVPdW0wvdJxYyeJkfMT1RfQWsAxscsNlIV5j91jJkXTBkVnMw78hXs0E/gPjasPLSuM//2jmmAazXZW620hDsqwYSlYDmXKjQX/4G3n+XQ37PN1s3bybg166/8ANaAOC4A2iIYvvgNcNTI8VGAn3GaKMVuVAyPQ4jYnGaupDZdegfdU7+1E3u+rKUJCXuA== 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-SenderADCheck; bh=kQW3RfmqeFOi77+L6hUq20atldb+tco7+vs/p0Wd7EU=; b=GGXIMpPdkd0A1e+xUPqDRP68NId2OT4IfFYUVQ+5kIdf6TuhZ8N9UsVo5+sbf1XFV+R/3MKQH3C/GTWufoV5rgRSPyltHcfd78wKmMnL3nCe02cR6lQtGD4LcftM4aVoasP2qEThT5dR6uSnpjH0Y1L1KAnzpQ1DaNHjqdy//oXyonkPhWuysElNv68oGQxAoRLPviQfn6ggJx2bSGgn2Re4uiM4jBOktZY//RXuXXiUVpduCWgrea6ZQ6Arm4KmB0Qg22S0/8fv8mbu3QmOVMkA83VDSmkaXo5a4wJK8i+rHpH6owu7QMOqpdXn5EAZ16MQejzr7pvBQ5P7V6Fzew== 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 Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) by PA4PR08MB5966.eurprd08.prod.outlook.com (2603:10a6:102:ee::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:27:16 +0000 Received: from PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336]) by PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 13:27:16 +0000 To: libc-alpha@sourceware.org, DJ Delorie Subject: [PATCH 4/6] malloc: Rename chunk2rawmem Date: Fri, 19 Mar 2021 13:27:10 +0000 Message-Id: <39adedfcc466045b1087f037f35ca437991e1c17.1616155129.git.szabolcs.nagy@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-Originating-IP: [217.140.106.49] X-ClientProxiedBy: LO2P265CA0209.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9e::29) To PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (217.140.106.49) by LO2P265CA0209.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:9e::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.32 via Frontend Transport; Fri, 19 Mar 2021 13:27:16 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: a04511f5-719a-4fda-003a-08d8eadabbf1 X-MS-TrafficTypeDiagnostic: PA4PR08MB5966:|VI1PR0801MB1773: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:1468;OLM:1468; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: PeuQzQ5rBUvsbbBMHtoF8yc259drCO5Ydw6e0UQDzMTGVH6N67RKLnqU5vmyKM1SaKGQoVOESb/CMIG46stLlclbpX8E3NcTYhpk70MSiGfMNAKsRc1topBvE+k5BTqgb0FjOv5iUTfbNCtcCiojdUx2O/07HZEUlQE1pOBR8fL5Coe7ghd/dM2uckLdR5QVVh8i5aRX25fW8jvsGCYGS969+6Vl/+nEOhf+kd7w9eGEzhSQpKZfsG+OgMCcNGzKp7VMw8sSLwWNDg1rLplyFS4sISY/KUmyJB+Y2KiB2tvKqU9ntpxBlOKSdDjnXLnzBWb4L+pdJqZEZU4C0FpeXbo1z9UbuHni5mZOJHmy4bU2Exe7GLrH92T5ZSclmLkspmk+gZHUsW2Mcd5e9K86H+dYNLyYwwnKFwGcWnxj/O5t2p2I7mOE84zE8jzQ0k0RHPi9MdXtCuEzKAR14mdlkT5r4fhG2hjrKxWMsIQvYAUHOQyrP8DMvaUcV/zurfkthBjz9CA8IqyjEQLjW0N9GLpu6A/YoxM+l7rGd4Mu06x4tdA7oomQmtkorZk+DYOzFCpC//TFXNi1zmiPyJTab73zfeL9WPHYhJ84Gtna2Q9fPUnrHSG3DsiscU3O64t3zLA0SMIWPvMqp0fQ8LmiE1ymAb4mhjfh5wi1/oJLKUDuGcSuO3tydQjDwwDFNUIL X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR08MB6320.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(136003)(376002)(366004)(346002)(2616005)(6916009)(26005)(316002)(36756003)(8936002)(6512007)(44832011)(5660300002)(8676002)(66556008)(66476007)(186003)(2906002)(6666004)(6506007)(30864003)(66946007)(69590400012)(16526019)(86362001)(6486002)(83380400001)(52116002)(478600001)(38100700001)(956004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: mJeIf+0f7VNF7APPe26TixmOzFifp2+mV9P0I2NCAyqMH3Ha9YOdYytFLDRFjrjSkRTh/WXG0uxPiMwUf9RB1oVR4SfZyM4C0rij8cwpZCXc/RVTIjYwwtlotYVkWjASUBkKkkQvGO4WK4AxVeAek6Q+kTWPsc+F1MEPKpHUEoD3ETFYazi/X2c5bqRl33JdhqH5ONd5YuOtO/752rduuDxSZTqB/od9cIPnpf1MQskX5UkHvKSxmM1NVa6NVO08+p7TH5q6bVjIKT9o60Rez27KfTAQYq5O3xiBbEnkPvKJaN6jD2sIATbn1pHzLb9xbLY4bdnGJgV1+oHhvGAmY+/QTWsPoSlpEh5acM/0O9OPXxF6vwJesB9+Pj32UMwLy8BIV9VBSaBIDEN1A91Q2ZTeUpCED5AbnV3ophaqd13e2Xf2doKorKkHcaNoySOEFx2dF3oXvRJI5lE2JRnVc0Jqcdzll+i2H1c2Pdy6iZhbdGOgUZ9LF7U7K7+IIx8mAauN0SFIKr2iC3TkkE9OWleDvrWcWlzwCX+MUdBqONWjHK03y05+VwMtQRxtb9A0B4HqqASrnFyzrqo2KbGWOhZwfQA/P8frVzzTXL1gQEko037Ti3n1mENOpqte/dCRpYqqYMryD9XDQKyueKJ/5jDgxzHYD+03fvYHCEGvUA4CFju9Y8oRsFn+5m5+dMXFY0g6cpasbrRw2Zp3gq28Iznn0Tu75wqU8+HX862zP6gkHExvv93Q1ZzC/DYNZSdlGj68MQihxjwIWrWydubxRNYmmcoGXojsEf1HF0esDDnXx4UA5C35OLzo0hGDdEoSH2mOzYXyv2ObZTJFqqE4PXl8TJ/S7BtF0vOrr/23/Wxci7k4CUnjib54YW5oGCTzcF3lrL8/OWR2BtRWR/yM9Q/Ex3krXQxHIZhD/jPm+Ne1JD5JkchhHM05seC6onT/4Xw1S9P6PxdaLgjom+7P5nsUD+OWUivytP5lY32V2sAXTX0JIxiKNJ+3aDyv2ayxQz+BOdFDnBWb5mk48OkFMJ8muGzqMyOQxwEWPA+YlCFURpky9ch1UxweMeMNzXricpxPte7NiMTUejy1PN0EUxIED+1hbf1y4OePzo5HBDNjE6aE1L78HqCWcuLOADYYB8ejJFUwlZF+5PUTD2LmigTXNopn5qytYTRa0YRZSJoLJYXvHzAyKQWbiYlhXqxMTIvHtoUEBPM8Bblp0EYa/YkKgP01AKkWzGER1hHn62GOTHjURPCyH9Rm/Unx8aHU86w5u2Ahyi6mcGQcU4sB8BM4SZ9DD/9mrQ0t4hWG74jNnDBo9NpSuhHUBPHZ61NL X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5966 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: bb998a7d-815b-4d20-b348-08d8eadab6cb X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bpUnRjP9x37emijAGB+ymLcNZCqHdKTWTxCzOIlXoVzJqxmobcu45kEe4Rv3FEvO30BRGjHmEVaLZUkbOiPk3lYdRjKo1EbGuqYDGc6n7+rLh3eb1lrmMEedb2YOAsRMcPkgilVlAbWD0oGrzt0WPsnHa5ByY2FZ7/NQJYobuZ/FTrw3EaNciiZT4Q764dsmvQg18Dhem42xXISAVu4BhwU3LEM2ltMt/eB+JpgNU82lq/JlVkO9jaby950/4LZrZZnuWT/GM+sdvFXugAixOzrgfUft/ebjiiBoL53mf/5pdyrjfwchybxsmLLGlSk8UQ72M64+2SYiSEaa4nrbTJhPlIhq28roOf8UB1cKtMnjqBp/Gz5Eu4r5J8xFj2/9UVmSP5IUOZDleGIgywj5V1DkFTnT1/wMsNFWg4ujg/vx9ENkcce4MD9eai2QnxOcg3v4a2saHhm8HzNVDerHxg6q/xhn+h28e9E1YPujUrnnum9AH4ftMGGeh7LXdJfexZKBqFGFnP44YaEznuwv/1sgBZKWwE61AueWUU3mK3YQPC6z7ylxy6H17V2L3bTECvYgxo6rrRieJULdQ1otJWpWKj88DCkPAoYtAj8RnyrZilN+eSBJnQ5YROALdJmCV5OBYjaar6Ba1eumWSBr7V9gq3jqPWXvEln1CU+NdfK+1D1/nLwQzQZ2Xs5USo4r X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(136003)(346002)(39860400002)(376002)(46966006)(36840700001)(36860700001)(36756003)(83380400001)(8676002)(81166007)(82740400003)(336012)(69590400012)(6512007)(30864003)(6506007)(6486002)(5660300002)(86362001)(956004)(2616005)(6862004)(6666004)(8936002)(70586007)(44832011)(82310400003)(356005)(478600001)(47076005)(16526019)(2906002)(186003)(70206006)(316002)(26005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 13:27:24.7979 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a04511f5-719a-4fda-003a-08d8eadabbf1 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1773 X-Spam-Status: No, score=-14.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-Patchwork-Original-From: Szabolcs Nagy via Libc-alpha From: Szabolcs Nagy Reply-To: Szabolcs Nagy Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" The previous patch ensured that all chunk to mem computations use chunk2rawmem, so now we can rename it to chunk2mem, and in the few cases where the tag of mem is relevant chunk2mem_tag can be used. Replaced tag_at (chunk2rawmem (x)) with chunk2mem_tag (x). Renamed chunk2rawmem to chunk2mem. --- malloc/hooks.c | 4 +-- malloc/malloc.c | 82 ++++++++++++++++++++++++------------------------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/malloc/hooks.c b/malloc/hooks.c index e888adcdc3..c91f9502ba 100644 --- a/malloc/hooks.c +++ b/malloc/hooks.c @@ -279,7 +279,7 @@ free_check (void *mem, const void *caller) else { /* Mark the chunk as belonging to the library again. */ - (void)tag_region (chunk2rawmem (p), memsize (p)); + (void)tag_region (chunk2mem (p), memsize (p)); _int_free (&main_arena, p, 1); __libc_lock_unlock (main_arena.mutex); } @@ -330,7 +330,7 @@ realloc_check (void *oldmem, size_t bytes, const void *caller) #if HAVE_MREMAP mchunkptr newp = mremap_chunk (oldp, chnb); if (newp) - newmem = tag_at (chunk2rawmem (newp)); + newmem = chunk2mem_tag (newp); else #endif { diff --git a/malloc/malloc.c b/malloc/malloc.c index 9ddb65f029..6f87b7bdb1 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -1307,12 +1307,12 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ /* Convert a chunk address to a user mem pointer without correcting the tag. */ -#define chunk2rawmem(p) ((void*)((char*)(p) + CHUNK_HDR_SZ)) +#define chunk2mem(p) ((void*)((char*)(p) + CHUNK_HDR_SZ)) -/* Convert between user mem pointers and chunk pointers, updating any - memory tags on the pointer to respect the tag value at that - location. */ -#define chunk2mem(p) ((void *)tag_at (((char*)(p) + CHUNK_HDR_SZ))) +/* Convert a chunk address to a user mem pointer and extract the right tag. */ +#define chunk2mem_tag(p) ((void*)tag_at ((char*)(p) + CHUNK_HDR_SZ)) + +/* Convert a user mem pointer to a chunk address and extract the right tag. */ #define mem2chunk(mem) ((mchunkptr)tag_at (((char*)(mem) - CHUNK_HDR_SZ))) /* The smallest possible chunk */ @@ -1328,7 +1328,7 @@ nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ #define aligned_OK(m) (((unsigned long)(m) & MALLOC_ALIGN_MASK) == 0) #define misaligned_chunk(p) \ - ((uintptr_t)(MALLOC_ALIGNMENT == CHUNK_HDR_SZ ? (p) : chunk2rawmem (p)) \ + ((uintptr_t)(MALLOC_ALIGNMENT == CHUNK_HDR_SZ ? (p) : chunk2mem (p)) \ & MALLOC_ALIGN_MASK) /* pad request bytes into a usable size -- internal version */ @@ -2128,7 +2128,7 @@ do_check_chunk (mstate av, mchunkptr p) /* chunk is page-aligned */ assert (((prev_size (p) + sz) & (GLRO (dl_pagesize) - 1)) == 0); /* mem is aligned */ - assert (aligned_OK (chunk2rawmem (p))); + assert (aligned_OK (chunk2mem (p))); } } @@ -2152,7 +2152,7 @@ do_check_free_chunk (mstate av, mchunkptr p) if ((unsigned long) (sz) >= MINSIZE) { assert ((sz & MALLOC_ALIGN_MASK) == 0); - assert (aligned_OK (chunk2rawmem (p))); + assert (aligned_OK (chunk2mem (p))); /* ... matching footer field */ assert (prev_size (next_chunk (p)) == sz); /* ... and is fully consolidated */ @@ -2231,7 +2231,7 @@ do_check_remalloced_chunk (mstate av, mchunkptr p, INTERNAL_SIZE_T s) assert ((sz & MALLOC_ALIGN_MASK) == 0); assert ((unsigned long) (sz) >= MINSIZE); /* ... and alignment */ - assert (aligned_OK (chunk2rawmem (p))); + assert (aligned_OK (chunk2mem (p))); /* chunk is less than MINSIZE more than request */ assert ((long) (sz) - (long) (s) >= 0); assert ((long) (sz) - (long) (s + MINSIZE) < 0); @@ -2501,16 +2501,16 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) if (MALLOC_ALIGNMENT == CHUNK_HDR_SZ) { - /* For glibc, chunk2rawmem increases the address by + /* For glibc, chunk2mem increases the address by CHUNK_HDR_SZ and MALLOC_ALIGN_MASK is CHUNK_HDR_SZ-1. Each mmap'ed area is page aligned and therefore definitely MALLOC_ALIGN_MASK-aligned. */ - assert (((INTERNAL_SIZE_T) chunk2rawmem (mm) & MALLOC_ALIGN_MASK) == 0); + assert (((INTERNAL_SIZE_T) chunk2mem (mm) & MALLOC_ALIGN_MASK) == 0); front_misalign = 0; } else - front_misalign = (INTERNAL_SIZE_T) chunk2rawmem (mm) & MALLOC_ALIGN_MASK; + front_misalign = (INTERNAL_SIZE_T) chunk2mem (mm) & MALLOC_ALIGN_MASK; if (front_misalign > 0) { correction = MALLOC_ALIGNMENT - front_misalign; @@ -2536,7 +2536,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) check_chunk (av, p); - return chunk2rawmem (p); + return chunk2mem (p); } } } @@ -2757,7 +2757,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) /* Guarantee alignment of first new chunk made from this space */ - front_misalign = (INTERNAL_SIZE_T) chunk2rawmem (brk) & MALLOC_ALIGN_MASK; + front_misalign = (INTERNAL_SIZE_T) chunk2mem (brk) & MALLOC_ALIGN_MASK; if (front_misalign > 0) { /* @@ -2815,10 +2815,10 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) { if (MALLOC_ALIGNMENT == CHUNK_HDR_SZ) /* MORECORE/mmap must correctly align */ - assert (((unsigned long) chunk2rawmem (brk) & MALLOC_ALIGN_MASK) == 0); + assert (((unsigned long) chunk2mem (brk) & MALLOC_ALIGN_MASK) == 0); else { - front_misalign = (INTERNAL_SIZE_T) chunk2rawmem (brk) & MALLOC_ALIGN_MASK; + front_misalign = (INTERNAL_SIZE_T) chunk2mem (brk) & MALLOC_ALIGN_MASK; if (front_misalign > 0) { /* @@ -2906,7 +2906,7 @@ sysmalloc (INTERNAL_SIZE_T nb, mstate av) set_head (p, nb | PREV_INUSE | (av != &main_arena ? NON_MAIN_ARENA : 0)); set_head (remainder, remainder_size | PREV_INUSE); check_malloced_chunk (av, p, nb); - return chunk2rawmem (p); + return chunk2mem (p); } /* catch all failure paths */ @@ -3004,7 +3004,7 @@ munmap_chunk (mchunkptr p) if (DUMPED_MAIN_ARENA_CHUNK (p)) return; - uintptr_t mem = (uintptr_t) chunk2rawmem (p); + uintptr_t mem = (uintptr_t) chunk2mem (p); uintptr_t block = (uintptr_t) p - prev_size (p); size_t total_size = prev_size (p) + size; /* Unfortunately we have to do the compilers job by hand here. Normally @@ -3038,7 +3038,7 @@ mremap_chunk (mchunkptr p, size_t new_size) assert (chunk_is_mmapped (p)); uintptr_t block = (uintptr_t) p - offset; - uintptr_t mem = (uintptr_t) chunk2rawmem(p); + uintptr_t mem = (uintptr_t) chunk2mem(p); size_t total_size = offset + size; if (__glibc_unlikely ((block | total_size) & (pagesize - 1)) != 0 || __glibc_unlikely (!powerof2 (mem & (pagesize - 1)))) @@ -3059,7 +3059,7 @@ mremap_chunk (mchunkptr p, size_t new_size) p = (mchunkptr) (cp + offset); - assert (aligned_OK (chunk2rawmem (p))); + assert (aligned_OK (chunk2mem (p))); assert (prev_size (p) == offset); set_head (p, (new_size - offset) | IS_MMAPPED); @@ -3104,7 +3104,7 @@ static __thread tcache_perthread_struct *tcache = NULL; static __always_inline void tcache_put (mchunkptr chunk, size_t tc_idx) { - tcache_entry *e = (tcache_entry *) chunk2rawmem (chunk); + tcache_entry *e = (tcache_entry *) chunk2mem (chunk); /* Mark this chunk as "in the tcache" so the test in _int_free will detect a double free. */ @@ -3324,7 +3324,7 @@ __libc_free (void *mem) MAYBE_INIT_TCACHE (); /* Mark the chunk as belonging to the library again. */ - (void)tag_region (chunk2rawmem (p), memsize (p)); + (void)tag_region (chunk2mem (p), memsize (p)); ar_ptr = arena_for_chunk (p); _int_free (ar_ptr, p, 0); @@ -3419,7 +3419,7 @@ __libc_realloc (void *oldmem, size_t bytes) newp = mremap_chunk (oldp, nb); if (newp) { - void *newmem = tag_at (chunk2rawmem (newp)); + void *newmem = chunk2mem_tag (newp); /* Give the new block a different tag. This helps to ensure that stale handles to the previous mapping are not reused. There's a performance hit for both us and the @@ -3468,7 +3468,7 @@ __libc_realloc (void *oldmem, size_t bytes) { size_t sz = memsize (oldp); memcpy (newp, oldmem, sz); - (void) tag_region (chunk2rawmem (oldp), sz); + (void) tag_region (chunk2mem (oldp), sz); _int_free (ar_ptr, oldp, 0); } } @@ -3860,7 +3860,7 @@ _int_malloc (mstate av, size_t bytes) } } #endif - void *p = chunk2rawmem (victim); + void *p = chunk2mem (victim); alloc_perturb (p, bytes); return p; } @@ -3918,7 +3918,7 @@ _int_malloc (mstate av, size_t bytes) } } #endif - void *p = chunk2rawmem (victim); + void *p = chunk2mem (victim); alloc_perturb (p, bytes); return p; } @@ -4019,7 +4019,7 @@ _int_malloc (mstate av, size_t bytes) set_foot (remainder, remainder_size); check_malloced_chunk (av, victim, nb); - void *p = chunk2rawmem (victim); + void *p = chunk2mem (victim); alloc_perturb (p, bytes); return p; } @@ -4051,7 +4051,7 @@ _int_malloc (mstate av, size_t bytes) { #endif check_malloced_chunk (av, victim, nb); - void *p = chunk2rawmem (victim); + void *p = chunk2mem (victim); alloc_perturb (p, bytes); return p; #if USE_TCACHE @@ -4213,7 +4213,7 @@ _int_malloc (mstate av, size_t bytes) set_foot (remainder, remainder_size); } check_malloced_chunk (av, victim, nb); - void *p = chunk2rawmem (victim); + void *p = chunk2mem (victim); alloc_perturb (p, bytes); return p; } @@ -4321,7 +4321,7 @@ _int_malloc (mstate av, size_t bytes) set_foot (remainder, remainder_size); } check_malloced_chunk (av, victim, nb); - void *p = chunk2rawmem (victim); + void *p = chunk2mem (victim); alloc_perturb (p, bytes); return p; } @@ -4359,7 +4359,7 @@ _int_malloc (mstate av, size_t bytes) set_head (remainder, remainder_size | PREV_INUSE); check_malloced_chunk (av, victim, nb); - void *p = chunk2rawmem (victim); + void *p = chunk2mem (victim); alloc_perturb (p, bytes); return p; } @@ -4427,7 +4427,7 @@ _int_free (mstate av, mchunkptr p, int have_lock) if (tcache != NULL && tc_idx < mp_.tcache_bins) { /* Check to see if it's already in the tcache. */ - tcache_entry *e = (tcache_entry *) chunk2rawmem (p); + tcache_entry *e = (tcache_entry *) chunk2mem (p); /* This test succeeds on double free. However, we don't 100% trust it (it also matches random payload data at a 1 in @@ -4499,7 +4499,7 @@ _int_free (mstate av, mchunkptr p, int have_lock) malloc_printerr ("free(): invalid next size (fast)"); } - free_perturb (chunk2rawmem(p), size - CHUNK_HDR_SZ); + free_perturb (chunk2mem(p), size - CHUNK_HDR_SZ); atomic_store_relaxed (&av->have_fastchunks, true); unsigned int idx = fastbin_index(size); @@ -4572,7 +4572,7 @@ _int_free (mstate av, mchunkptr p, int have_lock) || __builtin_expect (nextsize >= av->system_mem, 0)) malloc_printerr ("free(): invalid next size (normal)"); - free_perturb (chunk2rawmem(p), size - CHUNK_HDR_SZ); + free_perturb (chunk2mem(p), size - CHUNK_HDR_SZ); /* consolidate backward */ if (!prev_inuse(p)) { @@ -4836,7 +4836,7 @@ _int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize, av->top = chunk_at_offset (oldp, nb); set_head (av->top, (newsize - nb) | PREV_INUSE); check_inuse_chunk (av, oldp); - return tag_new_usable (chunk2rawmem (oldp)); + return tag_new_usable (chunk2mem (oldp)); } /* Try to expand forward into next chunk; split off remainder below */ @@ -4869,7 +4869,7 @@ _int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize, } else { - void *oldmem = chunk2rawmem (oldp); + void *oldmem = chunk2mem (oldp); size_t sz = memsize (oldp); (void) tag_region (oldmem, sz); newmem = tag_new_usable (newmem); @@ -4906,7 +4906,7 @@ _int_realloc(mstate av, mchunkptr oldp, INTERNAL_SIZE_T oldsize, } check_inuse_chunk (av, newp); - return tag_new_usable (chunk2rawmem (newp)); + return tag_new_usable (chunk2mem (newp)); } /* @@ -4972,7 +4972,7 @@ _int_memalign (mstate av, size_t alignment, size_t bytes) { set_prev_size (newp, prev_size (p) + leadsize); set_head (newp, newsize | IS_MMAPPED); - return chunk2rawmem (newp); + return chunk2mem (newp); } /* Otherwise, give back leader, use the rest */ @@ -4984,7 +4984,7 @@ _int_memalign (mstate av, size_t alignment, size_t bytes) p = newp; assert (newsize >= nb && - (((unsigned long) (chunk2rawmem (p))) % alignment) == 0); + (((unsigned long) (chunk2mem (p))) % alignment) == 0); } /* Also give back spare room at the end */ @@ -5003,7 +5003,7 @@ _int_memalign (mstate av, size_t alignment, size_t bytes) } check_inuse_chunk (av, p); - return chunk2rawmem (p); + return chunk2mem (p); } @@ -5038,7 +5038,7 @@ mtrim (mstate av, size_t pad) + sizeof (struct malloc_chunk) + psm1) & ~psm1); - assert ((char *) chunk2rawmem (p) + 2 * CHUNK_HDR_SZ + assert ((char *) chunk2mem (p) + 2 * CHUNK_HDR_SZ <= paligned_mem); assert ((char *) p + size > paligned_mem); From patchwork Fri Mar 19 13:27:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 42686 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A00E53861838; Fri, 19 Mar 2021 13:27:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A00E53861838 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1616160472; bh=d5rdX/sL/EL3ZH4vZm1Kao/KAG64SFUJFp/fipkUk04=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=xeeN8q9o1WWLp0PmnQSKxIrMwK1+CD9hNNA+oGdrXOV2JDQ8MmQFI3Havh6um3nD+ EId2rPbl4sYvjf9p/Q3C7i3mx7XrzozCRMVeZwbr1NtXFV610CjTWqqLKL3Dwz6QHz DdadikKanX0I/kQcIMAmfbldYmOZ8TiQJGVgehEI= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40059.outbound.protection.outlook.com [40.107.4.59]) by sourceware.org (Postfix) with ESMTPS id AE946385142A for ; Fri, 19 Mar 2021 13:27:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org AE946385142A Received: from DU2PR04CA0029.eurprd04.prod.outlook.com (2603:10a6:10:3b::34) by VI1PR0801MB1919.eurprd08.prod.outlook.com (2603:10a6:800:89::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:27:48 +0000 Received: from DB5EUR03FT049.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:3b:cafe::17) by DU2PR04CA0029.outlook.office365.com (2603:10a6:10:3b::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:27:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT049.mail.protection.outlook.com (10.152.20.191) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:27:47 +0000 Received: ("Tessian outbound 26664f7d619a:v87"); Fri, 19 Mar 2021 13:27:47 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 07c05d25f35624d2 X-CR-MTA-TID: 64aa7808 Received: from 8c863abc3a77.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 8291163D-AD12-4BEE-8F8C-D6E173602CCF.1; Fri, 19 Mar 2021 13:27:34 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8c863abc3a77.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 19 Mar 2021 13:27:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZXn5enR50LhwBwOM/JE6/ukNIhxUk/xFZhPtUwnmbBN15ttL07tVEwW/bQDAI27MqE/DXAsA4jCILOn3VlA4Gw+STAj74Qbh+HFKNxTvN1zSXadUN45EK1BYa0bkhzfbq9tpCyF43uh/ScfPbBcljpzL9zXsVbFfE4dvITVfW77Rnf8hRKpmsq3VUrF2KBa9igluHuHD25aqJVGXzGbXIzmTFOJMmZlEWrrazLQuTvnniuGSIpt8OFjFybsFvHS7zOcaevJfrsImdR7nvKZNEwQIdLo4gY55LZg9D9zc6GO6C/pgYT/xv6KBCdZpKY/f8Ug99iyfRXBC8zbWPlLitQ== 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-SenderADCheck; bh=d5rdX/sL/EL3ZH4vZm1Kao/KAG64SFUJFp/fipkUk04=; b=dLEKDzoHfMXAyc1tGFgeEG4DELUCPH8wubzKyW64HWbZlpC9VChNiIdNXZ0tYVYU9+w+1M0eJdP/yhqzL6FoZs4fHhwyTglYoZqavDPKPRaMhRoNcMGbbUM15FRHiVMRjY5LVsxUnunrgQLvGSDS58RB73tg+sK8e4NkXW/5NpKtQvEHvYRHb/93MDbjxjBtA/sb2ZGsSvGhT9Yz7DZK0AqIO1j2niuH7Lop2JAa3fZ+K8IiastyakM5a44Nkr5GJz3Q/LTpbaTO6WX4mNknloHvfPUKpSACPfdFijUuLO3KqS4uHg7SWI6775QhPZGU4Iks1JYpyY7KIDE+8pq5RQ== 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 Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) by PA4PR08MB5966.eurprd08.prod.outlook.com (2603:10a6:102:ee::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:27:33 +0000 Received: from PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336]) by PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 13:27:33 +0000 To: libc-alpha@sourceware.org, DJ Delorie Subject: [PATCH 5/6] malloc: Remove unnecessary tagging around _mid_memalign Date: Fri, 19 Mar 2021 13:27:27 +0000 Message-Id: <7203bf2d0d1405daa5d1c62744abf8ceee85b5bb.1616155129.git.szabolcs.nagy@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-Originating-IP: [217.140.106.49] X-ClientProxiedBy: LO2P265CA0464.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a2::20) To PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (217.140.106.49) by LO2P265CA0464.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a2::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3933.31 via Frontend Transport; Fri, 19 Mar 2021 13:27:33 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: d8b4e4d1-4fd0-4c54-0f08-08d8eadac990 X-MS-TrafficTypeDiagnostic: PA4PR08MB5966:|VI1PR0801MB1919: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:3513;OLM:3513; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: U+kXa3wcWOIQy784FUhrtWK653IvTlp3day3z9PL8CA/9mhANCu1N/8mYJS1p143XVKokTfg9swtnUAquK+DF/fV3ph+l8nzt/USTfJ4TnJ0/ZVvy5eIWWbS/9YgP8gd1jEpuRMFjcfbQ6Z6Q2NhnCORAAu32Sqap+rTR5fMWwTLlh49S6AoDvivjDF5k5JvgWPoQwrJBeooPTqamYnGmm2NilFajfDPf3xuK1zjUhVbL2aLNInQO5GWOdRSDtRgph1giVG9mXr43MowNh0k8U4eRiifdBjVuJPO+ZoIjpYXS7DHP5d82ICgxP00tbTFzCjjZNR2GKVb+kGfMCjifhUoQ1ZpU/wQtUzMxSCRt3zTdai64gAsk2iivguxcoOLPLl/1XeXqfqA5aJlSU/G1ppMbiRv8/v+Ttqx9xMvbA7fjJh5YaD8LKrlVOgo4Szh/7x5bgUNp4g9TyvSTEVncFYgWO96PyQhaJmKFKsoVbckHZkwnwUu+QmUycL0lcLlck1i6B9yfGyZBTgGFZvoyWUu4hulUsH8SZp2QcariM3ogpy2GBYEupQIPqNA5KWd3cUTTMNRHY5TaAZO2Gjnlkf6SnVU0szPiLKyd9Lcn3PbP0Q3RP8sp96rVTrW3D0u6iuvYRaIcxnKBICyOcsBlUfxtaEJyaheCDvWz+qSQseAE5OfOQvUME1fVDvnAclF X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR08MB6320.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(136003)(376002)(366004)(346002)(2616005)(6916009)(26005)(316002)(36756003)(8936002)(6512007)(44832011)(5660300002)(8676002)(66556008)(66476007)(186003)(2906002)(6666004)(6506007)(66946007)(69590400012)(16526019)(86362001)(6486002)(83380400001)(52116002)(478600001)(38100700001)(956004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 1BOIF58YeXukadGMiKAtYxp7sOlIdfAPmbgodjrbSFbbpAWmGB9cfNtC/HZx3VKxhf/P1+JE7CaO+X02s9F4ukcQG/rKT7Q2mn78iJ0ChZ8Heb2ZjZ3oiU0UL0YL7sggP9JoiQDjYuXyX/i+NzaF52keq4fT9BAghGvmlBcKKJw/iZsRZA3SRIBUht1rHdSZiqNRGzlEL/Rrn/OAoYM/hu01EPB8PXPTvhalgVUzDayVXxODa69zbpuMmZtWsWC/AK/v1SdOGinxwk1nwRAXFlemkIv7Msq6/H8cbgwERWti4AQLzdOiv2b/ko9JKq3yTbWWMcPoohvxSVe3VA6OMvVo/oNgmsqXF2vL57ZvY7WWfSE9fRQfm8jFiRDTqA4jWk6bsgfxdlYJ/wUnfSV1EqkLlmarL/zhWjxezx0+VEuCvaG4yLjGWArz5LjLu6m18zSd3NaZYuJ7vzD/fLYFs+2mzESEBCDjNlKQ5TVqdYp5F7cq4vgbJxuPhEIfQTwXq5ZFE7ikgbt22Y9OBbu3FEann0Sp+rVdDVeKC5iEcET+RG7673e/170UhGiH2sYb4QG9aoPNYaD1r/fWbNR3cGYiZguWB4t698SM6JwiInKD6kO5VYLOwwIWf0iUEfWTEij4eOSdej/0QvUv2d0+39oF+h80OQKzUcNbFzEnu8i0vQQ/1k5Cnh9GuJGvBfx5ttfnoxkwabTKu71PKAR3pyrLflcewz8QRauMWqgwhFpKfl/9rfRPuyGXxz0vK8K1rFqVB/GIveQGyrmbz22QZqDHqOUKhhUyWApetyulyqwmKdAB4QnINlvukic8Ok+D+/xFQpwdr/4euTFRla89BRQaKG/o0NqAXFXMVFxFcgFi852SzrdH+6Q+AwRlmq1+EaJh28IoBGoGG3aovr2jevUx6WywJwrp8qAuCUNClFgkZzoQzUYbmEoVswHpm5C93Web0/ypNgjghpzqPhzNXmZKPKIRN3ysbeR7nK7aeHl2VszcVmi+rEfhisuZcYCdJU4P4Y54+3onf3SPQdNxRvZaKdNlFJ7CI9gnatejYagZs/LPu691EM/JzBzxNtCAeWAOy/5fy8qOozA8NxzlLuO2qR1HWaKgN9MjBUDnk6XuCF3KG3sOoQohk7pwo/+kINFDg9cKeVB7HrhBvkLxIL92LOljGjTE8ROKeiqf+hP+3YOdvmaC8IIe95BhiMTVwWQNEvJ0air4a0C7EHg6FYg8yDE8T3y4LSdDZ0aS0CpC8ekbdafvrf04t2uZlNoNmzL4QxgussOiWy3fsp8F1Qk/fCpy2MhQ2jSWTUVYYz/BOWXFWS1Da2p0znw4M0Zg X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5966 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT049.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 1be85278-c08d-4102-2a25-08d8eadac0f0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gobZqw4QMdj6R21fMRNW/n2JefwwSCriaoSbFiDDNtGMgvQhhERpp2lwggdNPGDkcGzJTJ0GXkSoxkQfOgPTYZ23tM7xR89d+kdpsmOBmtoQaKQQ0o6LPCfUsRC7jXcAdu1VIDojzExJaDu4skpodWYghe3ymVMK8w3MhLLk+hzrZ2IHrzSweQIWdoVjO72Mp8gPzRrnwTbLwFZNEl9O7t5ITZ0h9RFq5If9SPjhnZIyj1/Ed2Ua+HGlgB2vWRWJVP96EWfHaGkqtGvVvlR1QQxh7ZO9AMhWpeI0pGZvczL31KJMAcb4qhUlY2xcr2kEQYbumvg7pF54dIaZBC2o60HpOtCibS3Wm5gBjfg0scc+acqrvzYEJNTi9tdT9M0TCK7tAu4MkJeSnXghzgG+SMWI4n5Z+rNmBwkhassSiJXU8bGI8cumIP+3OLc4abNjnrBp4HMMku/55E4eON30R5r9aaXGraEkEkM5NzU3MN8xjRgWMPl1YnpGeCBd/CbYNj/LApLQXihmR4F+jDkpjZRlvziRn9CzhgkyCzFVVhxekyruvmR2RnKy1w/r7EH1tjGRZSdlW3T2n2AvKm2e/KYmlQM11M/nJfY3ebkoG9U+xkPKwoQ5U5/q0w8zfZLlTALZRtf7dmk5pwcPK+kw4p+L57aJnaqZ1kf7wTP39Zmem5L+j/XxjNgNQZvLRMSJ X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(136003)(376002)(39860400002)(396003)(346002)(36840700001)(46966006)(16526019)(47076005)(70206006)(186003)(26005)(956004)(44832011)(8676002)(316002)(36860700001)(356005)(70586007)(86362001)(82740400003)(82310400003)(336012)(2616005)(83380400001)(6862004)(5660300002)(6512007)(6486002)(478600001)(2906002)(69590400012)(36756003)(6666004)(8936002)(6506007)(81166007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 13:27:47.8026 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d8b4e4d1-4fd0-4c54-0f08-08d8eadac990 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT049.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1919 X-Spam-Status: No, score=-13.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-Patchwork-Original-From: Szabolcs Nagy via Libc-alpha From: Szabolcs Nagy Reply-To: Szabolcs Nagy Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" The internal _mid_memalign already returns newly tagged memory. (__libc_memalign and posix_memalign already relied on this, this patch fixes the other call sites.) --- malloc/malloc.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/malloc/malloc.c b/malloc/malloc.c index 6f87b7bdb1..cb1837d0d7 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -3553,22 +3553,17 @@ libc_hidden_def (__libc_memalign) void * __libc_valloc (size_t bytes) { - void *p; - if (__malloc_initialized < 0) ptmalloc_init (); void *address = RETURN_ADDRESS (0); size_t pagesize = GLRO (dl_pagesize); - p = _mid_memalign (pagesize, bytes, address); - return tag_new_usable (p); + return _mid_memalign (pagesize, bytes, address); } void * __libc_pvalloc (size_t bytes) { - void *p; - if (__malloc_initialized < 0) ptmalloc_init (); @@ -3585,8 +3580,7 @@ __libc_pvalloc (size_t bytes) } rounded_bytes = rounded_bytes & -(pagesize - 1); - p = _mid_memalign (pagesize, rounded_bytes, address); - return tag_new_usable (p); + return _mid_memalign (pagesize, rounded_bytes, address); } void * From patchwork Fri Mar 19 13:27:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 42688 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 30E54386F457; Fri, 19 Mar 2021 13:28:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 30E54386F457 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1616160487; bh=6Y7WKWafDXkhASTua4V1RJ9vQV85q2KqQ0RQ1Ddr81E=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=EJ+TZ+pO7tD9HRYbsUOrhz2h5y9Q8OJsvLwu7H+UNi4d5wPKR51lXEDTTENJDRf0o THrmkRu8gMS/aj3W/Uz6N2nReksdTA4lbp9OYHXDbs6v1pB9Gh1xrdf3dOCo/LDKVe x4h+np8yblYboDGcEWCYOHKUWlcUs28z1/5lNpuU= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2045.outbound.protection.outlook.com [40.107.20.45]) by sourceware.org (Postfix) with ESMTPS id 10246385142A for ; Fri, 19 Mar 2021 13:28:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 10246385142A Received: from AM5PR0701CA0023.eurprd07.prod.outlook.com (2603:10a6:203:51::33) by AM9PR08MB6771.eurprd08.prod.outlook.com (2603:10a6:20b:30b::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:28:03 +0000 Received: from VE1EUR03FT048.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:51:cafe::c3) by AM5PR0701CA0023.outlook.office365.com (2603:10a6:203:51::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.10 via Frontend Transport; Fri, 19 Mar 2021 13:28:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT048.mail.protection.outlook.com (10.152.19.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:28:03 +0000 Received: ("Tessian outbound 04b74cf98e3c:v87"); Fri, 19 Mar 2021 13:28:02 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b41267de04082e50 X-CR-MTA-TID: 64aa7808 Received: from 33d5756778d6.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 8A1E3650-FB3F-4688-BE8F-78CD05AEE5AA.1; Fri, 19 Mar 2021 13:27:52 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 33d5756778d6.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 19 Mar 2021 13:27:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A5n8Gz0N6UO3MY6FfU8vHC+84XOXJXf7FIg8IWSP2kFMh1rFv7yJTvxHKQ6L2IhJB/taY9tnGBiOolml4xrAXHQrraci5A7C35RgMCon6S2wkYIr0mbNqy5bIvoEXon8oJT+gHU+bcd2h3JQ4Y96Vw1NwVcq2M34TtLoWqCqVmnZzupmpDLddZ0bEk4JfGMf6wX2lgCTVEOeHaFUaY18c9pAvWMj53BFX5GWgplYZVz6No5DbT/J4Hp5JoJsfr7DfJosUsa7+bOpLyMhzuIvZfb/1YOe8ZF+i8zd7zaqdkuYCohmpvOe7ynA9i4sOS3QRTswG+qamj7qj122oYXy+A== 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-SenderADCheck; bh=6Y7WKWafDXkhASTua4V1RJ9vQV85q2KqQ0RQ1Ddr81E=; b=d5pjtbByK2YtBJo7XHOfYTsH98IqEA3A8zGvPsdiGofJsdfFVjD3CUIZxgCelgSX78ezxSLF9yLXjgnxN0fvzvavAPjP/uL1YaBaIsuJOm2Y9BhneN3BL8zGCZR6TAfza3sBp7+tUQ4P9VafY70UW5TNut/jZG4eQr9MBpXWGf2eHwBdo8te0cyaH3Op+n7Rr9KxA7u7PcpfTreCjeVM/2/0CRFw6plaj488euHDLHPrExYoSQlBebEWKAdS6GLNJDLn2HS+fpZP02d1EhUIwPxaeWAM+PQMekPS50Kv7WdfnfnsjRJ9xaa9DLmE490TpsWG+LXGflwkM4o0c+LjYw== 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 Authentication-Results-Original: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=arm.com; Received: from PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) by PA4PR08MB5966.eurprd08.prod.outlook.com (2603:10a6:102:ee::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Fri, 19 Mar 2021 13:27:51 +0000 Received: from PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336]) by PA4PR08MB6320.eurprd08.prod.outlook.com ([fe80::60f0:3773:69b8:e336%2]) with mapi id 15.20.3955.018; Fri, 19 Mar 2021 13:27:51 +0000 To: libc-alpha@sourceware.org, DJ Delorie Subject: [PATCH 6/6] malloc: Ensure mtag code path in checked_request2size is cold Date: Fri, 19 Mar 2021 13:27:44 +0000 Message-Id: <57b96253346fe679c82b7f88e2398ec21553b52c.1616155129.git.szabolcs.nagy@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: X-Originating-IP: [217.140.106.49] X-ClientProxiedBy: MR2P264CA0138.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:30::30) To PA4PR08MB6320.eurprd08.prod.outlook.com (2603:10a6:102:e5::9) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (217.140.106.49) by MR2P264CA0138.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:30::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18 via Frontend Transport; Fri, 19 Mar 2021 13:27:50 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1f7f309d-5fa1-4dbc-d2b2-08d8eadad2b5 X-MS-TrafficTypeDiagnostic: PA4PR08MB5966:|AM9PR08MB6771: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:7219;OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: /V6MmDV8B/PH95SlIKHaRWGIW0g2lkr9Hm0hrdcC89yoCdxWlqnEDU/T6UCD8acgJOu93v/zm8vqd10oJCPIYOCQxG+x1tLbL7ARy2b6zhuX/yJ1H2KUeNYBpQO7eyKoTS0L27O2OSmzHU1p54ekXebmOCNMI6fgMQ1Ee79cuNa8oYCYMZcQxjBObRmqCSNAOXKOP1362xbaTvvvKjaJjPrO7p+JEZ8mcHWzsnAReiY18WkGuBwYvLj8e6GLjNCCA8he/vYXOxz+DnMXn4OLrYyvFiFQRlbmRdsq2bxktBmIAIqNzdndkxxOXFt9bV1N2L5W0OpVZKF0zd3yWJQ7f6raZJFxIWGR/8JXVrLyRog2A5R+8pORw9cllyFOvSEHogr8AIeVP6LawYlqrSXEFEDb/MwuXcdnHgsiVBu37GzJxvDVdAPHu1+QIgDDQqfAl9WzHLcuyQVYL0N2SJ/6H06vufYWZg6ZFNxSoUtfOVlQbmaza5Sg1k+vODp3IHuHQkXDYkZiy4vnuGQoZUOXrKq6ngm2aEdwNxUPIfUQrE6fFzoWjFxYnYs6seAhnXtNwc8oeCeLFaLThxYd3xuCfCc4n2yfDHPf/bfLj87H8QRalYzya81U4mmyKF00sBpWC7PPy/9e1MkIvRd8fq5iWHMBHuY38rEO5xKc4E0uywOqpOYmWTP/bbFzjFLtb7Rx X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR08MB6320.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(136003)(376002)(366004)(346002)(2616005)(6916009)(26005)(316002)(36756003)(8936002)(6512007)(44832011)(5660300002)(8676002)(66556008)(66476007)(186003)(2906002)(6666004)(6506007)(66946007)(69590400012)(16526019)(86362001)(6486002)(83380400001)(52116002)(4744005)(478600001)(38100700001)(956004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: fqkDpTl8qnn4giEmBI2WF5EPBAkgKn2MH38FJlTEjOanuAe3lI272/Qip+unYrWaRm7IcAwdWydh0ryRrEA3BGun1KpNmBQpQQuMdcWlMDuvo6UDOq51Q99r52B8xOloVDRYZ4qZG7ObAoV87ngnXHDt+z9QF+dhKHoKGk7MAT69l1Gc9kqsSox4EQxkjL1LlgPHuRQ/BsOW+0NacByLaxX218s4AJVNwcEQzgd2buIFi/HjhJMMtKuR6VeSihBHtW6GNKCcvBmlTWyyTkmNZWMoBWrj9WEMBxZOkdiLej4xiFKup2fgOsl2d0W4pugb2FOSV6leni926nXOTx/XcaDCVKVcuKbSL1EnHHJvPCN9JDrkak6T1Wwgk/7hNB19aftZoW2zxAOtu+PQ4YsoXWH5WpiEs3rbP+aDk4AmVB9aoZqGCrS7gTsXLBH0ROPTjSpzQXIvDs7QWMZrymPBqegMaOT6tIbzfnJLZfVi901dT2rC7mZXgu1v5LTB8VgMcuaDZBa+LAS/nTwKuQO//Qw8dNO+w59K6K3KDyDifXdHSy7lUlWeEkPunT/R9ucdekuNcaw4BaAVNB7QGeViCzUqz5hnzKFiiAtrcyp24SCbHHVAYMRkkR3pS7LYjNOEGJiDP5OO9MWHyg1P7bGTmxAve+YyMEMHG/65YgSCDllTwa000YxrrR3i8iGuxfOrjiHikqAft4F3lmX8Ul5TPmhwkwOCPzLKLheVRh3+sWItBVe2zQP6A+j8msWGKYR+pHkFc5OHZ6JbZ+kXmhGxMK/TNamwbO4x656hqPqpOjA3phoCf5yPWGDzhstEkurEUQ2DEiYjdHQdftaCV2USbWexPRgRH/tnl61NNPGnhMNSJBDaw3O2pbiqRMX7NciGr05miMUC5cUNO0yySFaiZHuyXoQsTUlFGc+S2QcA9nHNVvCsf+qieBs3ILGVMlqrOhlhuE7WHvLF9AtI/sk3jpi4vVVI+el6CEpThYm3wLTuMPlvzVdp2BTqzPznnJf1jmPCUfczecdL90eszX2oKxqlsuSE5O/twuTGAo75PeBI0etDVXwjy2gXyg5+au7G76MKuj5dKbOxgcqBVB4d63cuc1khPdBCB8tRjDNNZMUqFuWdZLNuSJPdlbaCRJlRELSW2onX2IxH+o8q/Gm9DdNtSaHqpIz9PhKbilUcYNagiWfoLdG4phLsgvInWv+itmhCpiaBh/jbIUt5DWBnNPlBPVTKs4cAQDba33PBuLA4uvt5OV4mXGjlrSidapjO/qfm+iaB4TGTG3vy1AFTnP4WpMAZ2ne/suYgbMl13EP5h8uOUeBHjY4hHouN1EqU X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5966 Original-Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none; sourceware.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT048.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: e218263a-35ab-4d82-d358-08d8eadacb47 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dMQYwS9NVOEBKxASg3YTmjoMp+LXQDRPdAqjSkl46MDc6WPiuAFY5MUTjRyS11aQVJAB2WvYdHHlC3rdK0FrsHuCzTlHBpMEOl0xvYaxv4uK7YQ+VOE9vC28aP79VP4UqkhJGpPireL87asYVsiOEyw0su7frdC798RE1xwAw55D7zOB0hXAdBDVzE4LVORFb8S5F++b3wO3VnGOU6MTaR3Xm6YDwQnCTxCBXf2rft7Pmr6OavUEOOVtHZJVO1qFLQHkENRkPmjisrvC+EBLSRHr/ecPthUby5XAucIhI6A8XOgiGsyqNKtolXIVobSBqWT2S1nitu09rq7v48Bw5WSTRQGSNsvTS1e+JQLM5i2KmdJZU1mXG9PURaUXscBeOsTHKE+z4JSCrCBAKpEMM/JUtY22eepStSjVfQdmWHyvFi8U8mm39r4OfBsklvXTtbWgNjqcfC0P4OEhYDhovV0ahBnCOXINflk5imnqDO39ko8vK4XhymAcGv9Y705Kmt9pUNbZIJnErzlWZlVxGSly6L33GJ8SiavPc4ogslUVDME8nRpQfe27EnrviWQQ/evT17Xah2HZxqpZ8U1MQ8PjcZA1Yl9aSQxOXsFUFpq3Shl7KoRSn6fn7MoiZKBDp8E1VOBSZKeU02rgvwYY3qE3TYltln/Lh6rRhL6CvMOy7Biapc2SmMN/FricZ9d7 X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(376002)(39860400002)(346002)(136003)(36840700001)(46966006)(36860700001)(356005)(6862004)(82310400003)(86362001)(956004)(2616005)(83380400001)(44832011)(6486002)(70206006)(5660300002)(81166007)(8936002)(6512007)(82740400003)(36756003)(70586007)(47076005)(6666004)(6506007)(478600001)(336012)(8676002)(26005)(316002)(16526019)(69590400012)(2906002)(186003)(4744005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Mar 2021 13:28:03.0477 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1f7f309d-5fa1-4dbc-d2b2-08d8eadad2b5 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT048.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6771 X-Spam-Status: No, score=-14.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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-Patchwork-Original-From: Szabolcs Nagy via Libc-alpha From: Szabolcs Nagy Reply-To: Szabolcs Nagy Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" This is a workaround (hack) for a gcc optimization issue (PR 99551). Without this the generated code may evaluate the expression in the cold path which causes performance regression for small allocations in the memory tagging disabled (common) case. --- malloc/malloc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/malloc/malloc.c b/malloc/malloc.c index cb1837d0d7..ef1f5b1621 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -1357,8 +1357,13 @@ checked_request2size (size_t req, size_t *sz) __nonnull (1) must be a macro that produces a compile time constant if passed a constant literal. */ if (__glibc_unlikely (mtag_enabled)) - req = (req + (__MTAG_GRANULE_SIZE - 1)) & - ~(size_t)(__MTAG_GRANULE_SIZE - 1); + { + /* Ensure this is not evaluated if !mtag_enabled, see gcc PR 99551. */ + asm (""); + + req = (req + (__MTAG_GRANULE_SIZE - 1)) & + ~(size_t)(__MTAG_GRANULE_SIZE - 1); + } *sz = request2size (req); return true;