lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 19 Aug 2016 21:54:31 -0400 From: Chris Metcalf <cmetcalf@...lanox.com> To: Petr Mladek <pmladek@...e.com> CC: Peter Zijlstra <peterz@...radead.org>, "Rafael J. Wysocki" <rjw@...ysocki.net>, Russell King <linux@....linux.org.uk>, Thomas Gleixner <tglx@...utronix.de>, Aaron Tomlin <atomlin@...hat.com>, Ingo Molnar <mingo@...hat.com>, Andrew Morton <akpm@...l.org>, Daniel Thompson <daniel.thompson@...aro.org>, "Ralf Baechle ralf @ linux-mips . org David S. Miller" <davem@...emloft.net>, <linux-mips@...ux-mips.org>, <sparclinux@...r.kernel.org>, <x86@...nel.org>, <linux-arm-kernel@...ts.infradead.org>, <linux-kernel@...r.kernel.org> Subject: Re: [PATCH v8 1/4] nmi_backtrace: add more trigger_*_cpu_backtrace() methods On 8/18/2016 10:12 AM, Petr Mladek wrote: > On Tue 2016-08-16 15:50:21, Chris Metcalf wrote: >> Currently you can only request a backtrace of either all cpus, or >> all cpus but yourself. It can also be helpful to request a remote >> backtrace of a single cpu, and since we want that, the logical >> extension is to support a cpumask as the underlying primitive. >> >> This change modifies the existing lib/nmi_backtrace.c code to take >> a cpumask as its basic primitive, and modifies the linux/nmi.h code >> to use the new "cpumask" method instead. >> >> The mips code ignored the "include_self" boolean but with this change >> it will now also dump a local backtrace if requested. >> >> diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c >> index 7429ad09fbe3..fea1fa7726e3 100644 >> --- a/arch/mips/kernel/process.c >> +++ b/arch/mips/kernel/process.c >> @@ -569,9 +569,16 @@ static void arch_dump_stack(void *info) >> dump_stack(); >> } >> >> -void arch_trigger_all_cpu_backtrace(bool include_self) >> +void arch_trigger_cpumask_backtrace(const cpumask_t *mask, bool exclude_self) >> { >> - smp_call_function(arch_dump_stack, NULL, 1); >> + long this_cpu = get_cpu(); >> + >> + if (cpumask_test_cpu(this_cpu, mask) && !exclude_self) >> + dump_stack(); > The bit is not cleared in the mask. Therefore arch_dump_stack > will get called for this CPU as well. Actually, and kind of confusingly, smp_call_function_many() never calls the current cpu, even if it is in the mask. So this code is OK as-is. > Otherwise the patch patch looks good to me. Great, thanks! Should I add your Reviewed-by? -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com
Powered by blists - more mailing lists