Lines Matching full:guest

44  * Number of guest VTLB entries to use, so we can catch inconsistency between
75 * These Config bits may be writable by the guest:
119 * Permit guest FPU mode changes if FPU is enabled and the relevant in kvm_vz_config5_guest_wrmask()
199 /* VZ guest has already converted gva to gpa */ in kvm_vz_gva_to_gpa_cb()
218 * timer expiry is asynchronous to vcpu execution therefore defer guest in kvm_vz_queue_timer_int_cb()
227 * timer expiry is asynchronous to vcpu execution therefore defer guest in kvm_vz_dequeue_timer_int_cb()
239 * interrupts are asynchronous to vcpu execution therefore defer guest in kvm_vz_queue_io_int_cb()
251 * interrupts are asynchronous to vcpu execution therefore defer guest in kvm_vz_dequeue_io_int_cb()
329 * VZ guest timer handling.
333 * kvm_vz_should_use_htimer() - Find whether to use the VZ hard guest timer.
336 * Returns: true if the VZ GTOffset & real guest CP0_Count should be used
337 * instead of software emulation of guest timer.
369 * Avoid spurious counter interrupts by setting Guest CP0_Count to just in _kvm_vz_restore_stimer()
370 * after Guest CP0_Compare. in _kvm_vz_restore_stimer()
384 * Restore hard timer Guest.Count & Guest.Cause taking care to preserve the
385 * value of Guest.CP0_Cause.TI while restoring Guest.CP0_Cause.
394 * Freeze the soft-timer and sync the guest CP0_Count with it. We do in _kvm_vz_restore_htimer()
402 /* restore guest CP0_Cause, as TI may already be set */ in _kvm_vz_restore_htimer()
450 /* enable guest access to hard timer */ in kvm_vz_acquire_htimer()
459 * _kvm_vz_save_htimer() - Switch to software emulation of guest timer.
464 * Save VZ guest timer state and switch to software emulation of guest CP0
512 * kvm_vz_save_timer() - Save guest timer state.
515 * Save VZ guest timer state and switch to soft guest timer if hard timer was in
525 /* disable guest use of hard timer */ in kvm_vz_save_timer()
541 * kvm_vz_lose_htimer() - Ensure hard guest timer is not in use.
544 * Transfers the state of the hard guest timer to the soft guest timer, leaving
545 * guest state intact so it can continue to be used with the soft timer.
554 /* disable guest use of timer */ in kvm_vz_lose_htimer()
624 * have been caught by the guest, leaving us with: in is_eva_am_mapped()
680 * @gva: Guest virtual address to convert.
681 * @gpa: Output guest physical address.
683 * Convert a guest virtual address (GVA) which is valid according to the guest
684 * context, to a guest physical address (GPA).
739 /* Unmapped, find guest physical address */ in kvm_vz_gva_to_gpa()
785 * @gpa: Output guest physical address.
787 * VZ implementations are permitted to report guest virtual addresses (GVA) in
788 * BadVAddr on a root exception during guest execution, instead of the more
789 * convenient guest physical addresses (GPA). When we get a GVA, this function
790 * converts it to a GPA, taking into account guest segmentation and guest TLB
996 * P5600 generates GPSI on guest MTC0 LLAddr. in kvm_vz_gpsi_cop0()
997 * Only allow the guest to clear LLB. in kvm_vz_gpsi_cop0()
1127 /* So far, other platforms support guest hit cache ops */ in kvm_vz_gpsi_cache()
1187 /* Don't export any other advanced features to guest */ in kvm_vz_gpsi_lwc2()
1311 /* complete MTC0 on behalf of guest and advance EPC */ in kvm_trap_vz_handle_gsfc()
1374 /* Only certain bits are RW to the guest */ in kvm_trap_vz_handle_gsfc()
1424 * Presumably this is due to MC (guest mode change), so lets trace some in kvm_trap_vz_handle_ghfc()
1476 kvm_err("Guest Exception Code: %d not yet handled @ PC: %p, inst: 0x%08x Status: %#x\n", in kvm_trap_vz_no_handler_guest_exit()
1544 * kvm_trap_vz_handle_cop_unusable() - Guest used unusable coprocessor.
1547 * Handle when the guest attempts to use a coprocessor which hasn't been allowed
1550 * Return: value indicating whether to resume the host or the guest
1561 * If guest FPU not present, the FPU operation should have been in kvm_trap_vz_handle_cop_unusable()
1593 * kvm_trap_vz_handle_msa_disabled() - Guest used MSA while disabled in root.
1596 * Handle when the guest attempts to use MSA when it is disabled in the root
1599 * Return: value indicating whether to resume the host or the guest
1605 * If MSA not present or not exposed to guest or FR=0, the MSA operation in kvm_trap_vz_handle_msa_disabled()
1652 kvm_err("Guest Emulate Load from MMIO space failed: PC: %p, BadVaddr: %#lx\n", in kvm_trap_vz_handle_tlb_ld_miss()
1699 kvm_err("Guest Emulate Store to MMIO space failed: PC: %p, BadVaddr: %#lx\n", in kvm_trap_vz_handle_tlb_st_miss()
1801 ret += __arch_hweight8(cpu_data[0].guest.kscratch_mask); in kvm_vz_num_regs()
2031 /* Octeon III has a read-only guest.PRid */ in kvm_vz_get_one_reg()
2274 /* Octeon III has a guest.PRid, but its read-only */ in kvm_vz_set_one_reg()
2433 /* Returns 1 if the guest TLB may be clobbered */
2447 /* This will clobber guest TLB contents too */ in kvm_vz_check_requests()
2482 /* Save wired entries from the guest TLB */ in kvm_vz_vcpu_save_wired()
2496 /* Load wired entries into the guest TLB */ in kvm_vz_vcpu_load_wired()
2509 * Are we entering guest context on a different CPU to last time? in kvm_vz_vcpu_load_tlb()
2510 * If so, the VCPU's guest TLB state on this CPU may be stale. in kvm_vz_vcpu_load_tlb()
2519 * manipulating guest tlb entries. in kvm_vz_vcpu_load_tlb()
2526 * another CPU, as the guest mappings may have changed without in kvm_vz_vcpu_load_tlb()
2542 * The Guest TLB only stores a single guest's TLB state, so in kvm_vz_vcpu_load_tlb()
2545 * We also flush if we've executed on another CPU, as the guest in kvm_vz_vcpu_load_tlb()
2553 * Root ASID dealiases guest GPA mappings in the root TLB. in kvm_vz_vcpu_load_tlb()
2570 * If so, any old guest TLB state may be stale. in kvm_vz_vcpu_load()
2576 * If not, any old guest state from this VCPU will have been clobbered. in kvm_vz_vcpu_load()
2583 * restore wired guest TLB entries (while in guest context). in kvm_vz_vcpu_load()
2598 /* Set MC bit if we want to trace guest mode changes */ in kvm_vz_vcpu_load()
2654 /* restore KScratch registers if enabled in guest */ in kvm_vz_vcpu_load()
2689 /* restore Root.GuestCtl2 from unused Guest guestctl2 register */ in kvm_vz_vcpu_load()
2759 /* save KScratch registers if enabled in guest */ in kvm_vz_vcpu_put()
2786 /* save HTW registers if enabled in guest */ in kvm_vz_vcpu_put()
2797 /* save Root.GuestCtl2 in unused Guest guestctl2 register */ in kvm_vz_vcpu_put()
2806 * kvm_vz_resize_guest_vtlb() - Attempt to resize guest VTLB.
2807 * @size: Number of guest VTLB entries (0 < @size <= root VTLB entries).
2809 * Attempt to resize the guest VTLB by writing guest Config registers. This is
2810 * necessary for cores with a shared root/guest TLB to avoid overlap with wired
2813 * Returns: The resulting guest VTLB size.
2819 /* Write MMUSize - 1 into guest Config registers */ in kvm_vz_resize_guest_vtlb()
2840 * Set Guest.Wired.Limit = 0 (no limit up to Guest.MMUSize-1), unless it in kvm_vz_resize_guest_vtlb()
2841 * would exceed Root.Wired.Limit (clearing Guest.Wired.Wired so write in kvm_vz_resize_guest_vtlb()
2879 /* Set up guest timer/perfcount IRQ lines */ in kvm_vz_hardware_enable()
2902 current_cpu_data.guest.tlbsize = guest_mmu_size; in kvm_vz_hardware_enable()
2904 /* Flush moved entries in new (guest) context */ in kvm_vz_hardware_enable()
2909 * ImgTec cores tend to use a shared root/guest TLB. To avoid in kvm_vz_hardware_enable()
2910 * overlap of root wired and guest entries, the guest TLB may in kvm_vz_hardware_enable()
2916 /* Try switching to maximum guest VTLB size for flush */ in kvm_vz_hardware_enable()
2918 current_cpu_data.guest.tlbsize = guest_mmu_size + ftlb_size; in kvm_vz_hardware_enable()
2928 current_cpu_data.guest.tlbsize = guest_mmu_size + ftlb_size; in kvm_vz_hardware_enable()
2933 * guest. If this ever happens it suggests an asymmetric number in kvm_vz_hardware_enable()
2938 "Available guest VTLB size mismatch")) in kvm_vz_hardware_enable()
2944 * Enable virtualization features granting guest direct control of in kvm_vz_hardware_enable()
2946 * CP0=1: Guest coprocessor 0 context. in kvm_vz_hardware_enable()
2947 * AT=Guest: Guest MMU. in kvm_vz_hardware_enable()
2949 * CF=1: Guest Config registers. in kvm_vz_hardware_enable()
2973 /* clear any pending injected virtual guest interrupts */ in kvm_vz_hardware_enable()
2978 /* Control guest CCA attribute */ in kvm_vz_hardware_enable()
2991 /* Flush any remaining guest TLB entries */ in kvm_vz_hardware_disable()
2997 * Allocate whole TLB for root. Existing guest TLB entries will in kvm_vz_hardware_disable()
2999 * they've already been flushed above while in guest TLB. in kvm_vz_hardware_disable()
3011 current_cpu_data.guest.tlbsize = 0; in kvm_vz_hardware_disable()
3091 * Initialize guest register state to valid architectural reset state. in kvm_vz_vcpu_setup()
3114 /* architecturally writable (e.g. from guest) */ in kvm_vz_vcpu_setup()
3140 /* architecturally writable (e.g. from guest) */ in kvm_vz_vcpu_setup()
3167 /* architecturally writable (e.g. from guest) */ in kvm_vz_vcpu_setup()
3208 /* start with no pending virtual guest interrupts */ in kvm_vz_vcpu_setup()