Thread (71 messages) 71 messages, 11 authors, 2020-07-24

Re: [PATCH v10 01/26] Documentation/x86: Add CET description

From: Dave Hansen <hidden>
Date: 2020-05-15 18:39:22
Also in: linux-arch, linux-doc, linux-mm, lkml

On 5/12/20 4:20 PM, Yu-cheng Yu wrote:
On Wed, 2020-04-29 at 16:02 -0700, Yu-cheng Yu wrote:
quoted
On Wed, 2020-04-29 at 15:53 -0700, Dave Hansen wrote:
quoted
On 4/29/20 3:07 PM, Yu-cheng Yu wrote:
quoted
+Note:
+  There is no CET-enabling arch_prctl function.  By design, CET is enabled
+  automatically if the binary and the system can support it.
I think Andy and I danced around this last time.  Let me try to say it
more explicitly.

I want CET kernel enabling to able to be disconnected from the on-disk
binary.  I want a binary compiled with CET to be able to disable it, and
I want a binary not compiled with CET to be able to enable it.  I want
different threads in a process to be able to each have different CET status.
The kernel patches we have now can be modified to support this model.  If after
discussion this is favorable, I will modify code accordingly.
To turn on/off and to lock CET are application-level decisions.  The kernel does
not prevent any of those.  Should there be a need to provide an arch_prctl() to
turn on CET, it can be added without any conflict to this series.
I spelled out what I wanted pretty clearly.  On your next post, could
you please directly address each of the things I asked for?  Please
directly answer the following questions in your next post with respect
to the code you post:

Can a binary compiled with CET run without CET?
Can a binary compiled without CET run CET-enabled code?
Can different threads in a process have different CET enabling state?
quoted
quoted
Which JITs was this tested with?  I think as a bare minimum we need to
know that this design can accommodate _a_ modern JIT.  It would be
horrible if the browser javascript engines couldn't use this design, for
instance.
JIT work is still in progress.  When that is available I will test it.
I found CET has been enabled in LLVM JIT, Mesa JIT as well as sljit which is
used by jit.  So the current model works with JIT.
Great!  I'm glad the model works.  That's not what I asked, though.

Does this *code* work?  Could you please indicate which JITs have been
enabled to use the code in this series?  How much of the new ABI is in use?

Where are the selftests/ for this new ABI?  Were you planning on
submitting any with this series?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help