Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
smp_64.c File Reference
#include <linux/export.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/pagemap.h>
#include <linux/threads.h>
#include <linux/smp.h>
#include <linux/interrupt.h>
#include <linux/kernel_stat.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/spinlock.h>
#include <linux/fs.h>
#include <linux/seq_file.h>
#include <linux/cache.h>
#include <linux/jiffies.h>
#include <linux/profile.h>
#include <linux/bootmem.h>
#include <linux/vmalloc.h>
#include <linux/ftrace.h>
#include <linux/cpu.h>
#include <linux/slab.h>
#include <asm/head.h>
#include <asm/ptrace.h>
#include <linux/atomic.h>
#include <asm/tlbflush.h>
#include <asm/mmu_context.h>
#include <asm/cpudata.h>
#include <asm/hvtramp.h>
#include <asm/io.h>
#include <asm/timer.h>
#include <asm/irq.h>
#include <asm/irq_regs.h>
#include <asm/page.h>
#include <asm/pgtable.h>
#include <asm/oplib.h>
#include <asm/uaccess.h>
#include <asm/starfire.h>
#include <asm/tlb.h>
#include <asm/sections.h>
#include <asm/prom.h>
#include <asm/mdesc.h>
#include <asm/ldc.h>
#include <asm/hypervisor.h>
#include <asm/pcr.h>
#include "cpumap.h"

Go to the source code of this file.


#define MASTER   0
#define SLAVE   (SMP_CACHE_BYTES/sizeof(unsigned long))
#define NUM_ROUNDS   64 /* magic value */
#define NUM_ITERS   5 /* likewise */
#define DEBUG_TICK_SYNC   0


 DEFINE_PER_CPU (cpumask_t, cpu_sibling_map)
 EXPORT_PER_CPU_SYMBOL (cpu_sibling_map)
 EXPORT_SYMBOL (cpu_core_map)
void smp_info (struct seq_file *m)
void smp_bogo (struct seq_file *m)
void setup_sparc64_timer (void)
void __cpuinit smp_callin (void)
void cpu_panic (void)
void smp_synchronize_tick_client (void)
void arch_send_call_function_ipi_mask (const struct cpumask *mask)
void arch_send_call_function_single_ipi (int cpu)
void __irq_entry smp_call_function_client (int irq, struct pt_regs *regs)
void __irq_entry smp_call_function_single_client (int irq, struct pt_regs *regs)
void smp_tsb_sync (struct mm_struct *mm)
void smp_flush_dcache_page_impl (struct page *page, int cpu)
void flush_dcache_page_all (struct mm_struct *mm, struct page *page)
void __irq_entry smp_new_mmu_context_version_client (int irq, struct pt_regs *regs)
void smp_new_mmu_context_version (void)
void smp_fetch_global_regs (void)
void smp_fetch_global_pmu (void)
void smp_flush_tlb_mm (struct mm_struct *mm)
void smp_flush_tlb_pending (struct mm_struct *mm, unsigned long nr, unsigned long *vaddrs)
void smp_flush_tlb_kernel_range (unsigned long start, unsigned long end)
void smp_capture (void)
void smp_release (void)
void prom_world (int)
void __irq_entry smp_penguin_jailcell (int irq, struct pt_regs *regs)
int setup_profiling_timer (unsigned int multiplier)
void __init smp_prepare_cpus (unsigned int max_cpus)
void __devinit smp_prepare_boot_cpu (void)
void __init smp_setup_processor_id (void)
void __devinit smp_fill_in_sib_core_maps (void)
int __cpuinit __cpu_up (unsigned int cpu, struct task_struct *tidle)
void __init smp_cpus_done (unsigned int max_cpus)
void smp_send_reschedule (int cpu)
void __irq_entry smp_receive_signal_client (int irq, struct pt_regs *regs)
void smp_send_stop (void)
void __init setup_per_cpu_areas (void)


int sparc64_multi_core __read_mostly
unsigned long sparc64_cpu_startup
unsigned long xcall_sync_tick
unsigned long xcall_call_function
unsigned long xcall_call_function_single
unsigned long xcall_flush_tlb_mm
unsigned long xcall_flush_tlb_pending
unsigned long xcall_flush_tlb_kernel_range
unsigned long xcall_fetch_glob_regs
unsigned long xcall_fetch_glob_pmu
unsigned long xcall_fetch_glob_pmu_n4
unsigned long xcall_receive_signal
unsigned long xcall_new_mmu_context_version
unsigned long xcall_flush_dcache_page_spitfire
unsigned long xcall_capture

Macro Definition Documentation

#define DEBUG_TICK_SYNC   0

Definition at line 154 of file smp_64.c.

#define MASTER   0

Definition at line 145 of file smp_64.c.

#define NUM_ITERS   5 /* likewise */

Definition at line 149 of file smp_64.c.

#define NUM_ROUNDS   64 /* magic value */

Definition at line 148 of file smp_64.c.

