From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2040.outbound.protection.outlook.com [40.107.22.40]) by sourceware.org (Postfix) with ESMTPS id E832938618CC for ; Fri, 5 Mar 2021 21:36:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org E832938618CC Received: from AM6P195CA0099.EURP195.PROD.OUTLOOK.COM (2603:10a6:209:86::40) by AS8PR08MB6629.eurprd08.prod.outlook.com (2603:10a6:20b:319::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17; Fri, 5 Mar 2021 21:36:55 +0000 Received: from VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:86:cafe::e2) by AM6P195CA0099.outlook.office365.com (2603:10a6:209:86::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Fri, 5 Mar 2021 21:36:55 +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 VE1EUR03FT037.mail.protection.outlook.com (10.152.19.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Fri, 5 Mar 2021 21:36:55 +0000 Received: ("Tessian outbound dd71fb35fd76:v71"); Fri, 05 Mar 2021 21:36:54 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: eb32340df3c5bb58 X-CR-MTA-TID: 64aa7808 Received: from 92399fb1132e.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1FA5BBD5-2D2A-4BAA-87C1-9332EB07C522.1; Fri, 05 Mar 2021 21:36:48 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 92399fb1132e.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 05 Mar 2021 21:36:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QVi0hSaEvG0fc9tHnima4zpuPcOdH/7W+aQjX6ISuIkSlEpWM2b4bmwfMWTI2e3QK0EFRXv4DdlNuWU/+GiEBF8PHQX/q9aQlnoOMxZd1cNRmpbTIJfN/6IOj7BbgMFqghVMeaQGVJHw85udobCMWo632d8RU5Nz5fjomD3h5xINONt254FNwl/UfHGCeN1U186JUsLUCBznsIxwjM/h2E33iksf6IrViDmne/aAW1BLLAORz5MneKUP2vozXRRsPxEWBCMvXO8/Ne/WKsXL4TqwKD/8UHzqbnkAhTwxbjg+jSt9V1SD8ensHOboAAG40wvZP9nRc1ZZzCmCl/5SLA== 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=2i3tvICPu3YPlGW/8s9jhs9E8D7LrDOe48JtShh6rjY=; b=NrKbeqblkz3VEsbXlSvG5eddnMNwpTtnsN3b4xyhAFbB3bOHNLxPOqd6fZNevDbA9ipRIRFA79pg9We2MDqK3CoSr0G4Nvmhog1O3MhD7OumC1vxWDxImie+m9WvlOZxT7tEyk4YseydxPX2DHwWxZCUjqU+Fl2IU9zuwAZnMG8WuhQOp+9lfudUcdGSm1+8lvswBD/CGXR5grsE1tZGg2RI8Ub5qlR92XgY5Ek3d/T23NvnkU6J5xZAE/6QAxPnTXreFzu++SteKF5oMj+u3d+zC9znHCGZ5iZT43jrNX2yMYCgsTMEPx8OJv93e9wrhlRahNyGAK5MPKhijZwCvQ== 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 Received: from VE1PR08MB5599.eurprd08.prod.outlook.com (2603:10a6:800:1a1::12) by VI1PR08MB2831.eurprd08.prod.outlook.com (2603:10a6:802:20::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3890.19; Fri, 5 Mar 2021 21:36:46 +0000 Received: from VE1PR08MB5599.eurprd08.prod.outlook.com ([fe80::385c:f8ff:ee16:3a4d]) by VE1PR08MB5599.eurprd08.prod.outlook.com ([fe80::385c:f8ff:ee16:3a4d%6]) with mapi id 15.20.3912.022; Fri, 5 Mar 2021 21:36:46 +0000 From: Wilco Dijkstra To: Szabolcs Nagy , "dj@redhat.com" CC: 'GNU C Library' Subject: [PATCH 00/16] memory tagging improvements Thread-Topic: [PATCH 00/16] memory tagging improvements Thread-Index: AQHXEgMcUsmuLszqrkOXz8AMm8O6Ug== Date: Fri, 5 Mar 2021 21:36:46 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.24.249.100] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ac4ebbc7-2cf5-4b45-8f5b-08d8e01ecc27 x-ms-traffictypediagnostic: VI1PR08MB2831:|AS8PR08MB6629: x-ms-exchange-transport-forked: True 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: DZaPWz0nD3zzG+Fbcyr1yCBZvRgbGf0rKmTGg0VhijbyLhw+VKU2KyXQxIEJeOxBtJS2IvxjWinp0c8t5rE3nS09nYzOeGzdXjBAZiohmLvgl947nCD+GB7jxZ/1rizPqdjSv0H1URJolsoG/eohpM61ndbJ9yJy9d0+BZR/RSVWNyQnDPX5HtRgXIMWI35iUcDFZCgKn8iS6HQMoyffuKcuFhoEFTX+atWA9YFaUli6yN4q+F9veAcyjqIX/j8lLNG+ZupOZOWXYwEUMC2aawnMXNY8OYqSKMxCfyVdMVsz+1fbrvuExvPOc56kW4MqZDEfTNTKvj4FRn864brr8OqCSujglS+33BMWRRsPiVkQfpRC9T++GPELvehn2iJOBiFHEPZGY1AcyzEqsYFJv1qYNv0bJEDF2KPAiIN8dRDoeU1jmtectDp7EhmUb+XPFoagHxZyc0NaRKgkoDee0tlk8+FWf1NfvcN3sVPgbzCosg6FG48N9juqsElgi3dDtQ2dbmTRCNruqM/vMU18nw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR08MB5599.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(39860400002)(346002)(136003)(376002)(4326008)(66556008)(76116006)(66446008)(86362001)(66946007)(71200400001)(7696005)(5660300002)(186003)(316002)(83380400001)(64756008)(52536014)(2906002)(478600001)(110136005)(33656002)(9686003)(26005)(8676002)(55016002)(8936002)(6506007)(91956017)(66476007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?iso-8859-1?Q?DEgnjSigR0+oIlYYLUtyO2jF8SGWJeZ2XrxV04GNfhdAFUvyQeROnK8EB+?= =?iso-8859-1?Q?NFEDAPr+jsGcIL5bz+x0jUQuHkrSgSZ8D/M2+UngTsfSH8IT+2w2RNYQSk?= =?iso-8859-1?Q?765drB///3k3Bq0jaE4bmG0i/AYKHE+4vXudEFZkmgeQKy3/WnsIJ44qXu?= =?iso-8859-1?Q?yhdteTdRIEUHKiH6k7+se3hIVH1sOk5DfRuxExV8Yftpq56P9zCWuxREZo?= =?iso-8859-1?Q?3uTOsezWlHcPvgc0+3obUohFQ/wHUqeDnoV679u8C3GfoluEAtcGXh7Meo?= =?iso-8859-1?Q?E9AXNNk3Zz6JSY5LeL2Ev6Az8YLDaDQFeZyWGS/an6al4GYe58nIZVaHY/?= =?iso-8859-1?Q?deo9oDdRrZk8f42Zm2t/gPyL1q7g0t/vKwEkhhdmn7kRsdX7oK3Av7BoeL?= =?iso-8859-1?Q?xtZxLVxNNapaWIH705mqboO+XUEHnIdEzhmEg9FNEb5ISjJx8gD6jK0EER?= =?iso-8859-1?Q?XYRrCv1WSElIbKJxKtXQ7VgCi6a9mKoHi3ZEyKz2YyOF8gDnr6hsbAgVtn?= =?iso-8859-1?Q?Cm4AUxoQgnpT0ZUFFJk5rxOy7+F61risnbQ3Dbzng4D6LA/fFTd2H+D2nH?= =?iso-8859-1?Q?L67yS+xFWedLzUJ7+NekdHve+g1wp6fsj+QyrqaVgPwKk66eOW/rWfeaup?= =?iso-8859-1?Q?a5JWx1D6Qxy6tfaHh5piqSwO9XdN4mWNVMxEr8ngizX1VuGA2GwoLm81M1?= =?iso-8859-1?Q?7GeRbayHEobW3V4b0GjadHRDNnjKY54VePnmAyCBX51lqJfTML0g6xF7/j?= =?iso-8859-1?Q?81XGVRsGhIUNQd3fBCwJB2znwAFLGWt6I8wpBgRllcHXCdRB4AZDe6EKX5?= =?iso-8859-1?Q?u9KT43Tv4BPELTCH7wu3I37eDN9Sl1VmO5dwpPioRcQ2NpTVccO6VhJKK4?= =?iso-8859-1?Q?vGuCa0vP1GRf7HGLc1QcorVuTyXMESZHeVoR0FjJi0+gmEtcWj8dlLpx9E?= =?iso-8859-1?Q?JHZkCHuaX9XU2UeXk9L5WE48Hnocf7rQzSo9tWnnkghk59n45v7dsG+E5N?= =?iso-8859-1?Q?5JSRRPRL0769AuQHgK0v5Famx6kERn0mmmuH+KdXb/gQNFeRfD4GttJ1bY?= =?iso-8859-1?Q?WUEA63Y3QJmty9gyDMfLGGdqgh4XtpXZ66IsYSmQ8fWgqa729e1acZeG+D?= =?iso-8859-1?Q?AtscdmjUCuHD81i9yN2rw+CEK5ZQVMoxLs9ERTVrbJ8wo8a5T7gnO+YhRL?= =?iso-8859-1?Q?NRpVfjJe9zp6h4o3KkFzKjClxwkMmp6pm1lcmYuq/JvCRnbSToQEPYjP8j?= =?iso-8859-1?Q?e/1bq1ecNTV0QiEK245/A7iE05KWHQPM+TRmiwU463b5DkMDqlnQjSHX0k?= =?iso-8859-1?Q?hBXr0EoGuOVDWSZBkSZ3PpyrwNiPMpczDyMwnblVUyAKjYw=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2831 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 85773643-db59-493e-6b5b-08d8e01ec6cd X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: d7QtJDgVNCP93wmLo6qbSHSqatNLsuSP8u+XaI0B52imhYtI44uqkKebNbdJxAC1evHOfIYmmG/Izq1LPRH8+xkYWe76+NBbExWb74E5fAfe8gKuDEg8tRCw9HHAuTV6zTiOBB6eWjfGdlJWBT/KpHRtc0HmHZPgQcNBuKTYLVg2cdMjGtPm74wkfn7Feljck18xYRktleyPAKzgWMLDZ/ePPoPX1pl2mAMQBRvh9MAy7Z7+pZWf5EZ3z55chn1SHWcRwJbCMorN5ugdVdGIgPQza/2dwPOfSuVJbV1PEn+n7uRC7zZxmLiJSsYWJ1admMM7WhRPXavcA6eat9vGnZc0iTEao1qoNzgt7qiwR9kHZABGuY1zwctSqxgngSPPSm/xXqYqRXGgYn513PPDiZgMwzNB3EcU7IyQ0w/ZHOMRuPpd8fVwgPfVwhK30O4zHjTUGqcmLMOcR7NmwtRcmvKUAoiSPd06P6MlQoot1sUNTm7WFzvEbp1v3jgF9K3AosJXheM1lxXXAxRjzrWga1q8YmK14KhjA3nM2O/rd/T2Y3oQCyCzo/tRFCN9WRKVLKQ9/wK1hyfy75sHVTThRtd8H06lOMYQ7giogmvVu+fxYS+Mt0sM7xT8XIDo7ZZHO1U3G2yEreOKGBHFg8zT0Rf1XVKCDLy55OY3t6vn1Jw= 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)(396003)(346002)(376002)(46966006)(36840700001)(6506007)(81166007)(8676002)(110136005)(33656002)(26005)(52536014)(9686003)(2906002)(47076005)(8936002)(316002)(186003)(7696005)(36860700001)(70586007)(70206006)(82310400003)(4326008)(55016002)(86362001)(356005)(5660300002)(82740400003)(478600001)(83380400001)(336012); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Mar 2021 21:36:55.0351 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ac4ebbc7-2cf5-4b45-8f5b-08d8e01ecc27 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: VE1EUR03FT037.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6629 X-Spam-Status: No, score=-6.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, 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-List-Received-Date: Fri, 05 Mar 2021 21:36:59 -0000 Hi,=0A= =0A= > - request2size and checked_request2size are not consistent which looks=0A= > wrong (likely works in practice other than some sizes don't end up in= =0A= > fastbin or tcache that one might expected to, but i think this can=0A= > break easily). Fixing it is not obvious because of assumptions about=0A= > the chunk layout that is no longer true with mtag enabled.=0A= =0A= It's better to change request2size to round up differently if tagging is=0A= required. That avoids dynamically changing how chunks are rounded up.=0A= =0A= > Other possible optimizations:=0A= > - ifunc malloc apis=0A= > good: near zero overhead for runtime dispatch.=0A= > bad: malloc has to be built twice or larger refactoring is needed.=0A= =0A= Using ifuncs is a good idea for the future - it allows removing the old=0A= hooks and other terrible hacks like DUMPED_MAIN_ARENA_CHUNK.=0A= Also it allows more modern malloc implementations to be added while=0A= keeping backwards compatibility if needed (for eg. emacs).=0A= =0A= > - unconditional top byte zero=0A= > internal data is tagged 0, only user allocation is tagged non-zero=0A= =0A= That's a great idea! Many chunk2mem can be changed into chunk2rawmem=0A= approximately halving the overhead. And mem2chunk can unconditionally mask= =0A= out the tag (note all this could be made target-dependent if needed).=0A= =0A= > - unconditional layout=0A= > padding up to tag granule can be done unconditionally=0A= > good: no runtime check, same layout with and without heap tagging.=0A= > bad: wasting space with small allocations, design change.=0A= =0A= This is unconditionally good for performance and avoids the request2size od= dities.=0A= If we're worried about memory usage, we need to talk about modern malloc=0A= implementations that don't add a 16-byte header to every block.=0A= =0A= > Benchmarked using bench-malloc-thread glibc ubenchmark on Neoverse N1.=0A= > For size=3D16 the runtime check overhead is=0A= > ~ 32% before the patch set=0A= > ~ 16% after the patch set.=0A= > On a practical workload or for large sizes the overhead should be tiny.= =0A= =0A= This is a huge improvement, but still far from being practical given malloc= is already=0A= slow, so making it this much slower is a non-starter. For this to be usable= for distros,=0A= we really need to get the overhead below 5% (and it looks like that is feas= ible - with=0A= the optimizations mentioned I get ~3.2% overhead).=0A= =0A= Cheers,=0A= Wilco=