Lines Matching full:cpu

21 #include <asm/cpu.h>
69 unsigned int cpu; in pcpu_need_numa() local
71 for_each_possible_cpu(cpu) { in pcpu_need_numa()
72 int node = early_cpu_to_node(cpu); in pcpu_need_numa()
87 * @cpu: cpu to allocate for
91 * Allocate @size bytes aligned at @align for cpu @cpu. This wrapper
98 static void * __init pcpu_alloc_bootmem(unsigned int cpu, unsigned long size, in pcpu_alloc_bootmem() argument
103 int node = early_cpu_to_node(cpu); in pcpu_alloc_bootmem()
108 pr_info("cpu %d has no node %d or node-local memory\n", in pcpu_alloc_bootmem()
109 cpu, node); in pcpu_alloc_bootmem()
110 pr_debug("per cpu data for cpu%d %lu bytes at %016lx\n", in pcpu_alloc_bootmem()
111 cpu, size, __pa(ptr)); in pcpu_alloc_bootmem()
115 pr_debug("per cpu data for cpu%d %lu bytes on node%d at %016lx\n", in pcpu_alloc_bootmem()
116 cpu, size, node, __pa(ptr)); in pcpu_alloc_bootmem()
127 static void * __init pcpu_fc_alloc(unsigned int cpu, size_t size, size_t align) in pcpu_fc_alloc() argument
129 return pcpu_alloc_bootmem(cpu, size, align); in pcpu_fc_alloc()
154 static inline void setup_percpu_segment(int cpu) in setup_percpu_segment() argument
159 pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF, in setup_percpu_segment()
162 write_gdt_entry(get_cpu_gdt_table(cpu), in setup_percpu_segment()
169 unsigned int cpu; in setup_per_cpu_areas() local
209 for_each_possible_cpu(cpu) { in setup_per_cpu_areas()
210 per_cpu_offset(cpu) = delta + pcpu_unit_offsets[cpu]; in setup_per_cpu_areas()
211 per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu); in setup_per_cpu_areas()
212 per_cpu(cpu_number, cpu) = cpu; in setup_per_cpu_areas()
213 setup_percpu_segment(cpu); in setup_per_cpu_areas()
214 setup_stack_canary_segment(cpu); in setup_per_cpu_areas()
217 * initial arrays to the per cpu data areas. These in setup_per_cpu_areas()
223 per_cpu(x86_cpu_to_apicid, cpu) = in setup_per_cpu_areas()
224 early_per_cpu_map(x86_cpu_to_apicid, cpu); in setup_per_cpu_areas()
225 per_cpu(x86_bios_cpu_apicid, cpu) = in setup_per_cpu_areas()
226 early_per_cpu_map(x86_bios_cpu_apicid, cpu); in setup_per_cpu_areas()
229 per_cpu(x86_cpu_to_logical_apicid, cpu) = in setup_per_cpu_areas()
230 early_per_cpu_map(x86_cpu_to_logical_apicid, cpu); in setup_per_cpu_areas()
233 per_cpu(irq_stack_ptr, cpu) = in setup_per_cpu_areas()
234 per_cpu(irq_stack_union.irq_stack, cpu) + in setup_per_cpu_areas()
238 per_cpu(x86_cpu_to_node_map, cpu) = in setup_per_cpu_areas()
239 early_per_cpu_map(x86_cpu_to_node_map, cpu); in setup_per_cpu_areas()
241 * Ensure that the boot cpu numa_node is correct when the boot in setup_per_cpu_areas()
242 * cpu is on a node that doesn't have memory installed. in setup_per_cpu_areas()
246 * So set them all (boot cpu and all APs). in setup_per_cpu_areas()
248 set_cpu_numa_node(cpu, early_cpu_to_node(cpu)); in setup_per_cpu_areas()
251 * Up to this point, the boot CPU has been using .init.data in setup_per_cpu_areas()
252 * area. Reload any changed state for the boot CPU. in setup_per_cpu_areas()
254 if (!cpu) in setup_per_cpu_areas()
255 switch_to_new_gdt(cpu); in setup_per_cpu_areas()
273 /* Setup cpu initialized, callin, callout masks */ in setup_per_cpu_areas()