Skip to content
Permalink
Matthew-Wilcox…
Switch branches/tags

Commits on Jun 16, 2021

  1. mm: Move page dirtying prototypes from mm.h

    These functions implement the address_space ->set_page_dirty operation
    and should live in pagemap.h, not mm.h so that the rest of the kernel
    doesn't get funny ideas about calling them directly.
    
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Matthew Wilcox (Oracle) authored and intel-lab-lkp committed Jun 16, 2021
  2. fs: Remove noop_set_page_dirty()

    Use __set_page_dirty_no_writeback() instead.  This will set the dirty
    bit on the page, which will be used to avoid calling set_page_dirty()
    in the future.  It will have no effect on actually writing the page
    back, as the pages are not on any LRU lists.
    
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Matthew Wilcox (Oracle) authored and intel-lab-lkp committed Jun 16, 2021
  3. fs: Remove anon_set_page_dirty()

    Use __set_page_dirty_no_writeback() instead.  This will set the dirty
    bit on the page, which will be used to avoid calling set_page_dirty()
    in the future.  It will have no effect on actually writing the page
    back, as the pages are not on any LRU lists.
    
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Matthew Wilcox (Oracle) authored and intel-lab-lkp committed Jun 16, 2021
  4. iomap: Use __set_page_dirty_nobuffers

    The only difference between iomap_set_page_dirty() and
    __set_page_dirty_nobuffers() is that the latter includes a debugging
    check that a !Uptodate page has private data.
    
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Matthew Wilcox (Oracle) authored and intel-lab-lkp committed Jun 16, 2021
  5. mm/writeback: Use __set_page_dirty in __set_page_dirty_nobuffers

    This is fundamentally the same code, so just call it instead of
    duplicating it.
    
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Matthew Wilcox (Oracle) authored and intel-lab-lkp committed Jun 16, 2021
  6. mm/writeback: Move __set_page_dirty() to core mm

    Nothing in __set_page_dirty() is specific to buffer_head, so
    move it to mm/page-writeback.c.  That removes the only caller of
    account_page_dirtied() outside of page-writeback.c, so make it static.
    
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Matthew Wilcox (Oracle) authored and intel-lab-lkp committed Jun 16, 2021

