cregit-Linux how code gets into the kernel

Release 4.18 lib/smp_processor_id.c

Directory: lib
// SPDX-License-Identifier: GPL-2.0
/*
 * lib/smp_processor_id.c
 *
 * DEBUG_PREEMPT variant of smp_processor_id().
 */
#include <linux/export.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); printk("caller is %pS\n", __builtin_return_address(0)); dump_stack(); out_enable: preempt_enable_no_resched_notrace(); out: return this_cpu; }

Contributors

PersonTokensPropCommitsCommitProp
Ingo Molnar10076.34%218.18%
Christoph Lameter1612.21%19.09%
Mike Travis32.29%19.09%
Sergey Senozhatsky21.53%19.09%
Steven Rostedt21.53%19.09%
Thomas Gleixner21.53%19.09%
Rusty Russell21.53%19.09%
Andrew Morton21.53%19.09%
Peter Zijlstra10.76%19.09%
Arnaldo Carvalho de Melo10.76%19.09%
Total131100.00%11100.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 Molnar11059.78%214.29%
Christoph Lameter5630.43%17.14%
Mike Travis31.63%17.14%
Andrew Morton21.09%17.14%
Sergey Senozhatsky21.09%17.14%
Steven Rostedt21.09%17.14%
Thomas Gleixner21.09%17.14%
Rusty Russell21.09%17.14%
Greg Kroah-Hartman10.54%17.14%
Peter Zijlstra10.54%17.14%
Arnaldo Carvalho de Melo10.54%17.14%
Paul Gortmaker10.54%17.14%
Tim Schmielau10.54%17.14%
Total184100.00%14100.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.