#define SLAVE   (SMP_CACHE_BYTES/sizeof(unsigned long))

Definition at line 146 of file smp_64.c.

Function Documentation

int __cpuinit __cpu_up ( unsigned int  cpu,
struct task_struct tidle 

Definition at line 1234 of file smp_64.c.

void arch_send_call_function_ipi_mask ( const struct cpumask mask)

Definition at line 806 of file smp_64.c.

void arch_send_call_function_single_ipi ( int  cpu)

Definition at line 813 of file smp_64.c.

void cpu_panic ( void  )

Definition at line 132 of file smp_64.c.

DEFINE_PER_CPU ( cpumask_t  ,
EXPORT_PER_CPU_SYMBOL ( cpu_sibling_map  )
EXPORT_SYMBOL ( cpu_core_map  )
void flush_dcache_page_all ( struct mm_struct mm,
struct page page 

Definition at line 926 of file smp_64.c.

void prom_world ( int  )

Definition at line 624 of file init_64.c.

void __init setup_per_cpu_areas ( void  )

Definition at line 1458 of file smp_64.c.

int setup_profiling_timer ( unsigned int  multiplier)

Definition at line 1174 of file smp_64.c.

void setup_sparc64_timer ( void  )

Definition at line 749 of file time_64.c.

void smp_bogo ( struct seq_file m)

Definition at line 76 of file smp_64.c.

void __irq_entry smp_call_function_client ( int  irq,
struct pt_regs regs 

Definition at line 819 of file smp_64.c.

void __irq_entry smp_call_function_single_client ( int  irq,
struct pt_regs regs 

Definition at line 825 of file smp_64.c.

void __cpuinit smp_callin ( void  )

Definition at line 90 of file smp_64.c.

void smp_capture ( void  )

Definition at line 1114 of file smp_64.c.

void __init smp_cpus_done ( unsigned int  max_cpus)

Definition at line 1359 of file smp_64.c.

void smp_fetch_global_pmu ( void  )

Definition at line 1005 of file smp_64.c.

void smp_fetch_global_regs ( void  )

Definition at line 1000 of file smp_64.c.

void __devinit smp_fill_in_sib_core_maps ( void  )

Definition at line 1197 of file smp_64.c.

void smp_flush_dcache_page_impl ( struct page page,
int  cpu 

Definition at line 886 of file smp_64.c.

void smp_flush_tlb_kernel_range ( unsigned long  start,
unsigned long  end 

Definition at line 1094 of file smp_64.c.

void smp_flush_tlb_mm ( struct mm_struct mm)

Definition at line 1057 of file smp_64.c.

void smp_flush_tlb_pending ( struct mm_struct mm,
unsigned long  nr,
unsigned long vaddrs 

Definition at line 1077 of file smp_64.c.

void smp_info ( struct seq_file m)

Definition at line 67 of file smp_64.c.

void smp_new_mmu_context_version ( void  )

Definition at line 988 of file smp_64.c.

void __irq_entry smp_new_mmu_context_version_client ( int  irq,
struct pt_regs regs 

Definition at line 962 of file smp_64.c.

void __irq_entry smp_penguin_jailcell ( int  irq,
struct pt_regs regs 

Definition at line 1155 of file smp_64.c.

void __devinit smp_prepare_boot_cpu ( void  )

Definition at line 1183 of file smp_64.c.

void __init smp_prepare_cpus ( unsigned int  max_cpus)

Definition at line 1179 of file smp_64.c.

void __irq_entry smp_receive_signal_client ( int  irq,
struct pt_regs regs 

Definition at line 1370 of file smp_64.c.

void smp_release ( void  )

Definition at line 1136 of file smp_64.c.

void smp_send_reschedule ( int  cpu)

Definition at line 1364 of file smp_64.c.

void smp_send_stop ( void  )

Definition at line 1379 of file smp_64.c.

void __init smp_setup_processor_id ( void  )

Definition at line 1187 of file smp_64.c.

void smp_synchronize_tick_client ( void  )

Definition at line 186 of file smp_64.c.

void smp_tsb_sync ( struct mm_struct mm)

Definition at line 846 of file smp_64.c.

Variable Documentation

cpumask_t cpu_core_map [NR_CPUS] __read_mostly
Initial value:
{ [0 ... NR_CPUS-1] = CPU_MASK_NONE }

Definition at line 56 of file smp_64.c.

unsigned long sparc64_cpu_startup
unsigned long xcall_call_function
unsigned long xcall_call_function_single
unsigned long xcall_capture
unsigned long xcall_fetch_glob_pmu
unsigned long xcall_fetch_glob_pmu_n4
unsigned long xcall_fetch_glob_regs
unsigned long xcall_flush_dcache_page_spitfire
unsigned long xcall_flush_tlb_kernel_range
unsigned long xcall_flush_tlb_mm
unsigned long xcall_flush_tlb_pending
unsigned long xcall_new_mmu_context_version
unsigned long xcall_receive_signal
unsigned long xcall_sync_tick