All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.