Linux Kernel
3.7.1
|
#include <linux/interrupt.h>
#include <linux/spinlock.h>
#include <linux/init.h>
#include <linux/jiffies.h>
#include <linux/cpumask.h>
#include <linux/err.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/profile.h>
#include <linux/smp.h>
#include <linux/cpu.h>
#include <asm/tlbflush.h>
#include <asm/bitops.h>
#include <asm/processor.h>
#include <asm/bug.h>
#include <asm/exceptions.h>
#include <asm/hardirq.h>
#include <asm/fpu.h>
#include <asm/mmu_context.h>
#include <asm/thread_info.h>
#include <asm/cpu-regs.h>
#include <asm/intctl-regs.h>
#include "internal.h"
Go to the source code of this file.
Data Structures | |
struct | nmi_call_data_struct |
Macros | |
#define | Dprintk(fmt,...) no_printk(KERN_DEBUG fmt, ##__VA_ARGS__) |
#define | CALL_FUNCTION_NMI_IPI_TIMEOUT 0 |
Functions | |
struct nmi_call_data_struct | __attribute__ ((__aligned__(SMP_CACHE_BYTES))) |
void | send_IPI_self (int irq) |
void | send_IPI_allbutself (int irq) |
void | arch_send_call_function_ipi_mask (const struct cpumask *mask) |
void | arch_send_call_function_single_ipi (int cpu) |
void | smp_send_reschedule (int cpu) |
int | smp_nmi_call_function (smp_call_func_t func, void *info, int wait) |
void | smp_jump_to_debugger (void) |
void | stop_this_cpu (void *unused) |
void | smp_send_stop (void) |
void | smp_nmi_call_function_interrupt (void) |
void __init | smp_init_cpus (void) |
void | smp_prepare_cpu_init (void) |
int __init | start_secondary (void *unused) |
void __init | smp_prepare_cpus (unsigned int max_cpus) |
void __init | smp_cpus_done (unsigned int max_cpus) |
void __devinit | smp_prepare_boot_cpu (void) |
void | initialize_secondary (void) |
int __devinit | __cpu_up (unsigned int cpu, struct task_struct *tidle) |
int | setup_profiling_timer (unsigned int multiplier) |
#define Dprintk | ( | fmt, | |
... | |||
) | no_printk(KERN_DEBUG fmt, ##__VA_ARGS__) |
struct nmi_call_data_struct __attribute__ | ( | (__aligned__(SMP_CACHE_BYTES)) | ) |
int __devinit __cpu_up | ( | unsigned int | cpu, |
struct task_struct * | tidle | ||
) |
smp_jump_to_debugger - Make other CPUs enter the debugger by sending an IPI
Send a non-maskable request to all other CPUs in the system, instructing them to jump into the debugger. The caller is responsible for checking that the other CPUs responded to the instruction.
The caller should make sure that this CPU's debugger IPI is disabled.
int smp_nmi_call_function | ( | smp_call_func_t | func, |
void * | info, | ||
int | wait | ||
) |
smp_nmi_call_function - Send a call function NMI IPI to all CPUs : The function to ask to be run. : The context data to pass to that function. : If true, wait (atomically) until function is run on all CPUs.
Send a non-maskable request to all CPUs in the system, requesting them to run the specified function with the given context data, and, potentially, to wait for completion of that function on all CPUs.
Returns 0 if successful, -ETIMEDOUT if we were asked to wait, but hit the timeout.
cpumask_t cpu_initialized __initdata = CPU_MASK_NONE |
smp_call_func_t func |