Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp185085ybh; Mon, 9 Mar 2020 19:14:44 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvnVqgMywr1Ey20iFpR1EGSyjwAIDPu8TGB89Mgpt5L9ItZlz7PiuhBmLCe41gw9ks8a9kx X-Received: by 2002:a05:6830:1182:: with SMTP id u2mr3557070otq.222.1583806484290; Mon, 09 Mar 2020 19:14:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583806484; cv=none; d=google.com; s=arc-20160816; b=TtgS9Zq7xhtvH7Y+C9lwTM0alfv9+HVv7HAM1BviRLYpDtcltFzecAmJ5MPNb4KeY7 edhkSAADCzdlyunG607vlKz+OdVu0Ml8F5RUY8aWqDy2dkzHaMLEU+xZiPdpnlz+Da5G pYNuH57WQJ8SWWnBH5oS7B4uozGmYaKi0pTd0W8k9giLMpTFs9afm/Xg7lWfJhS3C5QI Z4EeZXFVd2GPkvpFDHWbOPXRQohI0jzamOH6n4ltlZpU8AwMVmyUrpIDilqviEdy5VGQ V3bRrzWdehMpIkMvOvWSU8uW1zNaT2Dg1peaeTXv/dJ21F/6mbaeDeCZ6TZwhLdpNqjy 1kZA== 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:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=gAewQcsa0gHih3wXpHAV80ssMemQtrtXXF853KTte9o=; b=mQLgvuYQDLbDZVisQk7JqZRDMjKHcRhd8u1ENzdam+VJUYhjaTLadXH7KzX7nV2kaT EhGugWrvdSqqAC5ZKZOWDRE8wPZTmJH0p9sUOofqP3D4235H8ylc2RPWOUTSX3dKDq0G KwseAb5aKvrvQ7b41MWlZ505u7D4D7+9cME5a4yqK47lvhcz13viMznsJ5wLdmSBkAEe /caZjAPXFtva2VvJzqU6cke5j5Fl0ByCMOGl2anBV838ryXvArmG/SX+ZVm7eCCyjZID NB4zZ5Kz0SnMrXE9rKHA1G8FAd72OF7oZ3K71inQ7Voc3QtTJK/UVgfXrJXyZTzu+6OJ zqQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=L6Xq9iZG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d5si3137612otc.161.2020.03.09.19.14.30; Mon, 09 Mar 2020 19:14:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=L6Xq9iZG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726520AbgCJCOM (ORCPT + 99 others); Mon, 9 Mar 2020 22:14:12 -0400 Received: from mail-ot1-f66.google.com ([209.85.210.66]:40452 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726156AbgCJCOL (ORCPT ); Mon, 9 Mar 2020 22:14:11 -0400 Received: by mail-ot1-f66.google.com with SMTP id x19so11712819otp.7; Mon, 09 Mar 2020 19:14:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=gAewQcsa0gHih3wXpHAV80ssMemQtrtXXF853KTte9o=; b=L6Xq9iZGLEa1l14/JrlBDJBkv6HSKObpOzYqkDvz6JQ3GsPAHMI1pWejPHQchkBx/J 7DYTfbBRiVRSC0rvWKTxzNI97bTlim0XdN1HVXIso9GWDDH9ZIEbUsirmgrK6cjDzCTV Ge94uFgJxo8bbnbP094yO7yKys8bFQDoQAIyZXhbAPUTDKRJU0Y23zTDUcqdQo0643N+ scYHFsyP+aMiDWTUKAw8HAzoul6KYwMEnWVYDdb1HCxu9FCzTzNwuC4hfZJEYYtjNDbh 71T4jtmAKGVBmywAehooLNjMEYzMwT8EoZhKl4EpuxgMTAxYCKfHbzE3aG4uKl6iobk8 PSag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=gAewQcsa0gHih3wXpHAV80ssMemQtrtXXF853KTte9o=; b=NJpAJIl4/3LAigf+NTv5OlBER404onshMb2msx/G6/soCyHUxeEd7FNNBd+0scmaHu O8kgIH5FXcjOR/g5khOv20F7hLQfNfNOjIqP28IOjEgCLLU1AHC8IsWzeAzNb/84rvvN k6fIexutaQ1BXY04iEw3BeK4+cg1lDk/Sy7UtHUlP4vcqZzcQxqbSSuCMnlokB+INtuk 4ACU4bdZT/DUSUqhAD4MXYhh6oYJAhlCyT+BPAZeh5D2wIHGt5yi90+clP11EI1Cp717 3rPqEtA0KRIDyBpiRewYby1WFYtMC8RYh4nefnr0nV4rj7b+npganhb2nPOiLrWZbZt5 MMDw== X-Gm-Message-State: ANhLgQ1fGTRcik6H2uc0bTnIQWzxDKbzH37aq/glYKdDroWw0ihclkzx bAzA7yBbTwr/IMUlZe19/wNNVPIG+4O3KAgkSbc= X-Received: by 2002:a9d:19ef:: with SMTP id k102mr12179526otk.220.1583806450481; Mon, 09 Mar 2020 19:14:10 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: "H.J. Lu" Date: Mon, 9 Mar 2020 19:13:34 -0700 Message-ID: Subject: Re: [RFC PATCH v9 01/27] Documentation/x86: Add CET description To: Andy Lutomirski Cc: Dave Hansen , Yu-cheng Yu , "the arch/x86 maintainers" , "H. Peter Anvin" , Thomas Gleixner , Ingo Molnar , LKML , "open list:DOCUMENTATION" , Linux-MM , linux-arch , Linux API , Arnd Bergmann , Andy Lutomirski , Balbir Singh , Borislav Petkov , Cyrill Gorcunov , Dave Hansen , Eugene Syromiatnikov , Florian Weimer , Jann Horn , Jonathan Corbet , Kees Cook , Mike Kravetz , Nadav Amit , Oleg Nesterov , Pavel Machek , Peter Zijlstra , Randy Dunlap , "Ravi V. Shankar" , Vedvyas Shanbhogue , Dave Martin , x86-patch-review@intel.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 9, 2020 at 6:21 PM Andy Lutomirski wrote: > > I am baffled by this discussion. > > >> On Mar 9, 2020, at 5:09 PM, H.J. Lu wrote: > >> > >> =EF=BB=BFOn Mon, Mar 9, 2020 at 4:59 PM Andy Lutomirski wrote: > > > >>>> . > >> This could presumably have been fixed by having libpcre or sljit > >> disable IBT before calling into JIT code or by running the JIT code in > >> another thread. In the other direction, a non-CET libpcre build could > >> build IBT-capable JITted code and enable JIT (by syscall if we allow > >> that or by creating a thread?) when calling it. And IBT has this > > > > This is not how thread in user space works. > > void create_cet_thread(void (*func)(), unsigned int cet_flags); > > I could implement this using clone() if the kernel provides the requisite= support. Sure, creating threads behind libc=E2=80=99s back like this is pe= rilous, but it can be done. Sure, this can live outside of libc with kernel support. > > > >> fancy legacy bitmap to allow non-instrumented code to run with IBT on, > >> although SHSTK doesn't have hardware support for a similar feature. > > > > All these changes are called CET enabing. > > What does that mean? If program A loads library B, and library B very ca= refully loads CET-mismatched code, program A may be blissfully unaware. Any source changes to make codes CET compatible is to enable CET. Shadow stack can't be turned on or off arbitrarily. ld.so checks it and makes sure that everything is consistent. But this is entirely done in user space. In the first phase, we want to make CET simple, not too complicated. H.J.