mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: linux-arm-kernel@lists.infradead.org
Cc: aou@eecs.berkeley.edu, borntraeger@de.ibm.com, bp@alien8.de,
	broonie@kernel.org, catalin.marinas@arm.com,
	dave.hansen@linux.intel.com, gor@linux.ibm.com,
	hca@linux.ibm.com, linux-kernel@vger.kernel.org,
	madvenka@linux.microsoft.com, mark.rutland@arm.com,
	mhiramat@kernel.org, mingo@redhat.com, mpe@ellerman.id.au,
	palmer@dabbelt.com, paul.walmsley@sifive.com,
	peterz@infradead.org, rostedt@goodmis.org, tglx@linutronix.de,
	will@kernel.org
Subject: [PATCH 0/9] arm64: stacktrace: unify unwind code
Date: Wed, 17 Nov 2021 14:07:28 +0000	[thread overview]
Message-ID: <20211117140737.44420-1-mark.rutland@arm.com> (raw)

For historical reasons arm64 has a number of open-coded unwind functions. We'd
like to unify these to reduce the amount of unwind code we have to expose, and
to make it easier for subsequent patches to rework the unwind code for
RELIABLE_STACKTRACE.

These patches unify the various unwinders using arch_stack_walk(). So that we
can use arch_stack_walk() without having to expose /proc/${PID}/stack, I've
picked Peter's patch decoupling ARCH_STACKWALK from STACKTRACE, which was
previously posted at:

  https://lore.kernel.org/lkml/20211022152104.356586621@infradead.org/

As the direction of travel seems to be to not unify the get_wchan()
implementations, Peter suggested I pick the patch for now. This is the only
patch in the series touching other architectures.

The bulk of the series was perviously posted in Madhavan's series adding
reliability checks to the unwinder:

  https://lore.kernel.org/linux-arm-kernel/20211015025847.17694-1-madvenka@linux.microsoft.com/

I have made some minor tweaks and updated each commit message to explain why
the transformation is safe. Largely the changes should have no functional
effect, but in a couple of cases there is a (benign and/or desirable)
functional change, which is described in the relevant commit message.

To make it possible for get_wchan() to use arch_stack_walk(), and to correct
the expected behaviour of stack_trace_consume_entry_nosched() and
stack_trace_save_tsk(), we need to mark arm64's __switch_to() as __sched, for
which I've added a preparatory patch.

Currently this is based on the arm64 for-next/fixes branch, as the series
depends on a patch making arm64 using HAVE_FUNCTION_GRAPH_RET_ADDR_PTR:

  https://lore.kernel.org/all/20211027132529.30027-1-mark.rutland@arm.com/

I expect that this will be part of v5.16-rc2, and intend to rebase the series
once that's tagged.

Thanks,
Mark.

Madhavan T. Venkataraman (5):
  arm64: Make perf_callchain_kernel() use arch_stack_walk()
  arm64: Make __get_wchan() use arch_stack_walk()
  arm64: Make return_address() use arch_stack_walk()
  arm64: Make profile_pc() use arch_stack_walk()
  arm64: Make dump_backtrace() use arch_stack_walk()

Mark Rutland (3):
  arm64: Add comment for stack_info::kr_cur
  arm64: Mark __switch_to() as __sched
  arm64: Make some stacktrace functions private

Peter Zijlstra (1):
  arch: Make ARCH_STACKWALK independent of STACKTRACE

 arch/arm64/include/asm/stacktrace.h | 10 +++----
 arch/arm64/kernel/perf_callchain.c  | 13 ++------
 arch/arm64/kernel/process.c         | 44 ++++++++++++++++-----------
 arch/arm64/kernel/return_address.c  |  6 +---
 arch/arm64/kernel/stacktrace.c      | 60 ++++++++-----------------------------
 arch/arm64/kernel/time.c            | 23 +++++++-------
 arch/powerpc/kernel/Makefile        |  3 +-
 arch/riscv/kernel/stacktrace.c      |  4 ---
 arch/s390/kernel/Makefile           |  3 +-
 arch/x86/kernel/Makefile            |  2 +-
 include/linux/stacktrace.h          | 35 +++++++++++-----------
 11 files changed, 79 insertions(+), 124 deletions(-)

-- 
2.11.0


             reply	other threads:[~2021-11-17 14:07 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-17 14:07 Mark Rutland [this message]
2021-11-17 14:07 ` [PATCH 1/9] arch: Make ARCH_STACKWALK independent of STACKTRACE Mark Rutland
2021-11-17 14:07 ` [PATCH 2/9] arm64: Add comment for stack_info::kr_cur Mark Rutland
2021-11-17 15:23   ` Mark Brown
2021-11-18 22:25   ` Masami Hiramatsu
2021-11-23 11:47   ` Mark Rutland
2021-11-17 14:07 ` [PATCH 3/9] arm64: Mark __switch_to() as __sched Mark Rutland
2021-11-17 15:42   ` Mark Brown
2021-11-17 14:07 ` [PATCH 4/9] arm64: Make perf_callchain_kernel() use arch_stack_walk() Mark Rutland
2021-11-17 14:07 ` [PATCH 5/9] arm64: Make __get_wchan() " Mark Rutland
2021-11-17 15:50   ` Mark Brown
2021-11-17 14:07 ` [PATCH 6/9] arm64: Make return_address() " Mark Rutland
2021-11-17 14:07 ` [PATCH 7/9] arm64: Make profile_pc() " Mark Rutland
2021-11-17 15:31   ` Mark Brown
2021-11-17 14:07 ` [PATCH 8/9] arm64: Make dump_backtrace() " Mark Rutland
2021-11-17 15:36   ` Mark Brown
2021-11-17 14:07 ` [PATCH 9/9] arm64: Make some stacktrace functions private Mark Rutland
2021-11-17 15:39   ` Mark Brown

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=20211117140737.44420-1-mark.rutland@arm.com \
    --to=mark.rutland@arm.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=borntraeger@de.ibm.com \
    --cc=bp@alien8.de \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=madvenka@linux.microsoft.com \
    --cc=mhiramat@kernel.org \
    --cc=mingo@redhat.com \
    --cc=mpe@ellerman.id.au \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=will@kernel.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

all inboxes | Powered by JetHome®