Lines Matching defs:cpu
236 kprintf("%s: cpu %d pmap %x\n", \
410 * Because the page tables (top 3 levels) are mapped into per cpu windows,
425 * associated with this cpu... pre-emption or interrupts
523 * Initialize the per-cpu, TLB-related fields.
558 pmap_cpu_high_shared_remap(int cpu, enum high_cpu_types e, vm_offset_t va, int sz)
560 enum high_fixed_addresses a = e + HIGH_CPU_END * cpu;
587 kprintf("HIGH_MEM_BASE 0x%x fixed per-cpu begin 0x%x\n",
1448 * Further notes on per-cpu data used:
1465 * If the cr3 is "inactive" (the cpu is idle or the
1572 * If some cpu is not using the physical pmap pointer that it
2423 * The per-cpu pmap data structure itself.
2554 vm_offset_t pmap_cpu_high_map_vaddr(int cpu, enum high_cpu_types e)
2557 a = e + HIGH_CPU_END * cpu;
2575 /* TLB flush for this page for this cpu */
2583 unsigned int cpu, cpu_bit;
2586 for (cpu = 0, cpu_bit = 1; cpu < real_ncpus; cpu++, cpu_bit <<= 1) {
2588 cpu_NMI_interrupt(cpu);
2597 * - scan through per-cpu data to see which other cpus need to flush
2598 * - send an IPI to each non-idle cpu to be flushed
2607 unsigned int cpu;
2625 for (cpu = 0, cpu_bit = 1; cpu < real_ncpus; cpu++, cpu_bit <<= 1) {
2626 if (!cpu_datap(cpu)->cpu_running)
2628 if ((cpu_datap(cpu)->cpu_task_cr3 == pmap_cr3) ||
2629 (CPU_GET_ACTIVE_CR3(cpu) == pmap_cr3) ||
2632 (!CPU_CR3_IS_ACTIVE(cpu) ||
2633 cpu_datap(cpu)->cpu_task_map == TASK_MAP_64BIT_SHARED))) {
2634 if (cpu == my_cpu) {
2638 cpu_datap(cpu)->cpu_tlb_invalid = TRUE;
2641 if (CPU_CR3_IS_ACTIVE(cpu)) {
2643 i386_signal_cpu(cpu, MP_TLB_FLUSH, ASYNC);
2661 for (cpu = 0, cpu_bit = 1; cpu < real_ncpus; cpu++, cpu_bit <<= 1) {
2663 if (!cpu_datap(cpu)->cpu_running ||
2664 cpu_datap(cpu)->cpu_tlb_invalid == FALSE ||
2665 !CPU_CR3_IS_ACTIVE(cpu)) {