public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org,
	Peter Zijlstra <peterz@infradead.org>,
	Josh Poimboeuf <jpoimboe@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@alien8.de>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [GIT PULL] objtool changes for v5.19
Date: Tue, 24 May 2022 07:34:42 +0200	[thread overview]
Message-ID: <Yoxucp7aUrCaV9uE@gmail.com> (raw)
In-Reply-To: <You3JC/BOIyEnmQj@gmail.com>


* Ingo Molnar <mingo@kernel.org> wrote:

> Linus,
> 
> Please pull the latest objtool/core git tree from:
> 
>    git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git objtool-core-2022-05-23
> 
>    # HEAD: 22682a07acc308ef78681572e19502ce8893c4d4 objtool: Fix objtool regression on x32 systems
> 
> Objtool changes for this cycle were:
> 
>  - Comprehensive interface overhaul:
>    =================================
> 
>    Objtool's interface has some issues:
> 
>      - Several features are done unconditionally, without any way to turn
>        them off.  Some of them might be surprising.  This makes objtool
>        tricky to use, and prevents porting individual features to other
>        arches.
> 
>      - The config dependencies are too coarse-grained.  Objtool enablement is
>        tied to CONFIG_STACK_VALIDATION, but it has several other features
>        independent of that.
> 
>      - The objtool subcmds ("check" and "orc") are clumsy: "check" is really
>        a subset of "orc", so it has all the same options.  The subcmd model
>        has never really worked for objtool, as it only has a single purpose:
>        "do some combination of things on an object file".
> 
>      - The '--lto' and '--vmlinux' options are nonsensical and have
>        surprising behavior.
> 
>    Overhaul the interface:
> 
>       - get rid of subcmds
> 
>       - make all features individually selectable
> 
>       - remove and/or clarify confusing/obsolete options
> 
>       - update the documentation
> 
>       - fix some bugs found along the way
> 
>  - Fix x32 regression
> 
>  - Fix Kbuild cleanup bugs
> 
>  - Add scripts/objdump-func helper script to disassemble a single function from an object file.
> 
>  - Rewrite scripts/faddr2line to be section-aware, by basing it on 'readelf',
>    moving it away from 'nm', which doesn't handle multiple sections well,
>    which can result in decoding failure.
> 
>  - Rewrite & fix symbol handling - which had a number of bugs wrt. object files
>    that don't have global symbols - which is rare but possible. Also fix a
>    bunch of symbol handling bugs found along the way.
> 
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
>  Thanks,
> 
> 	Ingo
> 
> ------------------>
> Borislav Petkov (1):
>       x86/cpu: Load microcode during restore_processor_state()
> 
> Dmitry Monakhov (1):
>       x86/unwind/orc: Recheck address range after stack info was updated
> 
> Josh Poimboeuf (27):
>       MAINTAINERS: Add x86 unwinding entry
>       objtool: Enable unreachable warnings for CLANG LTO
>       x86/static_call: Add ANNOTATE_NOENDBR to static call trampoline
>       x86/retpoline: Add ANNOTATE_NOENDBR for retpolines
>       x86/uaccess: Add ENDBR to __put_user_nocheck*()
>       x86/xen: Add ANNOTATE_NOENDBR to startup_xen()
>       objtool: Print data address for "!ENDBR" data warnings
>       objtool: Use offstr() to print address of missing ENDBR
>       libsubcmd: Fix OPTION_GROUP sorting
>       objtool: Reorganize cmdline options
>       objtool: Ditch subcommands
>       objtool: Don't print parentheses in function addresses
>       objtool: Add option to print section addresses
>       objtool: Make stack validation optional
>       objtool: Rework ibt and extricate from stack validation
>       objtool: Extricate sls from stack validation
>       objtool: Add CONFIG_OBJTOOL
>       objtool: Make stack validation frame-pointer-specific
>       objtool: Make static call annotation optional
>       objtool: Make jump label hack optional
>       objtool: Make noinstr hacks optional
>       objtool: Rename "VMLINUX_VALIDATION" -> "NOINSTR_VALIDATION"
>       objtool: Add HAVE_NOINSTR_VALIDATION
>       objtool: Remove --lto and --vmlinux in favor of --link
>       objtool: Update documentation
>       scripts: Create objdump-func helper script
>       scripts/faddr2line: Fix overlapping text section failures
> 
> Mikulas Patocka (1):
>       objtool: Fix objtool regression on x32 systems
> 
> Nur Hussein (1):
>       x86/Kconfig: fix the spelling of 'becoming' in X86_KERNEL_IBT config
> 
> Peter Zijlstra (5):
>       lib/strn*,objtool: Enforce user_access_begin() rules
>       x86,xen,objtool: Add UNWIND hint
>       x86,objtool: Mark cpu_startup_entry() __noreturn
>       x86,objtool: Explicitly mark idtentry_body()s tail REACHABLE
>       objtool: Fix symbol creation
> 
> Tiezhu Yang (2):
>       objtool: Remove inat-tables.c when make clean
>       objtool: Remove libsubcmd.a when make clean
> 
> Tony Luck (1):
>       x86/cpu: Add new Alderlake and Raptorlake CPU model numbers
> 
> 
>  MAINTAINERS                                        |   9 +
>  Makefile                                           |   2 +-
>  arch/Kconfig                                       |  18 +-
>  arch/x86/Kconfig                                   |  23 +-
>  arch/x86/Kconfig.debug                             |   2 +-
>  arch/x86/entry/entry_64.S                          |   3 +
>  arch/x86/include/asm/intel-family.h                |   3 +
>  arch/x86/include/asm/jump_label.h                  |   6 +-
>  arch/x86/include/asm/microcode.h                   |   2 +
>  arch/x86/include/asm/static_call.h                 |   1 +
>  arch/x86/kernel/alternative.c                      |   6 +-
>  arch/x86/kernel/cpu/microcode/core.c               |   6 +-
>  arch/x86/kernel/unwind_orc.c                       |   8 +-
>  arch/x86/lib/putuser.S                             |   4 +
>  arch/x86/lib/retpoline.S                           |   2 +-
>  arch/x86/platform/pvh/head.S                       |   1 +
>  arch/x86/power/cpu.c                               |  10 +-
>  arch/x86/xen/xen-head.S                            |   1 +
>  include/linux/compiler.h                           |   6 +-
>  include/linux/cpu.h                                |   2 +-
>  include/linux/instrumentation.h                    |   6 +-
>  include/linux/objtool.h                            |   6 +-
>  kernel/trace/Kconfig                               |   1 +
>  lib/Kconfig.debug                                  |  22 +-
>  lib/Kconfig.kcsan                                  |   4 +-
>  lib/Kconfig.ubsan                                  |   2 +-
>  lib/strncpy_from_user.c                            |   2 +-
>  lib/strnlen_user.c                                 |   2 +-
>  scripts/Makefile.build                             |  23 +-
>  scripts/faddr2line                                 | 150 ++++---
>  scripts/link-vmlinux.sh                            |  66 +--
>  scripts/objdump-func                               |  29 ++
>  scripts/package/builddeb                           |   2 +-
>  tools/include/linux/objtool.h                      |   6 +-
>  tools/lib/subcmd/parse-options.c                   |  17 +-
>  tools/objtool/Build                                |  12 +-
>  .../{stack-validation.txt => objtool.txt}          | 122 +++++-
>  tools/objtool/Makefile                             |  10 +-
>  tools/objtool/arch/x86/decode.c                    |   2 +-
>  tools/objtool/arch/x86/special.c                   |   2 +-
>  tools/objtool/builtin-check.c                      | 156 +++++--
>  tools/objtool/builtin-orc.c                        |  73 ----
>  tools/objtool/check.c                              | 466 +++++++++++----------
>  tools/objtool/elf.c                                | 211 ++++++----
>  tools/objtool/include/objtool/builtin.h            |  34 +-
>  tools/objtool/include/objtool/elf.h                |  16 +-
>  tools/objtool/include/objtool/warn.h               |  35 +-
>  tools/objtool/objtool.c                            | 103 +----
>  tools/objtool/weak.c                               |   9 +-
>  49 files changed, 1004 insertions(+), 700 deletions(-)
>  create mode 100755 scripts/objdump-func
>  rename tools/objtool/Documentation/{stack-validation.txt => objtool.txt} (80%)
>  delete mode 100644 tools/objtool/builtin-orc.c

