Lines Matching defs:cpu
579 kprintf("%s: cpu %d pmap %x\n", \
802 * Because the page tables (top 3 levels) are mapped into per cpu windows,
817 * associated with this cpu... pre-emption or interrupts
965 * Initialize the per-cpu, TLB-related fields.
1000 pmap_cpu_high_shared_remap(int cpu, enum high_cpu_types e, vm_offset_t va, int sz)
1002 enum high_fixed_addresses a = e + HIGH_CPU_END * cpu;
1032 kprintf("HIGH_MEM_BASE 0x%x fixed per-cpu begin 0x%x\n",
1716 * Further notes on per-cpu data used:
1733 * If the cr3 is "inactive" (the cpu is idle or the
1832 * If some cpu is not using the physical pmap pointer that it
4185 * The per-cpu pmap data structure itself.
4469 vm_offset_t pmap_cpu_high_map_vaddr(int cpu, enum high_cpu_types e)
4472 a = e + HIGH_CPU_END * cpu;
4490 /* TLB flush for this page for this cpu */
4498 unsigned int cpu, cpu_bit;
4501 for (cpu = 0, cpu_bit = 1; cpu < real_ncpus; cpu++, cpu_bit <<= 1) {
4503 cpu_NMI_interrupt(cpu);
4513 * - scan through per-cpu data to see which other cpus need to flush
4514 * - send an IPI to each non-idle cpu to be flushed
4523 unsigned int cpu;
4541 for (cpu = 0, cpu_bit = 1; cpu < real_ncpus; cpu++, cpu_bit <<= 1) {
4542 if (!cpu_datap(cpu)->cpu_running)
4544 if ((cpu_datap(cpu)->cpu_task_cr3 == pmap_cr3) ||
4545 (CPU_GET_ACTIVE_CR3(cpu) == pmap_cr3) ||
4548 (!CPU_CR3_IS_ACTIVE(cpu) ||
4549 cpu_datap(cpu)->cpu_task_map == TASK_MAP_64BIT_SHARED))) {
4550 if (cpu == my_cpu) {
4554 cpu_datap(cpu)->cpu_tlb_invalid = TRUE;
4557 if (CPU_CR3_IS_ACTIVE(cpu)) {
4559 i386_signal_cpu(cpu, MP_TLB_FLUSH, ASYNC);
4581 "cpu(s) failing to respond to interrupts, pmap=%p cpus_to_respond=0x%lx",
4585 for (cpu = 0, cpu_bit = 1; cpu < real_ncpus; cpu++, cpu_bit <<= 1) {
4587 if (!cpu_datap(cpu)->cpu_running ||
4588 cpu_datap(cpu)->cpu_tlb_invalid == FALSE ||
4589 !CPU_CR3_IS_ACTIVE(cpu)) {