lkml.org 
[lkml]   [2017]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 10/10] x86/kconfig: make it easier to switch to the new ORC unwinder
    Date
    A couple of Kconfig changes which make it much easier to switch to the
    new CONFIG_ORC_UNWINDER:

    1) Remove x86 dependencies on CONFIG_FRAME_POINTER for lockdep,
    latencytop, and fault injection. x86 has a 'guess' unwinder which
    just scans the stack for kernel text addresses. It's not 100%
    accurate but in many cases it's good enough. This allows those users
    who don't want the text overhead of the frame pointer or ORC
    unwinders to still use these features. More importantly, this also
    makes it much more straightforward to disable frame pointers.

    2) Make CONFIG_ORC_UNWINDER depend on !CONFIG_FRAME_POINTER. While it
    would be possible to have both enabled, it doesn't really make sense
    to do so. So enforce a sane configuration to prevent the user from
    making a dumb mistake.

    With these changes, when you disable CONFIG_FRAME_POINTER, "make
    oldconfig" will ask if you want to enable CONFIG_ORC_UNWINDER.

    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    ---
    arch/x86/Kconfig.debug | 7 +++----
    lib/Kconfig.debug | 6 +++---
    2 files changed, 6 insertions(+), 7 deletions(-)

    diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
    index dc10ec6..268a318 100644
    --- a/arch/x86/Kconfig.debug
    +++ b/arch/x86/Kconfig.debug
    @@ -357,7 +357,7 @@ config PUNIT_ATOM_DEBUG

    config ORC_UNWINDER
    bool "ORC unwinder"
    - depends on X86_64
    + depends on X86_64 && !FRAME_POINTER
    select STACK_VALIDATION
    ---help---
    This option enables the ORC (Oops Rewind Capability) unwinder for
    @@ -365,9 +365,8 @@ config ORC_UNWINDER
    a simplified version of the DWARF Call Frame Information standard.

    This unwinder is more accurate across interrupt entry frames than the
    - frame pointer unwinder. It can also enable a 5-10% performance
    - improvement across the entire kernel if CONFIG_FRAME_POINTER is
    - disabled.
    + frame pointer unwinder. It also enables a 5-10% performance
    + improvement across the entire kernel compared to frame pointers.

    Enabling this option will increase the kernel's runtime memory usage
    by roughly 2-4MB, depending on your kernel config.
    diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
    index a7abffa..325c1c5 100644
    --- a/lib/Kconfig.debug
    +++ b/lib/Kconfig.debug
    @@ -1113,7 +1113,7 @@ config LOCKDEP
    bool
    depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
    select STACKTRACE
    - select FRAME_POINTER if !MIPS && !PPC && !ARM_UNWIND && !S390 && !MICROBLAZE && !ARC && !SCORE
    + select FRAME_POINTER if !MIPS && !PPC && !ARM_UNWIND && !S390 && !MICROBLAZE && !ARC && !SCORE && !X86
    select KALLSYMS
    select KALLSYMS_ALL

    @@ -1504,7 +1504,7 @@ config FAULT_INJECTION_STACKTRACE_FILTER
    depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
    depends on !X86_64
    select STACKTRACE
    - select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC && !SCORE
    + select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC && !SCORE && !X86
    help
    Provide stacktrace filter for fault-injection capabilities

    @@ -1513,7 +1513,7 @@ config LATENCYTOP
    depends on DEBUG_KERNEL
    depends on STACKTRACE_SUPPORT
    depends on PROC_FS
    - select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC
    + select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC && !X86
    select KALLSYMS
    select KALLSYMS_ALL
    select STACKTRACE
    --
    2.7.5
    \
     
     \ /
      Last update: 2017-07-11 17:34    [W:4.222 / U:0.140 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site