Not sure what happened there, a previous x86/urgent got mixed into the 
shortlog & diffstat - this is the correct shortlog & diffstat you should 
get when pulling objtool-core-2022-05-23:

Josh Poimboeuf (19):
      libsubcmd: Fix OPTION_GROUP sorting
      objtool: Reorganize cmdline options
      objtool: Ditch subcommands
      objtool: Don't print parentheses in function addresses
      objtool: Add option to print section addresses
      objtool: Make stack validation optional
      objtool: Rework ibt and extricate from stack validation
      objtool: Extricate sls from stack validation
      objtool: Add CONFIG_OBJTOOL
      objtool: Make stack validation frame-pointer-specific
      objtool: Make static call annotation optional
      objtool: Make jump label hack optional
      objtool: Make noinstr hacks optional
      objtool: Rename "VMLINUX_VALIDATION" -> "NOINSTR_VALIDATION"
      objtool: Add HAVE_NOINSTR_VALIDATION
      objtool: Remove --lto and --vmlinux in favor of --link
      objtool: Update documentation
      scripts: Create objdump-func helper script
      scripts/faddr2line: Fix overlapping text section failures

Mikulas Patocka (1):
      objtool: Fix objtool regression on x32 systems

Peter Zijlstra (2):
      Merge branch 'tip/x86/urgent'
      objtool: Fix symbol creation

