[PATCH v5 0/4] improvements to the nmi_backtrace code
Chris Metcalf
cmetcalf at mellanox.com
Wed Jul 13 11:44:17 PDT 2016
Ping!
I just realized that this series [1] hasn't been taken into an upstream tree yet.
It probably makes most sense to go via Andrew's tree, given that that's
where Petr's NMI printk cleanup patches went a couple of months ago, for 4.7.
It seemed like this patch series had reached consensus in its current form.
Andrew, if I rebase this on 4.7, do you want to take it into your tree?
Your concern before was just that it conflicted with Petr's work [2].
Thanks!
[1] http://lkml.kernel.org/g/1459877208-15119-1-git-send-email-cmetcalf@mellanox.com
[2] http://lkml.kernel.org/g/20160229164956.8613016895bef966b6460081@linux-foundation.org
On 4/5/2016 1:26 PM, Chris Metcalf wrote:
> This is just a one-line change to the v4 series, to catch the new arm
> vmlinux-xip.lds.S file, which I missed when I rebased to 4.6 for v4
> (my arm config for testing did not include CONFIG_XIP_KERNEL).
> Thanks to Fengguang Wu and the 0-day test robot for that.
>
> Whose tree would this go through? I have an ack for Peter Z for
> patch 4/4 and no other feedback for patches 1/4 or 2/4; I can
> certainly push 3/4 through the tile tree myself if that helps, though
> my guess is keeping it with the rest of the series makes more sense
> for tile since it doesn't lose any functionality that way.
>
> From the version 1 cover letter:
>
> This patch series modifies the trigger_xxx_backtrace() NMI-based
> remote backtracing code to make it more flexible, and makes a few
> small improvements along the way.
>
> The motivation comes from the task isolation code, where there are
> scenarios where we want to be able to diagnose a case where some cpu
> is about to interrupt a task-isolated cpu. It can be helpful to
> see both where the interrupting cpu is, and also an approximation
> of where the cpu that is being interrupted is. The nmi_backtrace
> framework allows us to discover the stack of the interrupted cpu.
>
> I've tested that the change works as desired on tile, and build-tested
> x86, arm64, and arm. For x86 and arm64 I confirmed that the generic
> cpuidle stuff as well as the architecture-specific routines are in the
> new cpuidle section. For arm I just build-tested it and made sure the
> generic cpuidle routines were in the new cpuidle section, but I didn't
> attempt to tease apart the tangle of platform-specific idle routines
> that arm has and tag them with __cpuidle. That might be more usefully
> done by someone with arm platform experience in a follow-up patch.
>
> I have also pushed it up to kernel.org to pull if that's easier:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile.git nmi-backtrace
>
> The change conflicts with Petr Mladek's NMI printk cleanup patches:
>
> https://lkml.kernel.org/r/1459353210-20260-1-git-send-email-pmladek@suse.com
>
> He has kindly offered to resolve the conflicts.
>
> v5: Add CPUIDLE_TEXT to the new arch/arm/kernel/vmlinux-xip.lds.S
>
> v4: Added some more __cpuidle functions (PeterZ, Rafael Wysocki)
> Rebased to kernel v4.6-rc1
>
> v3: Various improvements to the set of __cpuidle functions;
> Add back in a missing section accidentally removed in modpost.c (PeterZ)
> https://lkml.kernel.org/r/1458667179-19630-1-git-send-email-cmetcalf@mellanox.com
>
> v2: Switch to using __cpuidle tagging, switch S-O-B to Mellanox
> https://lkml.kernel.org/r/1458147733-29338-1-git-send-email-cmetcalf@mellanox.com
>
> Chris Metcalf (4):
> nmi_backtrace: add more trigger_*_cpu_backtrace() methods
> nmi_backtrace: do a local dump_stack() instead of a self-NMI
> arch/tile: adopt the new nmi_backtrace framework
> nmi_backtrace: generate one-line reports for idle cpus
>
> arch/alpha/kernel/vmlinux.lds.S | 1 +
> arch/arc/kernel/vmlinux.lds.S | 1 +
> arch/arm/include/asm/irq.h | 4 +-
> arch/arm/kernel/smp.c | 13 +------
> arch/arm/kernel/vmlinux-xip.lds.S | 1 +
> arch/arm/kernel/vmlinux.lds.S | 1 +
> arch/arm64/kernel/vmlinux.lds.S | 1 +
> arch/arm64/mm/proc.S | 2 +
> arch/avr32/kernel/vmlinux.lds.S | 1 +
> arch/blackfin/kernel/vmlinux.lds.S | 1 +
> arch/c6x/kernel/vmlinux.lds.S | 1 +
> arch/cris/kernel/vmlinux.lds.S | 1 +
> arch/frv/kernel/vmlinux.lds.S | 1 +
> arch/h8300/kernel/vmlinux.lds.S | 1 +
> arch/hexagon/kernel/vmlinux.lds.S | 1 +
> arch/ia64/kernel/vmlinux.lds.S | 1 +
> arch/m32r/kernel/vmlinux.lds.S | 1 +
> arch/m68k/kernel/vmlinux-nommu.lds | 1 +
> arch/m68k/kernel/vmlinux-std.lds | 1 +
> arch/m68k/kernel/vmlinux-sun3.lds | 1 +
> arch/metag/kernel/vmlinux.lds.S | 1 +
> arch/microblaze/kernel/vmlinux.lds.S | 1 +
> arch/mips/kernel/vmlinux.lds.S | 1 +
> arch/mn10300/kernel/vmlinux.lds.S | 1 +
> arch/nios2/kernel/vmlinux.lds.S | 1 +
> arch/openrisc/kernel/vmlinux.lds.S | 1 +
> arch/parisc/kernel/vmlinux.lds.S | 1 +
> arch/powerpc/kernel/vmlinux.lds.S | 1 +
> arch/s390/kernel/vmlinux.lds.S | 1 +
> arch/score/kernel/vmlinux.lds.S | 1 +
> arch/sh/kernel/vmlinux.lds.S | 1 +
> arch/sparc/kernel/vmlinux.lds.S | 1 +
> arch/tile/include/asm/irq.h | 4 +-
> arch/tile/kernel/entry.S | 2 +-
> arch/tile/kernel/pmc.c | 3 --
> arch/tile/kernel/process.c | 72 ++++++++----------------------------
> arch/tile/kernel/traps.c | 7 +++-
> arch/tile/kernel/vmlinux.lds.S | 1 +
> arch/um/kernel/dyn.lds.S | 1 +
> arch/um/kernel/uml.lds.S | 1 +
> arch/unicore32/kernel/vmlinux.lds.S | 1 +
> arch/x86/include/asm/irq.h | 4 +-
> arch/x86/kernel/acpi/cstate.c | 2 +-
> arch/x86/kernel/apic/hw_nmi.c | 6 +--
> arch/x86/kernel/process.c | 4 +-
> arch/x86/kernel/vmlinux.lds.S | 1 +
> arch/xtensa/kernel/vmlinux.lds.S | 3 ++
> drivers/acpi/processor_idle.c | 5 ++-
> drivers/cpuidle/driver.c | 5 ++-
> drivers/idle/intel_idle.c | 4 +-
> include/asm-generic/vmlinux.lds.h | 6 +++
> include/linux/cpu.h | 5 +++
> include/linux/nmi.h | 63 ++++++++++++++++++++++++-------
> kernel/sched/idle.c | 13 ++++++-
> lib/nmi_backtrace.c | 40 +++++++++++++-------
> scripts/mod/modpost.c | 2 +-
> scripts/recordmcount.c | 1 +
> scripts/recordmcount.pl | 1 +
> 58 files changed, 184 insertions(+), 121 deletions(-)
>
--
Chris Metcalf, Mellanox Technologies
http://www.mellanox.com
More information about the linux-arm-kernel
mailing list