Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp2055775ybh; Tue, 14 Jul 2020 14:33:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwTTr9Zdv53Uy74jzPHFwxX2YnUgAB98Fu32Z8fL98B579m6nmF3pJkc518wsYmOb8nR3SQ X-Received: by 2002:a17:906:2e4b:: with SMTP id r11mr6204203eji.227.1594762399558; Tue, 14 Jul 2020 14:33:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594762399; cv=none; d=google.com; s=arc-20160816; b=XPVwalgXAI5f/BjM0Go6NdZUC+DKgb60zOpdV2tDxOkrF0BiwtlG2ix+lSZqd7fRSZ XJBTrw4fnOup5WKP23wCsekTaZwCEM6ALGPwmfKHAZ4V8v3UEST+5upQLpggKY8NSLeB U+2p1D/V+RpMlEaB64xtyvZLzbotxUvsC/6l6YkCVh8jbUpHclWdgvSNFkgyCLBHAhxs nQBopzEwO2tQBEJWJEuWi8jlz9S42+gHzcR7bPVShqgL+rCbIpKfphJ3k6MOTj0soFYo YOIRFswK/1OV+wgMz60yThVItaHYfDENGt6m9OWcPqzrkm+UuTIBqfKm/OR2VPqWFvcW BkHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:cc:to:subject :dkim-signature; bh=P2jjMlQNGljDKhczKBKSdNL0F7/+3pAMGrpUsxclRjw=; b=alhGAtuFlO02lWM6u9lAf7VUYryL+FiRXS3qhrmqnA3tAhNK7IAVpD/FhOau7QXKLs l8Omjfgd+sOjaACr9jy5NRfOvF99SwAm9VXG7LIWI+9bNmDoCeWsJsqhjfAVzRBP+Jjk gTmtCj5rmsni6zB4p8t3etYAz14nvYvLk9WMRuw9RNHaT2EKxff41I4MTBidj41mZZnu KujeDm/VGOtGf1cMlcz0hWDtvT9RrUrcD1IrA3Gd6TjzfKqRETfaBiAwTIkYETycLz3W FQPzDZnUttEDO15AijrIYGPKAI6kSHaXo6f7jUolyipqg71FapyOZPK+pw5UKFJqWhJy om5g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=TG3F4bV6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dk23si7504edb.219.2020.07.14.14.32.55; Tue, 14 Jul 2020 14:33:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=TG3F4bV6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728084AbgGNVbR (ORCPT + 99 others); Tue, 14 Jul 2020 17:31:17 -0400 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:43927 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727101AbgGNVbP (ORCPT ); Tue, 14 Jul 2020 17:31:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1594762273; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=P2jjMlQNGljDKhczKBKSdNL0F7/+3pAMGrpUsxclRjw=; b=TG3F4bV69A/sXIHC0vLWa8qXNzt3LLCklHYcD69hRDZf+Kfp/ThO7WhAXipHBnnPT+A0JW eZcEclgwuIHMLGZ7ZS8vbT9IUkD2iulYLGoa7QvtIf3eitaYE1kd4vsDyuIixv8CKCDK1X DeU1Go1l6mQteYxchRyTJ5LdaawOems= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-27-6O96uBO8PVy_396vys0hUw-1; Tue, 14 Jul 2020 17:30:52 -0400 X-MC-Unique: 6O96uBO8PVy_396vys0hUw-1 Received: by mail-qv1-f72.google.com with SMTP id m8so30845qvv.10 for ; Tue, 14 Jul 2020 14:30:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:organization :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=P2jjMlQNGljDKhczKBKSdNL0F7/+3pAMGrpUsxclRjw=; b=BU5RHZ6ZEsBeRt/zOK8AMs0yIuRjVygerRygdjVyvQMsO18JkgUDNYGMdOOICR/MG1 AtZ2EaYWcXMQwDimuwdQLrmgYBHtd1Hrbedpj9+Xl+yo5PFik1Pkca4EtYdhQm1J4M5P C9g8L+8Nq1lN7hlt0usxNoayJlpVlnmKO/FcnPXuWsQ5BKpnPNeCvolKd2AtzcLeF+AR GkfDv2x7ALdRkMQLlJGTbtP+ySmmGtbl3z91wrz1EAI+SzoZu4p6MTc+VFJS/qNoLWgS EQwpLiD3h1qgAElNrxPjmSpvhlDEgvFaFEuEF4k07PF536LXO4ypSca4LnRw+xH3u/vA zztQ== X-Gm-Message-State: AOAM533XbBdp5Aml8vaWc+SP8JdVtyjuaPnNS+aFI024/zxdoTzUd0ko 4Ouyqim2szV4sfI5WBiX6RyPn6m1MsgsTiHDip3BmPLU6TtLezPrWVTI18PMwdhuxIPSa8qymY1 eBK8dlSib+AVIVRIUuGQSftn7 X-Received: by 2002:a05:6214:b88:: with SMTP id fe8mr6538662qvb.244.1594762251500; Tue, 14 Jul 2020 14:30:51 -0700 (PDT) X-Received: by 2002:a05:6214:b88:: with SMTP id fe8mr6538645qvb.244.1594762251246; Tue, 14 Jul 2020 14:30:51 -0700 (PDT) Received: from [192.168.1.4] (198-84-170-103.cpe.teksavvy.com. [198.84.170.103]) by smtp.gmail.com with ESMTPSA id q5sm360934qtf.12.2020.07.14.14.30.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 14 Jul 2020 14:30:50 -0700 (PDT) Subject: Re: [RFC PATCH 2/4] rseq: Allow extending struct rseq To: Mathieu Desnoyers , Florian Weimer Cc: Peter Zijlstra , linux-kernel , Thomas Gleixner , paulmck , Boqun Feng , "H. Peter Anvin" , Paul Turner , linux-api , Christian Brauner References: <20200714030348.6214-1-mathieu.desnoyers@efficios.com> <20200714030348.6214-3-mathieu.desnoyers@efficios.com> <87mu42bepq.fsf@oldenburg2.str.redhat.com> <131549905.11442.1594731035989.JavaMail.zimbra@efficios.com> <87a7028d5u.fsf@oldenburg2.str.redhat.com> <2452161.11491.1594732791558.JavaMail.zimbra@efficios.com> From: Carlos O'Donell Organization: Red Hat Message-ID: <71f08b3a-56f5-0e0f-53b0-cc680f7e8181@redhat.com> Date: Tue, 14 Jul 2020 17:30:49 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <2452161.11491.1594732791558.JavaMail.zimbra@efficios.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 7/14/20 9:19 AM, Mathieu Desnoyers wrote: > Is there an arch-agnostic way to get the thread pointer from user-space code ? That > would be needed by all rseq critical section implementations. Yes, and no. We have void *__builtin_thread_pointer (void), but few architectures implement the builtin so we'd have to go through a round of compiler updates and backports. All targets know how to access the thread pointer because the compiler has to generate IE-mode accesses to the TLS variables. I have filed an enhancement request: Bug 96200 - Implement __builtin_thread_pointer() and __builtin_set_thread_pointer() if TLS is supported https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96200 We have glibc internal macro APIs to access the thread pointer, but I would rather the compiler handle the access since it can schedule the resulting sequence better. On some arches setting the therad pointer needs a syscall or equivalent operation (hppa), and for some arches there is no fixed register (arm) hence the need for __builtin_thread_pointer() to force the compiler to place the pointer into a register for function return. -- Cheers, Carlos.