Tiezhu Yang (2):
      objtool: Remove inat-tables.c when make clean
      objtool: Remove libsubcmd.a when make clean

 ================>

 Makefile                                                          |   2 +-
 arch/Kconfig                                                      |  18 ++++++-
 arch/x86/Kconfig                                                  |  21 +++++---
 arch/x86/Kconfig.debug                                            |   2 +-
 arch/x86/include/asm/jump_label.h                                 |   6 +--
 arch/x86/kernel/alternative.c                                     |   6 +--
 include/linux/compiler.h                                          |   6 +--
 include/linux/instrumentation.h                                   |   6 +--
 include/linux/objtool.h                                           |   6 +--
 kernel/trace/Kconfig                                              |   1 +
 lib/Kconfig.debug                                                 |  22 ++++----
 lib/Kconfig.kcsan                                                 |   4 +-
 lib/Kconfig.ubsan                                                 |   2 +-
 scripts/Makefile.build                                            |  23 +++++----
 scripts/faddr2line                                                | 150 +++++++++++++++++++++++++++++++++++-------------------
 scripts/link-vmlinux.sh                                           |  66 +++++++++++++++---------
 scripts/objdump-func                                              |  29 +++++++++++
 scripts/package/builddeb                                          |   2 +-
 tools/include/linux/objtool.h                                     |   6 +--
 tools/lib/subcmd/parse-options.c                                  |  17 +++++--
 tools/objtool/Build                                               |  12 ++---
 tools/objtool/Documentation/{stack-validation.txt => objtool.txt} | 122 ++++++++++++++++++++++++++++++++++++--------
 tools/objtool/Makefile                                            |  10 ++--
 tools/objtool/arch/x86/decode.c                                   |   2 +-
 tools/objtool/arch/x86/special.c                                  |   2 +-
 tools/objtool/builtin-check.c                                     | 156 +++++++++++++++++++++++++++++++++++++++++++++-----------
 tools/objtool/builtin-orc.c                                       |  73 --------------------------
 tools/objtool/check.c                                             | 463 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------
 tools/objtool/elf.c                                               | 211 ++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
 tools/objtool/include/objtool/builtin.h                           |  34 +++++++++++--
 tools/objtool/include/objtool/elf.h                               |  16 ++++--
 tools/objtool/include/objtool/warn.h                              |  35 +++++++------
 tools/objtool/objtool.c                                           | 103 ++-----------------------------------
 tools/objtool/weak.c                                              |   9 +---
 34 files changed, 959 insertions(+), 684 deletions(-)
 create mode 100755 scripts/objdump-func
 rename tools/objtool/Documentation/{stack-validation.txt => objtool.txt} (80%)
 delete mode 100644 tools/objtool/builtin-orc.c

Thanks,

	Ingo

  reply	other threads:[~2022-05-24  5:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-23 16:32 [GIT PULL] objtool changes for v5.19 Ingo Molnar
2022-05-24  5:34 ` Ingo Molnar [this message]
2022-05-24  6:02   ` Ingo Molnar
2022-05-24 17:53     ` Linus Torvalds
2022-05-24 18:08       ` Peter Zijlstra
2022-05-24 18:14         ` Josh Poimboeuf
2022-05-24 19:53 ` pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Yoxucp7aUrCaV9uE@gmail.com \
    --to=mingo@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=jpoimboe@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox