cregit-Linux how code gets into the kernel

Release 4.15 lib/dump_stack.c

Directory: lib
// SPDX-License-Identifier: GPL-2.0
/*
 * Provide a default dump_stack() function for architectures
 * which don't implement their own.
 */

#include <linux/kernel.h>
#include <linux/export.h>
#include <linux/sched.h>
#include <linux/sched/debug.h>
#include <linux/smp.h>
#include <linux/atomic.h>


static void __dump_stack(void) { dump_stack_print_info(KERN_DEFAULT); show_stack(NULL, NULL); }

Contributors

PersonTokensPropCommitsCommitProp
Tejun Heo945.00%133.33%
Andrew Morton945.00%133.33%
Alex Thorlton210.00%133.33%
Total20100.00%3100.00%

/** * dump_stack - dump the current task information and its stack trace * * Architectures can override this implementation by implementing its own. */ #ifdef CONFIG_SMP static atomic_t dump_lock = ATOMIC_INIT(-1);
asmlinkage __visible void dump_stack(void) { unsigned long flags; int was_locked; int old; int cpu; /* * Permit this cpu to perform nested stack dumps while serialising * against other CPUs */ retry: local_irq_save(flags); cpu = smp_processor_id(); old = atomic_cmpxchg(&dump_lock, -1, cpu); if (old == -1) { was_locked = 0; } else if (old == cpu) { was_locked = 1; } else { local_irq_restore(flags); cpu_relax(); goto retry; } __dump_stack(); if (!was_locked) atomic_set(&dump_lock, -1); local_irq_restore(flags); }

Contributors

PersonTokensPropCommitsCommitProp
Alex Thorlton9081.82%125.00%
Eric Dumazet1816.36%125.00%
Andi Kleen21.82%250.00%
Total110100.00%4100.00%

#else
asmlinkage __visible void dump_stack(void) { __dump_stack(); }

Contributors

PersonTokensPropCommitsCommitProp
Alex Thorlton1083.33%133.33%
Andi Kleen216.67%266.67%
Total12100.00%3100.00%

#endif EXPORT_SYMBOL(dump_stack);

Overall Contributors

PersonTokensPropCommitsCommitProp
Alex Thorlton12668.11%110.00%
Eric Dumazet189.73%110.00%
Andrew Morton158.11%110.00%
Tejun Heo126.49%110.00%
Arnaldo Carvalho de Melo52.70%110.00%
Andi Kleen42.16%220.00%
Ingo Molnar31.62%110.00%
Greg Kroah-Hartman10.54%110.00%
Paul Gortmaker10.54%110.00%
Total185100.00%10100.00%
Directory: lib
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.