linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Andy Lutomirski" <luto@kernel.org>
To: "Kees Cook" <keescook@chromium.org>,
	"Rick P Edgecombe" <rick.p.edgecombe@intel.com>
Cc: "the arch/x86 maintainers" <x86@kernel.org>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Ingo Molnar" <mingo@redhat.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	linux-doc@vger.kernel.org, linux-mm@kvack.org,
	linux-arch@vger.kernel.org,
	"Linux API" <linux-api@vger.kernel.org>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Balbir Singh" <bsingharora@gmail.com>,
	"Borislav Petkov" <bp@alien8.de>,
	"Cyrill Gorcunov" <gorcunov@gmail.com>,
	"Dave Hansen" <dave.hansen@linux.intel.com>,
	"Eugene Syromiatnikov" <esyr@redhat.com>,
	"Florian Weimer" <fweimer@redhat.com>,
	"H.J. Lu" <hjl.tools@gmail.com>, "Jann Horn" <jannh@google.com>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Mike Kravetz" <mike.kravetz@oracle.com>,
	"Nadav Amit" <nadav.amit@gmail.com>,
	"Oleg Nesterov" <oleg@redhat.com>, "Pavel Machek" <pavel@ucw.cz>,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>,
	"Randy Dunlap" <rdunlap@infradead.org>,
	"Shankar, Ravi V" <ravi.v.shankar@intel.com>,
	"Weijiang Yang" <weijiang.yang@intel.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	"Moreira, Joao" <joao.moreira@intel.com>,
	"john.allen@amd.com" <john.allen@amd.com>,
	"kcc@google.com" <kcc@google.com>,
	"Eranian, Stephane" <eranian@google.com>,
	"Mike Rapoport" <rppt@kernel.org>,
	jamorris@linux.microsoft.com, dethoma@microsoft.com
Subject: Re: [PATCH v2 30/39] x86: Expose thread features status in /proc/$PID/arch_status
Date: Mon, 03 Oct 2022 15:45:50 -0700	[thread overview]
Message-ID: <b8b3caab-9f0c-4230-8d7b-debd7f79cdb9@app.fastmail.com> (raw)
In-Reply-To: <202210031530.9CFB62B39F@keescook>



On Mon, Oct 3, 2022, at 3:37 PM, Kees Cook wrote:
> On Thu, Sep 29, 2022 at 03:29:27PM -0700, Rick Edgecombe wrote:
>> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
>> 
>> Applications and loaders can have logic to decide whether to enable CET.
>> They usually don't report whether CET has been enabled or not, so there
>> is no way to verify whether an application actually is protected by CET
>> features.
>> 
>> Add two lines in /proc/$PID/arch_status to report enabled and locked
>> features.
>> 
>> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
>> [Switched to CET, added to commit log]
>> Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
>> 
>> ---
>> 
>> v2:
>>  - New patch
>> 
>>  arch/x86/kernel/Makefile     |  2 ++
>>  arch/x86/kernel/fpu/xstate.c | 47 ---------------------------
>>  arch/x86/kernel/proc.c       | 63 ++++++++++++++++++++++++++++++++++++
>>  3 files changed, 65 insertions(+), 47 deletions(-)
>>  create mode 100644 arch/x86/kernel/proc.c
>
> This is two patches: one to create proc.c, the other to add CET support.
>
> I found where the "arch_status" conversation was:
> https://lore.kernel.org/all/CALCETrUjF9PBmkzH1J86vw4ZW785DP7FtcT+gcSrx29=BUnjoQ@mail.gmail.com/
>
> Andy, what did you mean "make sure that everything in it is namespaced"?
> Everything already has a field name. And arch_status doesn't exactly
> solve having compat fields -- it still needs to be handled manually?
> Anyway... we have arch_status, so I guess it's fine.

I think I meant that, since it's "arch_status" not "x86_status", the fields should have names like "x86.Thread_features".  Otherwise if another architecture adds a Thread_features field, then anything running under something like qemu userspace emulation could be confused.

Assuming that's what I meant, I think my comment still stands :)

  reply	other threads:[~2022-10-03 22:46 UTC|newest]

