From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from YQZPR01CU011.outbound.protection.outlook.com (mail-canadaeastazon11020104.outbound.protection.outlook.com [52.101.191.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 25DA7213E69 for ; Fri, 10 Jan 2025 17:15:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.191.104 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736529325; cv=fail; b=ETDmbKUBDRJ8TGCb7p8OO6/ImP1p6miUEIQvagHY9WO3bjTWzYkY59O6+uVoacJIM2bDgMRRLZgoGfMO6q2qcev/jQNTnsFh22MNn8rAFLIdqA/a87Pjo5e389+tA2tS/Xt2A3BcD0+rTo8GDz9m44p4Mj7Fw0WcSulj2SUZgF8= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736529325; c=relaxed/simple; bh=K2okO34JOTrvEA63cC9zAkMV9dak+cW52r5NEi7F264=; h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To: Content-Type:MIME-Version; b=Hz85kFcgQHSeCO4EEREnEBl3Ju6TP9T/rrF3R2mUb7YdDRZH9e5C2d97qoT48pPrxqSfiyggxtMBxNlt/zY9BHohgWS95NJEdf5yNRHcMSllebXpNM7EU3KXnsKO8aq36Oafh+/QsxFaH29lHCfzj2riibxOadrNAGv67W5nalE= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=efficios.com; spf=pass smtp.mailfrom=efficios.com; dkim=pass (2048-bit key) header.d=efficios.com header.i=@efficios.com header.b=OE7ve/4j; arc=fail smtp.client-ip=52.101.191.104 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=efficios.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=efficios.com header.i=@efficios.com header.b="OE7ve/4j" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lmA2sCOMDC09qubONvxxupZgml3Dd0RJIVKuO4LgePLuVYkl50sP8Z38jV88i0XG0Bm1Jnk2+9yg3CksA6LV2F2nWhcPrgzfEUpZ0/003PRCPnWUm3g7609MZt/620g2VCyidQO3YpOL0SThOE+ikNHzc+WW47omyKRcxcPQ2pVRTnl+VMQ0sXAfQqfwPJnEYxKtBDGhYYckxKNRCF5rl3x6MLsm9jguFY/tr8GkDka7fX+1nfYruh/jnAd+ydeC2Z8m3qSaATcnl+8IGUmhgxLjpy7vz6aZeOn8n+ROE8giYS4w1qGG+teeLCaymIeupVGroNuDrFonToY6ejDckg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=s4AEflwgL3kNgOOxiHyCtgfa5JdoDrMcQ+u3DUih0SM=; b=wY2u3mqazAF4eQ/0TlXD5kO8sbp0lNa7ieXULkPyXAkEA/IKG0Cx+pB3gvkvkfK/4xnMk3GH9EDtVhf0ErT6cc21zOkTssCbzFwwKylhpPH70l5Mxw29SNgI9zJf4xcXYUZNLFkqN0R9MU6dcy8twOje2ZteFG5laZD1K7zOC4ucARbX06uIi0Xmo+7nA9yFP3yp2Z/Q+y65ptX0ZS2F/6x0/ghv+Wcp2zsb37lVQGuC9nadBTiYKIud+3ufeEJnWHPjTdVEFqapucLwRUM0QwZZp4chZiAJqeAvtKgufGPC2pmEt4Olt9ChxUVpDruLyWfMVqgyuhaTrXcYwLUUWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=s4AEflwgL3kNgOOxiHyCtgfa5JdoDrMcQ+u3DUih0SM=; b=OE7ve/4jEyZtmxReTD09I6DleDQiJX1xtgvA0fyMZqqzu3DUG7qWtEI+/28W70g14v/HO4y37rv9WV6/WsFspXaItEGJepeoTfpDbTFCYdwDa2n4I+rm64Vv8QAHurZ3s4qAE/2oET8LM2Uy7a+YBE8eqBjJTT0NFMhn1i6ZLbNc+boVDbStSWRcc29S+HXiuo6OzF3K+Sj9Cgz/vqI8Wdpj9m8ic03JCD+zsr0JEsGpb4BIUqj20I+bcZgVnWJ1s41OqnKK8xu5YXyM1RbPJzhnUkziEpZpY7gyUosJzxfu74bthwPmiPjoyOxHm6a9jXRN3MPQMzr9oTKQ05hUog== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:be::5) by YT3PR01MB8113.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:9a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8335.13; Fri, 10 Jan 2025 17:15:21 +0000 Received: from YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM ([fe80::50f1:2e3f:a5dd:5b4]) by YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM ([fe80::50f1:2e3f:a5dd:5b4%4]) with mapi id 15.20.8335.012; Fri, 10 Jan 2025 17:15:21 +0000 Message-ID: Date: Fri, 10 Jan 2025 12:15:20 -0500 User-Agent: Mozilla Thunderbird Subject: Re: Prevent inconsistent CPU state after sequence of dlclose/dlopen To: Florian Weimer Cc: Peter Zijlstra , "libc-alpha@sourceware.org" , "carlos@redhat.com" , Mark Rutland , linux-kernel , x86@kernel.org, paulmck , Michael Jeanson References: <20250110165412.GC4213@noisy.programming.kicks-ass.net> <8c1ad304-61bb-4bdf-aa75-8633f3d0196c@efficios.com> <87ldvitx0t.fsf@oldenburg.str.redhat.com> From: Mathieu Desnoyers Content-Language: en-US In-Reply-To: <87ldvitx0t.fsf@oldenburg.str.redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQBPR01CA0012.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01::20) To YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:be::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YT2PR01MB9175:EE_|YT3PR01MB8113:EE_ X-MS-Office365-Filtering-Correlation-Id: 662de9cf-f607-4edc-a116-08dd319a5cfa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?TldYVXJaRmxDaDV1bjdDWmpQMklITENuV3FGeDhSTXFCTFFGTHM0TTd3NW5R?= =?utf-8?B?N2xEWkp2QjQ3Q1A3RDZWYnArTnFSdENmVlllS3NhWWxSenA4L0EvMHZFUEhu?= =?utf-8?B?VmtVNjBQOFlLVkJBdmRjK3JmTmU2T0o0bGRDOHI3U2J3TmZXcnkreE9qaFVn?= =?utf-8?B?Wi9uZ1JJZGFPNUJUN0VhbHZwLy8rTVAzM2s0UEVhbXZaS3RjSE1pamc1Tks0?= =?utf-8?B?TEVjZHNSQTFNRE1ucmM1UEh5RlRqbVhLMXoreVlVUk5MT3Y2NFRyMVJuREJ6?= =?utf-8?B?SlZseW5XWndnem9FQ01iaFBhTTVRV0FqTGhhdWtPZmJkeWFsclRaaWVuYWFa?= =?utf-8?B?MjZqVzFJenNXVExlSHIrMkk2Q0NDajlBNnYxNWdMYVhhRDl6YlZudG5yNXpO?= =?utf-8?B?K0c4NDYveG4yVDV2UXhMU0V5VGZQZGVRY2ZMeWVaLzJaVGp2Z0NJWkw1QTRI?= =?utf-8?B?OXFMc0JRNUF2MmhjUzJ1cUc4K0YvY1kxL25pdWlaU2Q0MFY4QitBdUNBQ1gz?= =?utf-8?B?SmNNbkluUGlCQ2xiQ1lua2JtdW5Tbk9IK1dtTGgvT3JzbDc1Z2dqaFZYTVhG?= =?utf-8?B?a1NPOXhDaDNSb0VNbjVYL0xNMnljUUVzd0RuaGpEL0MrOGtCd3pCSmdNMFhD?= =?utf-8?B?amxxdlNnL2FrRHZMYlRCRUZQSENlZC9QMTJueFNtRjVnS01CM2E4S0Y3NGlF?= =?utf-8?B?RkJxRTB4MXBzWVZIUDBCbzlyM050K0l6bXZyU015MlNzR2VlM3MwNGdhbUhT?= =?utf-8?B?NWdKckozVm5LUlJpbmhidzl6N0U2VlUrSUNLZ2tzU2x6MnhaN3hHMHcyQlVG?= =?utf-8?B?cVJtU3Awc3pVbWxUTHFvUXVnemNHQ0ZQQ2pYaC82QklLa0xBZXpaTTN1YXFx?= =?utf-8?B?bGlPWG15UktDN1hSUmpraGxKZ2NKd2ZFdzJlVmxVTVpRemQySUxpYjhzeE4z?= =?utf-8?B?bWxnb1RaUVIyZjJEd3hzSWhtWmpubCszUHF1aG91SWIzcWRheXpSZDI2VlJI?= =?utf-8?B?SThpRUlKWmRFci9EK0c1Q3Y4dEhJM1c2UDNjR01IeklmR2FueXAyc0l1UlJC?= =?utf-8?B?RWFqOEtJU0Q1VDhSSDU5b0hQc1ErTGxrZXZ4a2lRT2hrUXpVbFk1Z3lSUUdN?= =?utf-8?B?YmFzR0F5SmljSWh6OGJQZ2pnKytDejVOa0JOVVJkK1F2cjNVbFloQ1hQN05w?= =?utf-8?B?enRVMC9tOUhQaktOd0ZQYWRyK2x3SU54SU1nV0FxT3lUY2tiKzQ0VkhSK2FM?= =?utf-8?B?N0dJcUljVi9TK25mWDA3ZUVkQk00STNIUDhoalkrMmdLdEhDdkxYNEJTcjhT?= =?utf-8?B?c0tLbWRzK1VQNDdRMnBNVTcxeWsyMnhvZUMrMFdDdk16cVQ0UlFEandJTzdz?= =?utf-8?B?ZWNWQWlrVExEQWE0RnFFdzE0YWxaSGw4TTFCVitLS3A4Sk8xZGVsNDZIaUJv?= =?utf-8?B?a2dVMnNHR1dySUtGdk5DcFVoYXZVcXVFNkZpUllzOFFoMlZnS2J1VW1JNnBS?= =?utf-8?B?ZTQvVE4yNzZreGZySmN0UksyYVZtOUlaVVVLSC8zYng4dXdlMTI5T2dpZ0R3?= =?utf-8?B?eFF3M0o0Vkxya3pNNkp5M0dpSkd5V01pZmplNHpFcmJscGl6QlZmWFQ1OXhR?= =?utf-8?B?N240VWQ0VTdGUytyUmx4OU9oNm9WRFNnaUtDT2EwdDVWcWMxRFBXMFBvMnZG?= =?utf-8?B?YngyaGVzamYrVEs5d3VrSExCMXM4NjJLOTBEaU1PTmtaMk9zcnFEQm9KOUQ2?= =?utf-8?B?cXVwQXc1aFp0YjZXVUlMZnhhZmsrY0dLOGFKWmVEQ3VVTEFXd2x5VlBacTRl?= =?utf-8?B?Qm1XVUQ2eXZuRVVDWFZNQT09?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MHRpY2NDMmx2eTRERzlNMUhNZk5tekZxeWEyVm1uTVZ2bzB6L1ZiWmRtODU0?= =?utf-8?B?dkpCME80WU9ZMERwK1JnYzZ0aEE1MTdqU2Eyb0ZZUng3eTFXTGdzM29JYmgr?= =?utf-8?B?MktHYVFpMERtQXR5Nk4wcWRQT1UxMUtBWDIxRE8xSjliY01CRUlLMG8wSnZ1?= =?utf-8?B?MVJEMnZ4WEZLcHZJS0FVV0l3Y2hKaHpMZ3B2Q2dFL3ZrK0oxenhKN0RvT1lL?= =?utf-8?B?UnZoMSs3MENDQlZJcC9wbGY0aDhzcFB2QjdhbXRjbGluaGtJZEZiMmx6bWZE?= =?utf-8?B?Q2hNT3pia1VBTVBMRHhyZnJ4emJuYlE0V1FTNFpZOGtEZ3VBOGpaV05sbW5F?= =?utf-8?B?YUJXcTROVG1wS0h2dHlXK2hLZEJxdFlhV3ZNYWtOQkdyNEg4T3oxT0UzR1U2?= =?utf-8?B?WVNrRGxnbDRaVDB0MGNld0JtYngwWWgwVXBVYmJ5UVdnVm1rTDJ3ZjNvMjVP?= =?utf-8?B?SzU0UUQ0L1I0M1QvZG0zL1JaUFdpQXNsQVR5YkFLT3Z5TVNZdEFRTmdTZDMw?= =?utf-8?B?dDBHY2haUmdVbXd1Yml5RlZrdGNiVlo4azZXRmlaa3MrYXJYRWM4SmVWRVRq?= =?utf-8?B?VG9JbHpmMmh3ZnVUWitQRktJaTdIeWVQb3NISmZ3cVl2bzBFdlJYbjlsUXM4?= =?utf-8?B?RjBrSUtFSHZFaHVhQTlsOEppZW12L1g1cHRON2JpQ1RrOUQrMk9yQ0hrUnFD?= =?utf-8?B?UUdjMkl5VEtOZWp5ZUp6S2o1NjF6eHdmbEt3TEM4N0NlOTgwcEpEL3U3MEgw?= =?utf-8?B?WVlkdFFFd3JsaVpHcGtDUnZBc1FZMUVDYm0wbHQwYW4vdXV3dTJQNHVDVWdv?= =?utf-8?B?V1lnRFRHKy9veFYxWW1mVnVGOVlqTlF2cGJRSDZKT09EZkpoQ1B3WUVpZkYw?= =?utf-8?B?MWRSUzRNQ3NFaWsvR05Qbm96M0E3RUZOUnhHYmJUWE5XVXFnQzFGeGxWdU4v?= =?utf-8?B?TjFITUdhM2JWaEZlemw0U3ZtbHRWYkRuNGdDN0FtODArS0t5TWVjMkw4enZW?= =?utf-8?B?L3Jhdm5nRGR2ajEvR0ZoSHM5WVNNSWU4QmR5THplS0h3Z0lONUZubXRicXpv?= =?utf-8?B?TURwaW51bFozTE14YkI3aElKVDBUQS8zYVNsN3VvSTFtT21IVGlBYzlFdWZM?= =?utf-8?B?ckZlVXF0THluMG5zdm13dHowOWtKZE13dXp6MmV3RjJCNFBnYjRUaVY0dDRv?= =?utf-8?B?Y2dOUm9SMnJRc3l4UVRaL1ZrUWFBa0kxUFptQWhYV2pGc0NST2NNR2dhTVFI?= =?utf-8?B?MlNiUXlvaVNReFN4OStpSC8ydEtlbDFPMEJlTEdUQWxsR1hHcktUb25NY3lj?= =?utf-8?B?WmVtamcyeFpQK0tEMmg2ZzZCVVYrRDRycXdEbXFuUngzbVpWdUZkSXVGNVBi?= =?utf-8?B?SkNlb1laeFpMOHZzWkp4cHBxcTl1ZUVGUjE5RmIrbmZmZGpoMDFmNCs2b0Uv?= =?utf-8?B?SWFxQ3YyaGVzUS9mOElZM3RrRmVEdTVWdGtpTUs5aFQyT1Q2dzJtcHdCeUgz?= =?utf-8?B?Z1Zzam95ckhJOCt3dVkrRzI1VWZmT3hTSDVUd1BUanN5QXp4KzE2UFRRcy9F?= =?utf-8?B?ZW1RdUJTckU4ZEtXSmJRdUZ6dkZOWE9ubXF3Q05qd1VwTGsvWG0wcWt3NUxJ?= =?utf-8?B?VEMvTHIySkRVL2tOZ043Rng2ekV5ZGxyWnBNbkFVYTJ2TXkvT3U3dkVBaGpM?= =?utf-8?B?SWhNa3ZrTmtraUZKd08yVU9hVlZOaCtTYzJTTjNrK2JwdVpvUjNOTUJ5cWJP?= =?utf-8?B?cUQxQk9RWEp5MDdLZkhoR1plZzRmaW1kdFJ1ajVNcnFYbXdySXhiWmZyT1lJ?= =?utf-8?B?UHdkcjFrVktwOS8rOG5qVmZldVlNNjNjOVVYM3lkc1lyVnFNaVo0dUNzMlcz?= =?utf-8?B?YjEzRXNUTFMrb1RpMWJUVzF5NU9EclJsOUFTZ0J3T3NKMFpBV1FEL3owNS9J?= =?utf-8?B?TmVITXBxSzdZOEZudDRlNXNrUlREeWJOYUIwcmV2cTVZOEw2Wjh0eTlyaVdW?= =?utf-8?B?Y1BVY3pGRGo2Wm9uWEE4QXo4U094VkNNZjdMYVVVL2FMMWUwOXF6ejVxeVJG?= =?utf-8?B?eU1yTkJwMGd3ajBmQnBiTjlINFhmNDRvOWRiUUJwTU95M2gyWGtnQlRHVG9t?= =?utf-8?B?b1JKVXBLMk16Wk1PRyttMUZtM0RtU05Zek9pV3IxcUdSMXlpS0pkMHU2M2RF?= =?utf-8?Q?8p0R056HUCXrpOFkGzhWs4E=3D?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 662de9cf-f607-4edc-a116-08dd319a5cfa X-MS-Exchange-CrossTenant-AuthSource: YT2PR01MB9175.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2025 17:15:21.2000 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2uaFJA357EN5jJL0kuge9lMjsPDnklF8UC9ER7J7BnKSvtu13ThK7V1/bdhVwU0Sbm8K4KoJsses4EvEgwvmUL204Ryc1aQ4RtsA32IJb50= X-MS-Exchange-Transport-CrossTenantHeadersStamped: YT3PR01MB8113 On 2025-01-10 12:10, Florian Weimer wrote: > * Mathieu Desnoyers: > >> On 2025-01-10 11:54, Peter Zijlstra wrote: >>> On Fri, Jan 10, 2025 at 10:55:36AM -0500, Mathieu Desnoyers wrote: >>>> Hi, >>>> >>>> I was discussing with Mark Rutland recently, and he pointed out that a >>>> sequence of dlclose/dlopen mapping new code at the same addresses in >>>> multithreaded environments is an issue on ARM, and possibly on Intel/AMD >>>> with the newer TLB broadcast maintenance. >>> What is the exact race? Should not munmap() invalidate the TLBs >>> before >>> it allows overlapping mmap() to complete? >> >> The race Mark mentioned (on ARM) is AFAIU the following scenario: >> >> CPU 0 CPU 1 >> >> - dlopen() >> - mmap PROT_EXEC @addr >> - fetch insn @addr, CPU state expects unchanged insn. >> - execute unrelated code >> - dlclose(addr) >> - munmap @addr >> - dlopen() >> - mmap PROT_EXEC @addr >> - fetch new insn @addr. Incoherent CPU state. > > Unmapping an object while code is executing in it is undefined. That's not the scenario though. In this scenario, CPU 1 executes _unrelated code_ while we unmap @addr. The issue is the stale CPU state that persists. Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. https://www.efficios.com