lkml.org 
[lkml]   [2020]   [Feb]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v8 04/12] scs: disable when function graph tracing is enabled
    On Wed, Feb 19, 2020 at 3:34 AM Mark Rutland <mark.rutland@arm.com> wrote:
    > Fangrui Song has implemented `-fpatchable-function-entry` in LLVM (for
    > 10.x onwards), so we can support this when DYNAMIC_FTRACE_WITH_REGS is
    > selected.
    >
    > This can be:
    >
    > depends on DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER
    >
    > ... and we can update the commit message to something like:
    >
    > | With SCS the return address is taken from the shadow stack and the
    > | value in the frame record has no effect. The mcount based graph tracer
    > | hooks returns by modifying frame records on the (regular) stack, and
    > | thus is not compatible. The patchable-function-entry graph tracer
    > | used for DYNAMIC_FTRACE_WITH_REGS modifies the LR before it is saved
    > | to the shadow stack, and is compatible.
    > |
    > | Modifying the mcount based graph tracer to work with SCS would require
    > | a mechanism to determine the corresponding slot on the shadow stack
    > | (and to pass this through the ftrace infrastructure), and we expect
    > | that everyone will eventually move to the patchable-function-entry
    > | based graph tracer anyway, so for now let's disable SCS when the
    > | mcount-based graph tracer is enabled.
    > |
    > | SCS and patchable-function-entry are both supported from LLVM 10.x.
    >
    > Assuming you're happy with that:
    >
    > Reviewed-by: Mark Rutland <mark.rutland@arm.com>

    Great, thanks for pointing that out! This looks good to me, I'll use this in v9.

    Sami

    \
     
     \ /
      Last update: 2020-02-19 19:02    [W:6.290 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site