Thread overview: 241+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-29 22:28 [PATCH v2 00/39] Shadowstacks for userspace Rick Edgecombe
2022-09-29 22:28 ` [PATCH v2 01/39] Documentation/x86: Add CET description Rick Edgecombe
2022-09-30  3:41   ` Bagas Sanjaya
2022-09-30 13:33     ` Jonathan Corbet
2022-09-30 13:41       ` Bagas Sanjaya
2022-10-03 16:56         ` Edgecombe, Rick P
2022-10-04  2:16           ` Bagas Sanjaya
2022-10-05  9:10           ` Peter Zijlstra
2022-10-05  9:25             ` Bagas Sanjaya
2022-10-05  9:46               ` Peter Zijlstra
2022-10-03 19:35     ` John Hubbard
2022-10-03 19:39       ` Dave Hansen
2022-10-04  2:13       ` Bagas Sanjaya
2022-10-03 17:18   ` Kees Cook
2022-10-03 19:46     ` Edgecombe, Rick P
2022-10-05  0:02   ` Andrew Cooper
2022-10-10 12:19   ` Florian Weimer
2022-10-10 16:44     ` Edgecombe, Rick P
2022-10-10 16:51       ` H.J. Lu
2022-10-12 12:29       ` Florian Weimer
2022-10-12 15:59         ` Dave Hansen
2022-10-12 16:54           ` Florian Weimer
2022-10-13 21:28         ` Edgecombe, Rick P
2022-10-13 22:15           ` H.J. Lu
2022-10-26 21:59           ` Edgecombe, Rick P
2022-09-29 22:28 ` [PATCH v2 02/39] x86/cet/shstk: Add Kconfig option for Shadow Stack Rick Edgecombe
2022-10-03 13:40   ` Kirill A . Shutemov
2022-10-03 19:53     ` Edgecombe, Rick P
2022-10-03 17:25   ` Kees Cook
2022-10-03 19:52     ` Edgecombe, Rick P
2022-10-03 19:42   ` Dave Hansen
2022-10-03 19:50     ` Edgecombe, Rick P
2022-10-12 20:04   ` Borislav Petkov
2022-10-13  0:31     ` Edgecombe, Rick P
2022-10-13  9:21       ` Borislav Petkov
2022-09-29 22:29 ` [PATCH v2 03/39] x86/cpufeatures: Add CPU feature flags for shadow stacks Rick Edgecombe
2022-10-03 17:26   ` Kees Cook
2022-10-14 16:20   ` Borislav Petkov
2022-10-14 19:35     ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 04/39] x86/cpufeatures: Enable CET CR4 bit for shadow stack Rick Edgecombe
2022-10-03 17:31   ` Kees Cook
2022-10-05  0:55   ` Andrew Cooper
2022-10-14 17:12   ` Borislav Petkov
2022-10-14 18:15     ` Edgecombe, Rick P
2022-10-14 19:44       ` Borislav Petkov
2022-09-29 22:29 ` [PATCH v2 05/39] x86/fpu/xstate: Introduce CET MSR and XSAVES supervisor states Rick Edgecombe
2022-10-03 17:40   ` Kees Cook
2022-10-15  9:46   ` Borislav Petkov
2022-10-17 18:57     ` Edgecombe, Rick P
2022-10-17 19:33       ` Borislav Petkov
2022-09-29 22:29 ` [PATCH v2 06/39] x86/fpu: Add helper for modifying xstate Rick Edgecombe
2022-10-03 17:48   ` Kees Cook
2022-10-03 20:05     ` Edgecombe, Rick P
2022-10-04  4:05       ` Kees Cook
2022-10-04 14:18       ` Dave Hansen
2022-10-04 16:13         ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 07/39] x86/cet: Add user control-protection fault handler Rick Edgecombe
2022-10-03 14:01   ` Kirill A . Shutemov
2022-10-03 18:12     ` Edgecombe, Rick P
2022-10-03 18:04   ` Kees Cook
2022-10-03 20:33     ` Edgecombe, Rick P
2022-10-03 22:51   ` Andy Lutomirski
2022-10-03 23:09     ` H. Peter Anvin
2022-10-03 23:11     ` Edgecombe, Rick P
2022-10-05  1:20   ` Andrew Cooper
2022-10-05 22:44     ` Edgecombe, Rick P
2022-10-05  9:39   ` Peter Zijlstra
2022-10-05 22:45     ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 08/39] x86/mm: Remove _PAGE_DIRTY from kernel RO pages Rick Edgecombe
2022-10-03 14:17   ` Kirill A . Shutemov
2022-10-05  1:31   ` Andrew Cooper
2022-10-05 11:16     ` Peter Zijlstra
2022-10-05 12:34       ` Andrew Cooper
2022-09-29 22:29 ` [PATCH v2 09/39] x86/mm: Move pmd_write(), pud_write() up in the file Rick Edgecombe
2022-10-03 18:06   ` Kees Cook
2022-09-29 22:29 ` [PATCH v2 10/39] x86/mm: Introduce _PAGE_COW Rick Edgecombe
2022-09-30 15:16   ` Jann Horn
2022-10-06 16:10     ` Edgecombe, Rick P
2022-10-03 16:26   ` Kirill A . Shutemov
2022-10-03 21:36     ` Edgecombe, Rick P
2022-10-03 21:54       ` Jann Horn
2022-10-03 22:20         ` Edgecombe, Rick P
2022-10-03 22:14       ` Dave Hansen
2022-10-05  2:17   ` Andrew Cooper
2022-10-05 14:08     ` Dave Hansen
2022-10-05 23:06       ` Edgecombe, Rick P
2022-10-05 23:01     ` Edgecombe, Rick P
2022-10-05 11:33   ` Peter Zijlstra
2022-10-14  9:41   ` Peter Zijlstra
2022-10-14 15:52     ` Edgecombe, Rick P
2022-10-14  9:42   ` Peter Zijlstra
2022-10-14 18:06     ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 11/39] x86/mm: Update pte_modify for _PAGE_COW Rick Edgecombe
2022-09-29 22:29 ` [PATCH v2 12/39] x86/mm: Update ptep_set_wrprotect() and pmdp_set_wrprotect() for transition from _PAGE_DIRTY to _PAGE_COW Rick Edgecombe
2022-10-03 17:43   ` Kirill A . Shutemov
2022-10-03 18:11   ` Nadav Amit
2022-10-03 18:51     ` Dave Hansen
2022-10-03 22:28     ` Edgecombe, Rick P
2022-10-03 23:17       ` Nadav Amit
2022-10-03 23:20         ` Nadav Amit
2022-10-03 23:25           ` Nadav Amit
2022-10-03 23:38             ` Edgecombe, Rick P
2022-10-04  0:40               ` Nadav Amit
2022-09-29 22:29 ` [PATCH v2 13/39] mm: Move VM_UFFD_MINOR_BIT from 37 to 38 Rick Edgecombe
2022-10-03 18:11   ` Kees Cook
2022-10-03 18:24   ` Peter Xu
2022-09-29 22:29 ` [PATCH v2 14/39] mm: Introduce VM_SHADOW_STACK for shadow stack memory Rick Edgecombe
2022-10-03 17:47   ` Kirill A . Shutemov
2022-10-04  0:29     ` Edgecombe, Rick P
2022-10-03 18:17   ` Kees Cook
2022-09-29 22:29 ` [PATCH v2 15/39] x86/mm: Check Shadow Stack page fault errors Rick Edgecombe
2022-10-03 18:20   ` Kees Cook
2022-10-14 10:07   ` Peter Zijlstra
2022-10-14 15:51     ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 16/39] x86/mm: Update maybe_mkwrite() for shadow stack Rick Edgecombe
2022-10-03 18:22   ` Kees Cook
2022-10-03 23:53   ` Kirill A . Shutemov
2022-10-14 15:32   ` Peter Zijlstra
2022-10-14 15:45     ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 17/39] mm: Fixup places that call pte_mkwrite() directly Rick Edgecombe
2022-10-03 18:24   ` Kees Cook
2022-10-03 23:56   ` Kirill A . Shutemov
2022-10-04 16:15     ` Edgecombe, Rick P
2022-10-04  1:56   ` Nadav Amit
2022-10-04 16:21     ` Edgecombe, Rick P
2022-10-14 15:52   ` Peter Zijlstra
2022-10-14 15:56     ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 18/39] mm: Add guard pages around a shadow stack Rick Edgecombe
2022-10-03 18:30   ` Kees Cook
2022-10-05  2:30     ` Andrew Cooper
2022-10-10 12:33       ` Florian Weimer
2022-10-10 13:32         ` Andrew Cooper
2022-10-10 13:40           ` Florian Weimer
2022-10-10 13:56             ` Andrew Cooper
2022-09-29 22:29 ` [PATCH v2 19/39] mm/mmap: Add shadow stack pages to memory accounting Rick Edgecombe
2022-10-03 18:31   ` Kees Cook
2022-10-04  0:03   ` Kirill A . Shutemov
2022-10-04  0:32     ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 20/39] mm/mprotect: Exclude shadow stack from preserve_write Rick Edgecombe
2022-09-29 22:29 ` [PATCH v2 21/39] mm: Re-introduce vm_flags to do_mmap() Rick Edgecombe
2022-09-29 22:29 ` [PATCH v2 22/39] mm: Don't allow write GUPs to shadow stack memory Rick Edgecombe
2022-09-30 19:16   ` Dave Hansen
2022-09-30 20:30     ` Edgecombe, Rick P
2022-09-30 20:37       ` Dave Hansen
2022-09-30 23:00     ` Jann Horn
2022-09-30 23:02       ` Jann Horn
2022-09-30 23:04       ` Edgecombe, Rick P
2022-10-03 18:39   ` Kees Cook
2022-10-03 22:49     ` Andy Lutomirski
2022-10-04  4:21       ` Kees Cook
2022-09-29 22:29 ` [PATCH v2 23/39] x86: Introduce userspace API for CET enabling Rick Edgecombe
2022-10-03 19:01   ` Kees Cook
2022-10-03 22:51     ` Edgecombe, Rick P
2022-10-06 18:50       ` Mike Rapoport
2022-10-10 10:56   ` Florian Weimer
2022-10-10 16:28     ` Edgecombe, Rick P
2022-10-12 12:18       ` Florian Weimer
2022-10-12 17:30         ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 24/39] x86/cet/shstk: Add user-mode shadow stack support Rick Edgecombe
2022-10-03 19:43   ` Kees Cook
2022-10-03 20:04     ` Dave Hansen
2022-10-04  4:04       ` Kees Cook
2022-10-04 16:25         ` Edgecombe, Rick P
2022-10-04 10:17       ` David Laight
2022-10-04 19:32         ` Kees Cook
2022-10-05 13:32           ` David Laight
2022-10-20 21:29     ` Edgecombe, Rick P
2022-10-20 22:54       ` Kees Cook
2022-09-29 22:29 ` [PATCH v2 25/39] x86/cet/shstk: Handle thread shadow stack Rick Edgecombe
2022-10-03 10:36   ` Mike Rapoport
2022-10-03 16:57     ` Edgecombe, Rick P
2022-10-03 20:29   ` Kees Cook
2022-10-04 22:09     ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 26/39] x86/cet/shstk: Introduce routines modifying shstk Rick Edgecombe
2022-10-03 20:44   ` Kees Cook
2022-10-04 22:13     ` Edgecombe, Rick P
2022-10-05  2:43   ` Andrew Cooper
2022-10-05 22:47     ` Edgecombe, Rick P
2022-10-05 22:58       ` Andrew Cooper
2022-10-20 21:51         ` Edgecombe, Rick P
2022-09-29 22:29 ` [PATCH v2 27/39] x86/cet/shstk: Handle signals for shadow stack Rick Edgecombe
2022-10-03 20:52   ` Kees Cook
2022-10-20 22:08     ` Edgecombe, Rick P
2022-10-20 22:57       ` Kees Cook
2022-09-29 22:29 ` [PATCH v2 28/39] x86/cet/shstk: Introduce map_shadow_stack syscall Rick Edgecombe
2022-10-03 22:23   ` Kees Cook
2022-10-04 22:56     ` Edgecombe, Rick P
2022-10-04 23:16       ` H.J. Lu
2022-10-10 11:13   ` Florian Weimer
2022-10-10 14:19     ` Jason A. Donenfeld
2022-09-29 22:29 ` [PATCH v2 29/39] x86/cet/shstk: Support wrss for userspace Rick Edgecombe
2022-10-03 22:28   ` Kees Cook
2022-10-03 23:00     ` Andy Lutomirski
2022-10-04  4:37       ` Kees Cook
2022-10-06  0:38         ` Edgecombe, Rick P
2022-10-06  3:11           ` Kees Cook
2022-10-04  8:30     ` Mike Rapoport
2022-09-29 22:29 ` [PATCH v2 30/39] x86: Expose thread features status in /proc/$PID/arch_status Rick Edgecombe
2022-10-03 22:37   ` Kees Cook
2022-10-03 22:45     ` Andy Lutomirski [this message]
2022-10-04  4:18       ` Kees Cook
2022-09-29 22:29 ` [PATCH v2 31/39] x86/cet/shstk: Wire in CET interface Rick Edgecombe
2022-10-03 22:41   ` Kees Cook
2022-09-29 22:29 ` [PATCH v2 32/39] selftests/x86: Add shadow stack test Rick Edgecombe
2022-10-03 23:56   ` Kees Cook
2022-09-29 22:29 ` [PATCH v2 33/39] x86/cpufeatures: Limit shadow stack to Intel CPUs Rick Edgecombe
2022-10-03 23:57   ` Kees Cook
2022-10-04  0:09     ` Dave Hansen
2022-10-04  4:54       ` Kees Cook
2022-10-04 15:47         ` Nathan Chancellor
2022-10-04 19:43           ` John Allen
2022-10-04 20:34             ` Edgecombe, Rick P
2022-10-04 20:50               ` Nathan Chancellor
2022-10-04 21:17                 ` H. Peter Anvin
2022-10-04 23:24                   ` Edgecombe, Rick P
2022-11-03 17:39                     ` John Allen
2022-10-20 21:22                 ` Edgecombe, Rick P
2022-10-04  8:36       ` Mike Rapoport
2022-09-29 22:29 ` [OPTIONAL/CLEANUP v2 34/39] x86: Separate out x86_regset for 32 and 64 bit Rick Edgecombe
2022-09-29 22:29 ` [OPTIONAL/CLEANUP v2 35/39] x86: Improve formatting of user_regset arrays Rick Edgecombe
2022-09-29 22:29 ` [OPTIONAL/RFC v2 36/39] x86/fpu: Add helper for initing features Rick Edgecombe
2022-10-03 19:07   ` Chang S. Bae
2022-10-04 23:05     ` Edgecombe, Rick P
2022-09-29 22:29 ` [OPTIONAL/RFC v2 37/39] x86/cet: Add PTRACE interface for CET Rick Edgecombe
2022-10-03 23:59   ` Kees Cook
2022-10-04  8:44     ` Mike Rapoport
2022-10-04 19:24       ` Kees Cook
2022-09-29 22:29 ` [OPTIONAL/RFC v2 38/39] x86/cet/shstk: Add ARCH_CET_UNLOCK Rick Edgecombe
2022-10-04  0:00   ` Kees Cook
2022-09-29 22:29 ` [OPTIONAL/RFC v2 39/39] x86: Add alt shadow stack support Rick Edgecombe
2022-10-03 23:21   ` Andy Lutomirski
2022-10-04 16:12     ` Edgecombe, Rick P
2022-10-04 17:46       ` Andy Lutomirski
2022-10-04 18:04         ` Edgecombe, Rick P
2022-10-03 17:04 ` [PATCH v2 00/39] Shadowstacks for userspace Kees Cook
2022-10-03 17:25   ` Jann Horn
2022-10-04  5:01     ` Kees Cook
2022-10-04  9:57       ` David Laight
2022-10-04 19:28         ` Kees Cook
2022-10-03 18:33   ` Edgecombe, Rick P
2022-10-04  3:59     ` Kees Cook

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b8b3caab-9f0c-4230-8d7b-debd7f79cdb9@app.fastmail.com \
    --to=luto@kernel.org \
    --cc=arnd@arndb.de \
    --cc=bp@alien8.de \
    --cc=bsingharora@gmail.com \
    --cc=corbet@lwn.net \
    --cc=dave.hansen@linux.intel.com \
    --cc=dethoma@microsoft.com \
    --cc=eranian@google.com \
    --cc=esyr@redhat.com \
    --cc=fweimer@redhat.com \
    --cc=gorcunov@gmail.com \
    --cc=hjl.tools@gmail.com \
    --cc=hpa@zytor.com \
    --cc=jamorris@linux.microsoft.com \
    --cc=jannh@google.com \
    --cc=joao.moreira@intel.com \
    --cc=john.allen@amd.com \
    --cc=kcc@google.com \
    --cc=keescook@chromium.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mike.kravetz@oracle.com \
    --cc=mingo@redhat.com \
    --cc=nadav.amit@gmail.com \
    --cc=oleg@redhat.com \
    --cc=pavel@ucw.cz \
    --cc=peterz@infradead.org \
    --cc=ravi.v.shankar@intel.com \
    --cc=rdunlap@infradead.org \
    --cc=rick.p.edgecombe@intel.com \
    --cc=rppt@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=weijiang.yang@intel.com \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).