Commits on Jun 15, 2021

  1. Add linux-next specific files for 20210615

    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    sfrothwell committed Jun 15, 2021
  2. Merge branch 'akpm/master'

    sfrothwell committed Jun 15, 2021
  3. kdump: use vmlinux_build_id to simplify

    We can use the vmlinux_build_id array here now instead of open coding it.
    This mostly consolidates code.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-14-swboyd@chromium.org
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  4. buildid: fix kernel-doc notation

    Kernel doc should use "Return:" instead of "Returns" to properly reflect
    the return values.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-13-swboyd@chromium.org
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  5. buildid: mark some arguments const

    These arguments are never modified so they can be marked const to indicate
    as such.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-12-swboyd@chromium.org
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  6. scripts/decode_stacktrace.sh: indicate 'auto' can be used for base path

    Add "auto" to the usage message so that it's a little clearer that you can
    pass "auto" as the second argument.  When passing "auto" the script tries
    to find the base path automatically instead of requiring it be passed on
    the commandline.  Also use [<variable>] to indicate the variable argument
    and that it is optional so that we can differentiate from the literal
    "auto" that should be passed.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-11-swboyd@chromium.org
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  7. scripts/decode_stacktrace.sh: silence stderr messages from addr2line/nm

    Sometimes if you're using tools that have linked things improperly or have
    new features/sections that older tools don't expect you'll see warnings
    printed to stderr.  We don't really care about these warnings, so let's
    just silence these messages to cleanup output of this script.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-10-swboyd@chromium.org
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  8. scripts/decode_stacktrace.sh: support debuginfod

    Now that stacktraces contain the build ID information we can update this
    script to use debuginfod-find to locate the debuginfo for the vmlinux and
    modules automatically.  This can replace the existing code that requires
    specifying a path to vmlinux or tries to find the vmlinux and modules
    automatically by using the release number.  Work it into the script as a
    fallback option if the vmlinux isn't specified on the commandline.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-9-swboyd@chromium.org
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  9. x86/dumpstack: use %pSb/%pBb for backtrace printing

    Let's use the new printk formats to print the stacktrace entries when
    printing a backtrace to the kernel logs.  This will include any module's
    build ID[1] in it so that offline/crash debugging can easily locate the
    debuginfo for a module via something like debuginfod[2].
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-8-swboyd@chromium.org
    Link: https://fedoraproject.org/wiki/Releases/FeatureBuildId [1]
    Link: https://sourceware.org/elfutils/Debuginfod.html [2]
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  10. arm64: stacktrace: use %pSb for backtrace printing

    Let's use the new printk format to print the stacktrace entry when
    printing a backtrace to the kernel logs. This will include any module's
    build ID[1] in it so that offline/crash debugging can easily locate the
    debuginfo for a module via something like debuginfod[2].
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-7-swboyd@chromium.org
    Link: https://fedoraproject.org/wiki/Releases/FeatureBuildId [1]
    Link: https://sourceware.org/elfutils/Debuginfod.html [2]
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Acked-by: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  11. module: fix build error when CONFIG_SYSFS is disabled

    Fix build error when disable CONFIG_SYSFS:
    kernel/module.c:2805:8: error: implicit declaration of function `sect_empty'; did you mean `desc_empty'? [-Werror=implicit-function-declaration]
     2805 |   if (!sect_empty(sechdr) && sechdr->sh_type == SHT_NOTE &&
    
    Link: https://lkml.kernel.org/r/20210525105049.34804-1-cuibixuan@huawei.com
    Fixes: 9ee6682 ("module: add printk formats to add module build ID to stacktraces")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Bixuan Cui <cuibixuan@huawei.com>
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Acked-by: Jessica Yu <jeyu@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Bixuan Cui authored and sfrothwell committed Jun 15, 2021
  12. module-add-printk-formats-to-add-module-build-id-to-stacktraces-fix-fix

    make kallsyms_lookup_buildid() static
    
    warning: no previous prototype for 'kallsyms_lookup_buildid' [-Wmissing-prototypes]
    
    Cc: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    akpm00 authored and sfrothwell committed Jun 15, 2021
  13. buildid: fix build when CONFIG_MODULES is not set

    Omit the static_assert() when CONFIG_MODULES is not set/enabled.
    Fixes these build errors:
    
    ../kernel/kallsyms.c: In function `__sprint_symbol':
    ../include/linux/kernel.h:53:43: error: dereferencing pointer to incomplete type `struct module'
     #define typeof_member(T, m) typeof(((T*)0)->m)
                                               ^
    ../include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(typeof_member(struct module, build_id)) == 20"
     #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                             ^
    ../kernel/kallsyms.c:454:4: note: in expansion of macro `static_assert'
        static_assert(sizeof(typeof_member(struct module, build_id)) == 20);
        ^~~~~~~~~~~~~
    
    Link: https://lkml.kernel.org/r/20210513171510.20328-1-rdunlap@infradead.org
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rddunlap authored and sfrothwell committed Jun 15, 2021
  14. module-add-printk-formats-to-add-module-build-id-to-stacktraces-fix

    fix build with CONFIG_MODULES=n, tweak code layout
    
    Cc: Stephen Boyd <swboyd@chromium.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    akpm00 authored and sfrothwell committed Jun 15, 2021
  15. module: add printk formats to add module build ID to stacktraces

    Let's make kernel stacktraces easier to identify by including the build
    ID[1] of a module if the stacktrace is printing a symbol from a module.
    This makes it simpler for developers to locate a kernel module's full
    debuginfo for a particular stacktrace.  Combined with
    scripts/decode_stracktrace.sh, a developer can download the matching
    debuginfo from a debuginfod[2] server and find the exact file and line
    number for the functions plus offsets in a stacktrace that match the
    module.  This is especially useful for pstore crash debugging where the
    kernel crashes are recorded in something like console-ramoops and the
    recovery kernel/modules are different or the debuginfo doesn't exist on
    the device due to space concerns (the debuginfo can be too large for space
    limited devices).
    
    Originally, I put this on the %pS format, but that was quickly rejected
    given that %pS is used in other places such as ftrace where build IDs
    aren't meaningful.  There was some discussions on the list to put every
    module build ID into the "Modules linked in:" section of the stacktrace
    message but that quickly becomes very hard to read once you have more than
    three or four modules linked in.  It also provides too much information
    when we don't expect each module to be traversed in a stacktrace.  Having
    the build ID for modules that aren't important just makes things messy.
    Splitting it to multiple lines for each module quickly explodes the number
    of lines printed in an oops too, possibly wrapping the warning off the
    console.  And finally, trying to stash away each module used in a
    callstack to provide the ID of each symbol printed is cumbersome and would
    require changes to each architecture to stash away modules and return
    their build IDs once unwinding has completed.
    
    Instead, we opt for the simpler approach of introducing new printk formats
    '%pS[R]b' for "pointer symbolic backtrace with module build ID" and '%pBb'
    for "pointer backtrace with module build ID" and then updating the few
    places in the architecture layer where the stacktrace is printed to use
    this new format.
    
    Before:
    
     Call trace:
      lkdtm_WARNING+0x28/0x30 [lkdtm]
      direct_entry+0x16c/0x1b4 [lkdtm]
      full_proxy_write+0x74/0xa4
      vfs_write+0xec/0x2e8
    
    After:
    
     Call trace:
      lkdtm_WARNING+0x28/0x30 [lkdtm 6c2215028606bda50de823490723dc4bc5bf46f9]
      direct_entry+0x16c/0x1b4 [lkdtm 6c2215028606bda50de823490723dc4bc5bf46f9]
      full_proxy_write+0x74/0xa4
      vfs_write+0xec/0x2e8
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-6-swboyd@chromium.org
    Link: https://fedoraproject.org/wiki/Releases/FeatureBuildId [1]
    Link: https://sourceware.org/elfutils/Debuginfod.html [2]
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  16. dump_stack: add vmlinux build ID to stack traces

    Add the running kernel's build ID[1] to the stacktrace information header.
    This makes it simpler for developers to locate the vmlinux with full
    debuginfo for a particular kernel stacktrace.  Combined with
    scripts/decode_stracktrace.sh, a developer can download the correct
    vmlinux from a debuginfod[2] server and find the exact file and line
    number for the functions plus offsets in a stacktrace.
    
    This is especially useful for pstore crash debugging where the kernel
    crashes are recorded in the pstore logs and the recovery kernel is
    different or the debuginfo doesn't exist on the device due to space
    concerns (the data can be large and a security concern).  The stacktrace
    can be analyzed after the crash by using the build ID to find the matching
    vmlinux and understand where in the function something went wrong.
    
    Example stacktrace from lkdtm:
    
     WARNING: CPU: 4 PID: 3255 at drivers/misc/lkdtm/bugs.c:83 lkdtm_WARNING+0x28/0x30 [lkdtm]
     Modules linked in: lkdtm rfcomm algif_hash algif_skcipher af_alg xt_cgroup uinput xt_MASQUERADE
     CPU: 4 PID: 3255 Comm: bash Not tainted 5.11 #3 aa23f7a1231c229de205662d5a9e0d4c580f19a1
     Hardware name: Google Lazor (rev3+) with KB Backlight (DT)
     pstate: 00400009 (nzcv daif +PAN -UAO -TCO BTYPE=--)
     pc : lkdtm_WARNING+0x28/0x30 [lkdtm]
    
    The hex string aa23f7a1231c229de205662d5a9e0d4c580f19a1 is the build ID,
    following the kernel version number. Put it all behind a config option,
    STACKTRACE_BUILD_ID, so that kernel developers can remove this
    information if they decide it is too much.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-5-swboyd@chromium.org
    Link: https://fedoraproject.org/wiki/Releases/FeatureBuildId [1]
    Link: https://sourceware.org/elfutils/Debuginfod.html [2]
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  17. buildid-stash-away-kernels-build-id-on-init-fix

    fix implicit declaration of function 'init_vmlinux_build_id'
    
    Link: https://lkml.kernel.org/r/CAE-0n51UjTbay8N9FXAyE7_aR2+ePrQnKSRJ0gbmRsXtcLBVaw@mail.gmail.com
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  18. buildid: stash away kernels build ID on init

    Parse the kernel's build ID at initialization so that other code can print
    a hex format string representation of the running kernel's build ID.  This
    will be used in the kdump and dump_stack code so that developers can
    easily locate the vmlinux debug symbols for a crash/stacktrace.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-4-swboyd@chromium.org
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Acked-by: Baoquan He <bhe@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  19. buildid: add API to parse build ID out of buffer

    Add an API that can parse the build ID out of a buffer, instead of a vma,
    to support printing a kernel module's build ID for stack traces.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-3-swboyd@chromium.org
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  20. buildid: only consider GNU notes for build ID parsing

    Patch series "Add build ID to stacktraces", v6.
    
    This series adds the kernel's build ID[1] to the stacktrace header printed
    in oops messages, warnings, etc.  and the build ID for any module that
    appears in the stacktrace after the module name.  The goal is to make the
    stacktrace more self-contained and descriptive by including the relevant
    build IDs in the kernel logs when something goes wrong.  This can be used
    by post processing tools like script/decode_stacktrace.sh and kernel
    developers to easily locate the debug info associated with a kernel crash
    and line up what line and file things started falling apart at.
    
    To show how this can be used I've included a patch to decode_stacktrace.sh
    that downloads the debuginfo from a debuginfod server.  This also includes
    some patches to make the buildid.c file use more const arguments and
    consolidate logic into buildid.c from kdump.  These are left to the end as
    they were mostly cleanup patches.
    
    Here's an example lkdtm stacktrace on arm64.
    
     WARNING: CPU: 4 PID: 3255 at drivers/misc/lkdtm/bugs.c:83 lkdtm_WARNING+0x28/0x30 [lkdtm]
     Modules linked in: lkdtm rfcomm algif_hash algif_skcipher af_alg xt_cgroup uinput xt_MASQUERADE
     CPU: 4 PID: 3255 Comm: bash Not tainted 5.11 #3 aa23f7a1231c229de205662d5a9e0d4c580f19a1
     Hardware name: Google Lazor (rev3+) with KB Backlight (DT)
     pstate: 00400009 (nzcv daif +PAN -UAO -TCO BTYPE=--)
     pc : lkdtm_WARNING+0x28/0x30 [lkdtm]
     lr : lkdtm_do_action+0x24/0x40 [lkdtm]
     sp : ffffffc0134fbca0
     x29: ffffffc0134fbca0 x28: ffffff92d53ba240
     x27: 0000000000000000 x26: 0000000000000000
     x25: 0000000000000000 x24: ffffffe3622352c0
     x23: 0000000000000020 x22: ffffffe362233366
     x21: ffffffe3622352e0 x20: ffffffc0134fbde0
     x19: 0000000000000008 x18: 0000000000000000
     x17: ffffff929b6536fc x16: 0000000000000000
     x15: 0000000000000000 x14: 0000000000000012
     x13: ffffffe380ed892c x12: ffffffe381d05068
     x11: 0000000000000000 x10: 0000000000000000
     x9 : 0000000000000001 x8 : ffffffe362237000
     x7 : aaaaaaaaaaaaaaaa x6 : 0000000000000000
     x5 : 0000000000000000 x4 : 0000000000000001
     x3 : 0000000000000008 x2 : ffffff93fef25a70
     x1 : ffffff93fef15788 x0 : ffffffe3622352e0
     Call trace:
      lkdtm_WARNING+0x28/0x30 [lkdtm ed5019fdf5e53be37cb1ba7899292d7e143b259e]
      direct_entry+0x16c/0x1b4 [lkdtm ed5019fdf5e53be37cb1ba7899292d7e143b259e]
      full_proxy_write+0x74/0xa4
      vfs_write+0xec/0x2e8
      ksys_write+0x84/0xf0
      __arm64_sys_write+0x24/0x30
      el0_svc_common+0xf4/0x1c0
      do_el0_svc_compat+0x28/0x3c
      el0_svc_compat+0x10/0x1c
      el0_sync_compat_handler+0xa8/0xcc
      el0_sync_compat+0x178/0x180
     ---[ end trace 3d95032303e59e68 ]---
    
    This patch (of 13):
    
    Some kernel elf files have various notes that also happen to have an elf
    note type of '3', which matches NT_GNU_BUILD_ID but the note name isn't
    "GNU".  For example, this note trips up the existing logic:
    
     Owner  Data size   Description
     Xen    0x00000008  Unknown note type: (0x00000003) description data: 00 00 00 ffffff80 ffffffff ffffffff ffffffff ffffffff
    
    Let's make sure that it is a GNU note when parsing the build ID so that we
    can use this function to parse a vmlinux's build ID too.
    
    Link: https://lkml.kernel.org/r/20210511003845.2429846-1-swboyd@chromium.org
    Link: https://lkml.kernel.org/r/20210511003845.2429846-2-swboyd@chromium.org
    Fixes: bd7525d ("bpf: Move stack_map_get_build_id into lib")
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Reported-by: Petr Mladek <pmladek@suse.com>
    Tested-by: Petr Mladek <pmladek@suse.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Jessica Yu <jeyu@kernel.org>
    Cc: Evan Green <evgreen@chromium.org>
    Cc: Hsin-Yi Wang <hsinyi@chromium.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Dave Young <dyoung@redhat.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vivek Goyal <vgoyal@redhat.com>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    bebarino authored and sfrothwell committed Jun 15, 2021
  21. x86: convert to setup_initial_init_mm()

    Use setup_initial_init_mm() helper to simplify code.
    
    Link: https://lkml.kernel.org/r/20210608083418.137226-16-wangkefeng.wang@huawei.com
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Kefeng Wang authored and sfrothwell committed Jun 15, 2021
  22. sh: convert to setup_initial_init_mm()

    Use setup_initial_init_mm() helper to simplify code.
    
    Link: https://lkml.kernel.org/r/20210608083418.137226-15-wangkefeng.wang@huawei.com
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Rich Felker <dalias@libc.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Kefeng Wang authored and sfrothwell committed Jun 15, 2021
  23. s390: convert to setup_initial_init_mm()

    Use setup_initial_init_mm() helper to simplify code.
    
    Link: https://lkml.kernel.org/r/20210608083418.137226-14-wangkefeng.wang@huawei.com
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Kefeng Wang authored and sfrothwell committed Jun 15, 2021
  24. riscv: convert to setup_initial_init_mm()

    Use setup_initial_init_mm() helper to simplify code.
    
    Link: https://lkml.kernel.org/r/20210608083418.137226-13-wangkefeng.wang@huawei.com
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Kefeng Wang authored and sfrothwell committed Jun 15, 2021
  25. powerpc: convert to setup_initial_init_mm()

    Use setup_initial_init_mm() helper to simplify code.
    
    Note klimit is (unsigned long) _end, with new helper, will use _end
    directly.
    
    Link: https://lkml.kernel.org/r/20210608083418.137226-12-wangkefeng.wang@huawei.com
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Souptick Joarder <jrdr.linux@gmail.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Kefeng Wang authored and sfrothwell committed Jun 15, 2021
  26. openrisc: convert to setup_initial_init_mm()

    Use setup_initial_init_mm() helper to simplify code.
    
    Link: https://lkml.kernel.org/r/20210608083418.137226-11-wangkefeng.wang@huawei.com
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Acked-by: Stafford Horne <shorne@gmail.com>
    Cc: Jonas Bonn <jonas@southpole.se>
    Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
    Cc: Stafford Horne <shorne@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Kefeng Wang authored and sfrothwell committed Jun 15, 2021
  27. nios2: convert to setup_initial_init_mm()

    Use setup_initial_init_mm() helper to simplify code.
    
    Link: https://lkml.kernel.org/r/20210608083418.137226-10-wangkefeng.wang@huawei.com
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Ley Foon Tan <ley.foon.tan@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Kefeng Wang authored and sfrothwell committed Jun 15, 2021
  28. nds32: convert to setup_initial_init_mm()

    Use setup_initial_init_mm() helper to simplify code.
    
    Link: https://lkml.kernel.org/r/20210608083418.137226-9-wangkefeng.wang@huawei.com
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Cc: Nick Hu <nickhu@andestech.com>
    Cc: Greentime Hu <green.hu@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Kefeng Wang authored and sfrothwell committed Jun 15, 2021
  29. m68k: convert to setup_initial_init_mm()

    Use setup_initial_init_mm() helper to simplify code.
    
    Link: https://lkml.kernel.org/r/20210608083418.137226-8-wangkefeng.wang@huawei.com
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Acked-by: Greg Ungerer <gerg@linux-m68k.org>
    Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Kefeng Wang authored and sfrothwell committed Jun 15, 2021
Older