From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from CAN01-YT3-obe.outbound.protection.outlook.com (mail-yt3can01on2127.outbound.protection.outlook.com [40.107.115.127]) by sourceware.org (Postfix) with ESMTPS id CBE533857836 for ; Fri, 16 Feb 2024 21:10:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CBE533857836 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org CBE533857836 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.115.127 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708117858; cv=pass; b=bnmdqQYEPUAU0f/rUqON2CLZjxaIhgTJEAf1XKc01kAHq0mqyq7ljO1uYgHPST+cBGxvQEzfqolM5Mj3hYiZ8YD81H7o1JgdzzOwET+YvJOVQ2gMDJ8FXOlTpeovXlU7cGLshsT9L6BFTvm8PLlcSAyW1GyWYin2oSqvaPSzDzM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708117858; c=relaxed/simple; bh=b/Asbr74snp6hZXtWh5Yr609+kDeTIf/bt3Va6ELj0k=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=UBAnyy0shvJVnA9oQDy5A+V5/5eDFPqckR1TT2zFevKAljSRkZApvnCkz0pU59Wickwf6DJU5XbMF8CC5goduWF8W5vTrXSh9zfeLDSAVWmWi+EOMsNRaqH4zydKBewixWzNJmgV9FJfYoiqrz1NRQzth4cfpQNsjgkN18A8Nlk= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XmSYLClGxQUSxP5tao68XP5UInlBQedc5C4ZV6SvzzIuAcWV5RzHoul0WjAKUIDKKVhrShXIqy13gTd3S8b4SMvaCzpgruwph2EvmGhmmUjGoKDeIqiq0Cw+Hf49/ZxgSY1i/nb4TvWPNEgVSY8uipaPd1fWVRwwUqBVho+Fed7UpmjSKpOEVP6kdkkrbcyEGHuS7zBEJEZnNvPD5c8i89+oDxHQ0wNpAFU2WHQf84CL2ryzkiOCnmpMF7htij8F63vi81jIBnsYTvZQvRVRGkOYUlUyGZNmVhMufZ58HKgkYvp78IRQHsds2MkD2qhXKYyt+cFqWusNwfOR/dnoRw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IoDHRK0rZ3JjcW4M0E7esXOur83kFjux09CFP8R5rkk=; b=kMe6B60PpC69siLrlbKuPq+aE/zz+ZyfXf6wsP2BL/fDpoQvK31fK+KtfvJBMgaLSSghNvEbje8uLxicpuYEJMxcclTxQwFa1wBSC2eMg1zQiOJtFr8Y3M81N2f1T/2TDGdZi6AYlKuZq3YlOODErkAwCcpC01tOIPfVtl+TDjXdf6laeyepR71QH7XLdrwuUmx5nG99AAjPs9nrs/z7ZloItyy6uh8YKk3ReQwyrgzzijayYdt0+pjR7mndkKTKKJ90HSgyRO/Gc0F4MRBuull+ItI1lqW8R+hUl2szY5GEGuNyh583Qd6OfetAF+m86zxKbKyzfJWcuWdqx+BRhA== 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=IoDHRK0rZ3JjcW4M0E7esXOur83kFjux09CFP8R5rkk=; b=dVrTxzLBjbJExFLcx3nAzrAjKUcOtbenMydo6XKY5vLNMkidSO1FdadG1Xfh08D6SJldCjZ9k/AU1ZtSRV8ugJeNHQ3kNo8iZE3uiILQWJkn4EW4sM7rlnk5S6fc4zHF1Rt0YwXR8gqgDZcfRqqk9rSXYnw/kqeWo3v31vb2Zx/0G1WBr72GkjxhyelkGL1WClnwYZ+vcgXy7Opj+VV1KVwGPVD/77PU2e8NMaCJumi3FBmQEK3X81yZANJe59aperZFZmmQIrdroBzxbBbbH49oba2anI6j7ylLLBTs7UwfiZWgZ/Ok+TiCg9oiRdkFUFSz2t1003lKs4DW+7Trgw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YQBPR0101MB5080.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:24::5) by YQBPR0101MB5736.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:33::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.31; Fri, 16 Feb 2024 21:10:54 +0000 Received: from YQBPR0101MB5080.CANPRD01.PROD.OUTLOOK.COM ([fe80::c711:83ed:d711:ea0d]) by YQBPR0101MB5080.CANPRD01.PROD.OUTLOOK.COM ([fe80::c711:83ed:d711:ea0d%4]) with mapi id 15.20.7292.029; Fri, 16 Feb 2024 21:10:54 +0000 Message-ID: Date: Fri, 16 Feb 2024 16:10:52 -0500 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v8 2/8] Add rseq extensible ABI support Content-Language: en-US To: DJ Delorie Cc: libc-alpha@sourceware.org, mathieu.desnoyers@efficios.com References: From: Michael Jeanson In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQZPR01CA0116.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:83::9) To YQBPR0101MB5080.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:24::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YQBPR0101MB5080:EE_|YQBPR0101MB5736:EE_ X-MS-Office365-Filtering-Correlation-Id: 17fe35fe-5b4c-4084-a041-08dc2f33c321 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rG6GtRyGW7UaTbtRkxZ2oU5ZvmzHJOA8ab1tL+zn4CwbR5Cj66kx0fEr0j777rLhbJBYhKDb1H3laeSMxVfw3S/fH+RA6kdwQ1kH3lbOlMdy86G/Irsn8DhTg3vzpu6cMUJjOPZs9unaGOEpZaiRrUfEVSlFkii0YzWieJ871znMhrvzanjNFHdrb/OZvMx7WLGuUuzXIid5QjEmZVPEB64ggDtfrgcVoe1jDkHb9jW9IaWrpDbzoPRLK5pbatJOSm8CfqzmuoT6NmWwG4cINBnL0nxkbmd7LEAZ9nbJ/FKizZ0OSm8zj55C08hw2rQZYPDA6zAzRikIrIKZdAk8GieSI757l33MJ8u/fsmYI8Jt8i4pfDQUWJVQ8lpnofZMerHEbVqjNQDlF0Qq317FOkeQ9PVwc22AmJIYZhkT6+s0Hg05qfW4fQfNAQm98cNqQT2NVxnJYF8BVlSjohab2nCf2Uof6uEk8iZ9Z+Oa/sP459W/A/9CD6/Z6F78/FbPEKvw37g2K4oGUOG6mQVYwISOI0ttxLn0qxMI4XRVeLhtu+aAb5jYknrQBz0Z3o5w X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YQBPR0101MB5080.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(396003)(366004)(346002)(376002)(136003)(39830400003)(230922051799003)(186009)(451199024)(1800799012)(64100799003)(66946007)(5660300002)(2906002)(8936002)(8676002)(66476007)(66556008)(31686004)(4326008)(6916009)(31696002)(36756003)(86362001)(41300700001)(107886003)(83380400001)(38100700002)(2616005)(6506007)(478600001)(316002)(6512007)(6486002)(26005);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q2NrZVNrMDZuSXdjeVczcGFNcTJ1djQzdkdYbjh1OUlLOGhsUUpqMFVrMDZZ?= =?utf-8?B?b3RYSkpQamdvSE9Pa3JycUNkSzBPS2FhK25OQTMxNEQzVW9nTFNSWno3KzRV?= =?utf-8?B?bFJPWWhiNFdONStHWXlLeEtaejJRc0JwMEE2ZUFYaEdkbk5DcHFMcXd0QXhm?= =?utf-8?B?M21La01qb28wVDd0U3M2TzhiaVY1RmJrcjlSNitmNmFkemlvblRJbC9wRWNu?= =?utf-8?B?T0s2NTkySmU1ZCtqc3oxMW5wWUkxV3ZKZCtaVkFiWDJHOSsvS2k1MFZFSFBn?= =?utf-8?B?eC9OdktiRy9NK1VyOXRNOHlWeHJ3WDhKQytXYVVMMDZLZ1RRSDdSQ1JKRVht?= =?utf-8?B?YWI2NmFHY1k5V3kwTjdMc1pWTEw0WWo0YURzM05YNWF6akthcU9BbURlNzNX?= =?utf-8?B?VnZoaDVOYk1kMUszUjY5V1h2UldEbkNra1RMVzNhRUk4dnJJajIwNFZQVDlD?= =?utf-8?B?OFFuRXNCaHN1RkgxWlZPTFhucG05aGRvTWZBU2h6Q2M3YXhqMk53b1FscW1k?= =?utf-8?B?WXhtS0pvUE9iQlBKcGZCamFpMzI1MHBtSkZncUltWUxCaXNpMDNKNkJyQ3VT?= =?utf-8?B?elhMakhiTE5vZEpuWThXb2RqUnZlZ2loVFcyeEpIN25lT0xOdzhRZDlKT1Zp?= =?utf-8?B?eG81TDJjOXZrVTVlUm9tN3VzUkhuY3VOQk1NN3p0Y3N5VUxzZ2F6TmdPQk9L?= =?utf-8?B?cWJ5RFVXSGNzTU9WaEdwamNZNFR0c1VYSHdjTnJEQnBBTEw2NG9iTnhrNmhk?= =?utf-8?B?R05qMGpMMXVJOFA4aGZnT3VoZDcwOW9LT29NT2xqRXg0NEZ3dVhMeEliZk5N?= =?utf-8?B?ek9kb1I0S0dCb3NmaXRPSTNLOXVuS2ZDL3lXRyszRm4vYmhDdW5rV2kvWHNN?= =?utf-8?B?TURFOHF5eUU1dmIvMWs4QlhCMVB2MjZQdG52SDBtRFlmeXhLcjBkWjh2K1RU?= =?utf-8?B?UG5BcUNtNzdKUmhaR2FwV0tqN0Z5a3RTRU1DNndhVFpsTmltTXNzbnBmdGxD?= =?utf-8?B?SVV0V3o2b2p5ZE9sRjJIdGUwTlJqbjJ4S1phclBkb3JidFZTTW15RHhjcXVh?= =?utf-8?B?aVVTZjJpbkViOTFpRUR3dkl0S1RGSEJyYzl0bFhiMXh5OW0rNzdFNXk0cCtF?= =?utf-8?B?cEZoRFV3WFZMdUNnMFRyeHVWaWtVM1ZDckhmZStMNzY4WWVWdHRqM0R4eTZl?= =?utf-8?B?MEs1MFl3S3p1em9WRVc1RWZyUExNR2RHNEhRdk9OQ05oS0ZOeDBRaXNJTGZI?= =?utf-8?B?VWVBVXJaTDlNY2loV0pXdlhRcDZBaWVXMFZhQlJzM1NwMXhXZDFiZkQvelo1?= =?utf-8?B?Z3BvdGdrZFJOK1l5NWlRMEdIcDJNRTN3d0dsbmp2QzhzcEV3QldJc2lySEto?= =?utf-8?B?SVhVY0hIN0RacW9FbHBYNzlhRG5FSVJweFNuOXlOTXpza3FxNElEK2pMeUx2?= =?utf-8?B?d2thakI2ZmtNSGpPUXZVWW1VM1NuZC9SRXdKSjArMnk2ZlBSTnR3d2FNUkJs?= =?utf-8?B?a2dNczlZcC81UkhWcFNvQzd2blJwbkZmT2JEQ3h3NDZuMldCUXdlMXUzYVpm?= =?utf-8?B?LzlPMWdCYU83TGk5ZzlnYnJtRG56T1BNamtxZFdIMDV5T0pBR2Z5MjF5MUhW?= =?utf-8?B?S0szeG9INWtOOHZiYWhSb0pzMTBMWi83TVNuc1RMdXJSL2NJK3Y0Q0xGQ2xu?= =?utf-8?B?aVVlNVUvMVBTT204cVdJNVFTRlNpL0JKWU85R2xRblVVK0xqSEk2M0Q5cUZr?= =?utf-8?B?QVI1TWRWQzlpZVNIWGhJVE0ySDJOWWE3bjAxNXZXOHU4VmtySzVxaFdreVBU?= =?utf-8?B?Slhkc2NUbkEvVERZRWsvZjBYbWNHZmVFTWZVWDJaQ21LZERhTGNnajUyQUxL?= =?utf-8?B?NGhnUTkyNEVjVXZ1Sjh5NGRGRVB6QWdmVUJ1RlBrcXNrV3FtZG94TnJ6U2sr?= =?utf-8?B?MjJBT2lJendZbjlFYW14VEQzZTlaV1pOakVObWxiTEVkeFpjY2VnYjBpMlRX?= =?utf-8?B?YkFVQmd6VzNPejNibkxHZGI3UFBUei9TNUIxeG1xS2xiWk9IVVpwdDRPZjVN?= =?utf-8?B?WWJ4Mlc2Y01UbTgzUFh6SVpkY1VaOXkwck1hZE5kRnJDcStxTndaaHF3VjZQ?= =?utf-8?Q?UnYGVRQj6GTikYk6naHz98mud?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17fe35fe-5b4c-4084-a041-08dc2f33c321 X-MS-Exchange-CrossTenant-AuthSource: YQBPR0101MB5080.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2024 21:10:54.4911 (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: e9uY0/+0JpPtNk1gXLFPKB94/jmTUynfA06vnUf4Pglgya0aBX/fr18L1r9L/QR5j7Okydnhk6RWOsprlKo9Qw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQBPR0101MB5736 X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2024-02-16 15 h 37, DJ Delorie wrote: > Michael Jeanson writes: >>> The TLS doesn't get resized, does it? Or am I thinking of the DTV? >> >> The terminology is a bit confusing and could be clarified, my >> understanding is that the 'static TLS block' is the area where the 'TLS >> blocks' from shared objects and the main executable are allocated and >> the DTV is the array of descriptors that point to each of these 'TLS >> blocks' inside the 'static TLS block'. > > I might be thinking of where TLS data for dlopen()'d objects go, after > the static TLS block is filled. > >>> Isn't __rseq_size always at least 32 ? >> >> It's at least 32 when the registration succeeded, however if the >> registration failed or was disabled by tunable then it's set to 0. > > Are we sure? > > /* Default to the rseq ABI minimum sizes, this will reduce TLS usage to 32 > bytes when rseq is disabled by tunables. */ > size_t rseq_size = TLS_DL_RSEQ_MIN_SIZE; > size_t rseq_align = TLS_DL_RSEQ_MIN_ALIGN; > bool do_rseq = true; > do_rseq = TUNABLE_GET_FULL (glibc, pthread, rseq, int, NULL); > if (do_rseq) > { > rseq_align = GLRO(dl_tls_rseq_align); > /* Make sure the rseq area size is at least the minimum ABI size and a > multiple of the requested aligment. */ > rseq_size = roundup (MAX (GLRO(dl_tls_rseq_feature_size), > TLS_DL_RSEQ_MIN_SIZE), rseq_align); > } > > > static inline bool > rseq_register_current_thread (struct pthread *self, bool do_rseq) > { > if (do_rseq) > { > /* The kernel expects 'rseq_area->rseq_cs == NULL' on registration, zero > the whole rseq area. */ > memset(rseq_get_area(), 0, GLRO (dl_tls_rseq_size)); > int ret = INTERNAL_SYSCALL_CALL (rseq, rseq_get_area(), > GLRO (dl_tls_rseq_size), > 0, RSEQ_SIG); > if (!INTERNAL_SYSCALL_ERROR_P (ret)) > return true; > } > RSEQ_SETMEM (rseq_get_area(), cpu_id, RSEQ_CPU_ID_REGISTRATION_FAILED); > return false; > } When rseq registration is disabled by tunable we still need to allocate an rseq block because application code is allowed to check for the registration status by reading 'rseq->cpu_id'. So in this case we allocate the minimum ABI size of 32. Internally this is recorded in 'dl_tls_rseq_size' but the application visible '_rseq_size' is left at 0 (this happens in sysdeps/nptl/dl-tls_init_tp.c). I'll try making this more clear with additional comments and finding a name for 'rseq_size' that is not so close to '__rseq_size'.