Re: [PATCH v11 6/9] x86/cet: Add PTRACE interface for CET

From: Andy Lutomirski
Date: Thu Sep 03 2020 - 12:26:12 EST


On Thu, Sep 3, 2020 at 9:21 AM Yu, Yu-cheng <yu-cheng.yu@xxxxxxxxx> wrote:
>
> On 9/3/2020 9:11 AM, Dave Hansen wrote:
> > On 9/3/20 9:09 AM, Yu, Yu-cheng wrote:
> >> If the debugger is going to write an MSR, only in the third case would
> >> this make a slight sense. For example, if the system has CET enabled,
> >> but the task does not have CET enabled, and GDB is writing to a CET MSR.
> >> But still, this is strange to me.
> >
> > If this is strange, then why do we even _implement_ writes?
> >
>
> For example, if the task has CET enabled, and it is in a control
> protection fault, the debugger can clear the task's IBT state, or unwind
> the shadow stack, etc. But if the task does not have CET enabled (its
> CET MSRs are in INIT state), it would make sense for the PTRACE call to
> return failure than doing something else, right?

What do you mean "something else"? I assume that, if GDB tells
ptrace() to write some value to the CET MSR, then it should get that
value. If GDB writes to it on a task that is not currently using CET,
I don't see why it should fail.

--Andy