cregit-Linux how code gets into the kernel

Release 4.13 lib/smp_processor_id.c

Directory: lib
/*
 * lib/smp_processor_id.c
 *
 * DEBUG_PREEMPT variant of smp_processor_id().
 */
#include <linux/export.h>
#include <linux/kallsyms.h>
#include <linux/sched.h>


notrace static unsigned int check_preemption_disabled(const char *what1, const char *what2) { int this_cpu = raw_smp_processor_id(); if (likely(preempt_count())) goto out; if (irqs_disabled()) goto out; /* * Kernel threads bound to a single CPU can safely use * smp_processor_id(): */ if (cpumask_equal(&current->cpus_allowed, cpumask_of(this_cpu))) goto out; /* * It is valid to assume CPU-locality during early bootup: */ if (system_state < SYSTEM_SCHEDULING) goto out; /* * Avoid recursion: */ preempt_disable_notrace(); if (!printk_ratelimit()) goto out_enable; printk(KERN_ERR "BUG: using %s%s() in preemptible [%08x] code: %s/%d\n", what1, what2, preempt_count() - 1, current->comm, current->pid); print_symbol("caller is %s\n", (long)__builtin_return_address(0)); dump_stack(); out_enable: preempt_enable_no_resched_notrace(); out: return this_cpu; }

Contributors

PersonTokensPropCommitsCommitProp
Ingo Molnar10578.36%220.00%
Christoph Lameter1611.94%110.00%
Mike Travis32.24%110.00%
Steven Rostedt21.49%110.00%
Andrew Morton21.49%110.00%
Rusty Russell21.49%110.00%
Thomas Gleixner21.49%110.00%
Peter Zijlstra10.75%110.00%
Arnaldo Carvalho de Melo10.75%110.00%
Total134100.00%10100.00%


notrace unsigned int debug_smp_processor_id(void) { return check_preemption_disabled("smp_processor_id", ""); }

Contributors

PersonTokensPropCommitsCommitProp
Christoph Lameter17100.00%1100.00%
Total17100.00%1100.00%

EXPORT_SYMBOL(debug_smp_processor_id);
notrace void __this_cpu_preempt_check(const char *op) { check_preemption_disabled("__this_cpu_", op); }

Contributors

PersonTokensPropCommitsCommitProp
Christoph Lameter18100.00%1100.00%
Total18100.00%1100.00%

EXPORT_SYMBOL(__this_cpu_preempt_check);

Overall Contributors

PersonTokensPropCommitsCommitProp
Ingo Molnar11661.38%216.67%
Christoph Lameter5629.63%18.33%
Mike Travis31.59%18.33%
Tim Schmielau31.59%18.33%
Thomas Gleixner21.06%18.33%
Rusty Russell21.06%18.33%
Steven Rostedt21.06%18.33%
Andrew Morton21.06%18.33%
Paul Gortmaker10.53%18.33%
Peter Zijlstra10.53%18.33%
Arnaldo Carvalho de Melo10.53%18.33%
Total189100.00%12100.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.