From: Tiezhu Yang <yangtiezhu@loongson.cn>
To: Josh Poimboeuf <jpoimboe@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Huacai Chen <chenhuacai@kernel.org>
Cc: loongarch@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: [PATCH v6 0/8] Add objtool, orc and livepatching support for LoongArch
Date: Tue, 30 Jan 2024 14:17:22 +0800 [thread overview]
Message-ID: <20240130061730.21118-1-yangtiezhu@loongson.cn> (raw)
This version is based on 6.8-rc2, tested with the latest upstream
gcc and binutils (20240129).
v6:
-- Add "-mno-relax" option
-- Remove "-fno-optimize-sibling-calls" option
-- Remove "-falign-functions=4 -falign-labels=4" options
-- Remove "#ifdef CONFIG_CPU_HAS_LBT" in lbt.S
-- Remove patch "objtool: Check local label about sibling call"
-- Silence the objtool warnings under CONFIG_FUNCTION_TRACER
-- Add livepatching support and fix the problems when testing
Tiezhu Yang (8):
objtool/LoongArch: Enable objtool to be built
objtool/LoongArch: Implement instruction decoder
objtool/x86: Separate arch-specific and generic parts
objtool/LoongArch: Enable orc to be built
objtool: Check local label in add_dead_ends()
objtool: Check local label in read_unwind_hints()
LoongArch: Add ORC stack unwinder support
LoongArch: Add kernel livepatching support
arch/loongarch/Kconfig | 6 +
arch/loongarch/Kconfig.debug | 11 +
arch/loongarch/Makefile | 23 +-
arch/loongarch/include/asm/Kbuild | 2 +
arch/loongarch/include/asm/bug.h | 1 +
arch/loongarch/include/asm/exception.h | 2 +
arch/loongarch/include/asm/module.h | 7 +
arch/loongarch/include/asm/orc_header.h | 18 +
arch/loongarch/include/asm/orc_lookup.h | 31 ++
arch/loongarch/include/asm/orc_types.h | 58 ++
arch/loongarch/include/asm/stackframe.h | 3 +
arch/loongarch/include/asm/thread_info.h | 2 +
arch/loongarch/include/asm/unwind.h | 20 +-
arch/loongarch/include/asm/unwind_hints.h | 28 +
arch/loongarch/kernel/Makefile | 4 +
arch/loongarch/kernel/entry.S | 5 +
arch/loongarch/kernel/fpu.S | 7 +
arch/loongarch/kernel/genex.S | 6 +
arch/loongarch/kernel/lbt.S | 2 +
arch/loongarch/kernel/mcount_dyn.S | 6 +
arch/loongarch/kernel/module.c | 22 +-
arch/loongarch/kernel/relocate_kernel.S | 8 +-
arch/loongarch/kernel/rethook_trampoline.S | 1 +
arch/loongarch/kernel/setup.c | 2 +
arch/loongarch/kernel/stacktrace.c | 42 ++
arch/loongarch/kernel/traps.c | 42 +-
arch/loongarch/kernel/unwind_orc.c | 516 ++++++++++++++++++
arch/loongarch/kernel/vmlinux.lds.S | 3 +
arch/loongarch/kvm/switch.S | 9 +-
arch/loongarch/lib/clear_user.S | 2 +
arch/loongarch/lib/copy_user.S | 2 +
arch/loongarch/lib/memcpy.S | 2 +
arch/loongarch/lib/memset.S | 2 +
arch/loongarch/mm/tlb.c | 27 +-
arch/loongarch/mm/tlbex.S | 9 +
arch/loongarch/vdso/Makefile | 1 +
include/linux/compiler.h | 9 +
scripts/Makefile | 7 +-
tools/arch/loongarch/include/asm/inst.h | 161 ++++++
tools/arch/loongarch/include/asm/orc_types.h | 58 ++
tools/include/linux/bitops.h | 11 +
tools/objtool/Makefile | 4 +
tools/objtool/arch/loongarch/Build | 3 +
tools/objtool/arch/loongarch/decode.c | 356 ++++++++++++
.../arch/loongarch/include/arch/cfi_regs.h | 22 +
.../objtool/arch/loongarch/include/arch/elf.h | 30 +
.../arch/loongarch/include/arch/special.h | 33 ++
tools/objtool/arch/loongarch/orc.c | 171 ++++++
tools/objtool/arch/loongarch/special.c | 15 +
tools/objtool/arch/x86/Build | 1 +
tools/objtool/arch/x86/orc.c | 188 +++++++
tools/objtool/check.c | 52 +-
tools/objtool/include/objtool/elf.h | 1 +
tools/objtool/include/objtool/orc.h | 14 +
tools/objtool/orc_dump.c | 69 +--
tools/objtool/orc_gen.c | 113 +---
56 files changed, 2011 insertions(+), 239 deletions(-)
create mode 100644 arch/loongarch/include/asm/orc_header.h
create mode 100644 arch/loongarch/include/asm/orc_lookup.h
create mode 100644 arch/loongarch/include/asm/orc_types.h
create mode 100644 arch/loongarch/include/asm/unwind_hints.h
create mode 100644 arch/loongarch/kernel/unwind_orc.c
create mode 100644 tools/arch/loongarch/include/asm/inst.h
create mode 100644 tools/arch/loongarch/include/asm/orc_types.h
create mode 100644 tools/objtool/arch/loongarch/Build
create mode 100644 tools/objtool/arch/loongarch/decode.c
create mode 100644 tools/objtool/arch/loongarch/include/arch/cfi_regs.h
create mode 100644 tools/objtool/arch/loongarch/include/arch/elf.h
create mode 100644 tools/objtool/arch/loongarch/include/arch/special.h
create mode 100644 tools/objtool/arch/loongarch/orc.c
create mode 100644 tools/objtool/arch/loongarch/special.c
create mode 100644 tools/objtool/arch/x86/orc.c
create mode 100644 tools/objtool/include/objtool/orc.h
--
2.42.0
next reply other threads:[~2024-01-30 6:17 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-30 6:17 Tiezhu Yang [this message]
2024-01-30 6:17 ` [PATCH v6 1/8] objtool/LoongArch: Enable objtool to be built Tiezhu Yang
2024-01-30 6:17 ` [PATCH v6 2/8] objtool/LoongArch: Implement instruction decoder Tiezhu Yang
2024-01-30 6:17 ` [PATCH v6 3/8] objtool/x86: Separate arch-specific and generic parts Tiezhu Yang
2024-01-30 6:17 ` [PATCH v6 4/8] objtool/LoongArch: Enable orc to be built Tiezhu Yang
2024-01-30 6:17 ` [PATCH v6 5/8] objtool: Check local label in add_dead_ends() Tiezhu Yang
2024-01-30 6:17 ` [PATCH v6 6/8] objtool: Check local label in read_unwind_hints() Tiezhu Yang
2024-01-30 6:17 ` [PATCH v6 7/8] LoongArch: Add ORC stack unwinder support Tiezhu Yang
2024-01-30 6:17 ` [PATCH v6 8/8] LoongArch: Add kernel livepatching support Tiezhu Yang
2024-02-07 13:27 ` [PATCH v6 0/8] Add objtool, orc and livepatching support for LoongArch Huacai Chen
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=20240130061730.21118-1-yangtiezhu@loongson.cn \
--to=yangtiezhu@loongson.cn \
--cc=chenhuacai@kernel.org \
--cc=jpoimboe@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=loongarch@lists.linux.dev \
--cc=peterz@infradead.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).