Lines Matching +full:i +full:- +full:tlb +full:- +full:sets

6  * KVM/MIPS TLB handling, this file is part of the Linux host kernel so that
7 * TLB handlers run from KSEG0
26 #include <asm/tlb.h>
42 struct mm_struct *gpa_mm = &vcpu->kvm->arch.gpa_mm; in kvm_mips_get_root_asid()
79 * clear_root_gid() - Set GuestCtl1.RID for normal root operation.
90 * set_root_gid_to_guest_gid() - Set GuestCtl1.RID to match GuestCtl1.ID.
92 * Sets the root GuestID to match the current guest GuestID, for TLB operation
93 * on the GPA->RPA mappings in the root TLB.
96 * possibly longer if TLB registers are modified.
121 /* Set root GuestID for root probe and write of guest TLB entry */ in kvm_vz_host_tlb_inv()
137 * We don't want to get reserved instruction exceptions for missing tlb in kvm_vz_host_tlb_inv()
153 * kvm_vz_guest_tlb_lookup() - Lookup a guest VZ TLB mapping.
155 * @gpa: Guest virtual address in a TLB mapped guest segment.
158 * Converts a guest virtual address in a guest TLB mapped segment to a guest
159 * physical address, by probing the guest TLB.
161 * Returns: 0 if guest TLB mapping exists for @gva. *@gpa will have been
163 * -EFAULT if no guest TLB mapping exists for @gva. *@gpa may not
175 /* Probe the guest TLB for a mapping */ in kvm_vz_guest_tlb_lookup()
177 /* Set root GuestID for root probe of guest TLB entry */ in kvm_vz_guest_tlb_lookup()
198 return -EFAULT; in kvm_vz_guest_tlb_lookup()
201 /* Match! read the TLB entry */ in kvm_vz_guest_tlb_lookup()
225 pagemaskbit = (pagemask ^ (pagemask & (pagemask - 1))) >> 1; in kvm_vz_guest_tlb_lookup()
229 * TLB entry may have become invalid since TLB probe if physical FTLB in kvm_vz_guest_tlb_lookup()
233 return -EFAULT; in kvm_vz_guest_tlb_lookup()
248 * kvm_vz_local_flush_roottlb_all_guests() - Flush all root TLB entries for
251 * Invalidate all entries in root tlb which are GPA mappings.
271 * Invalidate guest entries in root TLB while leaving root entries in kvm_vz_local_flush_roottlb_all_guests()
280 /* Don't invalidate non-guest (RVA) mappings in the root TLB */ in kvm_vz_local_flush_roottlb_all_guests()
304 * kvm_vz_local_flush_guesttlb_all() - Flush all guest TLB entries.
306 * Invalidate all entries in guest tlb irrespective of guestid.
329 /* Inhibit machine check due to multiple matching TLB entries */ in kvm_vz_local_flush_guesttlb_all()
336 /* Invalidate guest entries in guest TLB */ in kvm_vz_local_flush_guesttlb_all()
365 * kvm_vz_save_guesttlb() - Save a range of guest TLB entries.
366 * @buf: Buffer to write TLB entries into.
370 * Save a range of guest TLB entries. The caller must ensure interrupts are
379 int old_index, i; in kvm_vz_save_guesttlb() local
394 /* Read each entry from guest TLB */ in kvm_vz_save_guesttlb()
395 for (i = index; i < end; ++i, ++buf) { in kvm_vz_save_guesttlb()
396 write_gc0_index(i); in kvm_vz_save_guesttlb()
405 buf->tlb_hi = UNIQUE_GUEST_ENTRYHI(i); in kvm_vz_save_guesttlb()
406 buf->tlb_lo[0] = 0; in kvm_vz_save_guesttlb()
407 buf->tlb_lo[1] = 0; in kvm_vz_save_guesttlb()
408 buf->tlb_mask = 0; in kvm_vz_save_guesttlb()
411 buf->tlb_hi = read_gc0_entryhi(); in kvm_vz_save_guesttlb()
412 buf->tlb_lo[0] = read_gc0_entrylo0(); in kvm_vz_save_guesttlb()
413 buf->tlb_lo[1] = read_gc0_entrylo1(); in kvm_vz_save_guesttlb()
414 buf->tlb_mask = read_gc0_pagemask(); in kvm_vz_save_guesttlb()
434 * kvm_vz_load_guesttlb() - Save a range of guest TLB entries.
435 * @buf: Buffer to read TLB entries from.
439 * Load a range of guest TLB entries. The caller must ensure interrupts are
447 int old_index, i; in kvm_vz_load_guesttlb() local
460 /* Write each entry to guest TLB */ in kvm_vz_load_guesttlb()
461 for (i = index; i < end; ++i, ++buf) { in kvm_vz_load_guesttlb()
462 write_gc0_index(i); in kvm_vz_load_guesttlb()
463 write_gc0_entryhi(buf->tlb_hi); in kvm_vz_load_guesttlb()
464 write_gc0_entrylo0(buf->tlb_lo[0]); in kvm_vz_load_guesttlb()
465 write_gc0_entrylo1(buf->tlb_lo[1]); in kvm_vz_load_guesttlb()
466 write_gc0_pagemask(buf->tlb_mask); in kvm_vz_load_guesttlb()
492 /* Set root GuestID for root probe and write of guest TLB entry */ in kvm_loongson_clear_guest_vtlb()
506 int i; in kvm_loongson_clear_guest_ftlb() local
509 /* Set root GuestID for root probe and write of guest TLB entry */ in kvm_loongson_clear_guest_ftlb()
512 for (i = current_cpu_data.tlbsizevtlb; in kvm_loongson_clear_guest_ftlb()
513 i < (current_cpu_data.tlbsizevtlb + in kvm_loongson_clear_guest_ftlb()
515 i++) { in kvm_loongson_clear_guest_ftlb()
516 write_gc0_index(i); in kvm_loongson_clear_guest_ftlb()