KVM
|
Go to the source code of this file.
Functions | |
static __always_inline u64 | rsvd_bits (int s, int e) |
static gfn_t | kvm_mmu_max_gfn (void) |
static u8 | kvm_get_shadow_phys_bits (void) |
void | kvm_mmu_set_mmio_spte_mask (u64 mmio_value, u64 mmio_mask, u64 access_mask) |
void | kvm_mmu_set_me_spte_mask (u64 me_value, u64 me_mask) |
void | kvm_mmu_set_ept_masks (bool has_ad_bits, bool has_exec_only) |
void | kvm_init_mmu (struct kvm_vcpu *vcpu) |
void | kvm_init_shadow_npt_mmu (struct kvm_vcpu *vcpu, unsigned long cr0, unsigned long cr4, u64 efer, gpa_t nested_cr3) |
void | kvm_init_shadow_ept_mmu (struct kvm_vcpu *vcpu, bool execonly, int huge_page_level, bool accessed_dirty, gpa_t new_eptp) |
bool | kvm_can_do_async_pf (struct kvm_vcpu *vcpu) |
int | kvm_handle_page_fault (struct kvm_vcpu *vcpu, u64 error_code, u64 fault_address, char *insn, int insn_len) |
void | __kvm_mmu_refresh_passthrough_bits (struct kvm_vcpu *vcpu, struct kvm_mmu *mmu) |
int | kvm_mmu_load (struct kvm_vcpu *vcpu) |
void | kvm_mmu_unload (struct kvm_vcpu *vcpu) |
void | kvm_mmu_free_obsolete_roots (struct kvm_vcpu *vcpu) |
void | kvm_mmu_sync_roots (struct kvm_vcpu *vcpu) |
void | kvm_mmu_sync_prev_roots (struct kvm_vcpu *vcpu) |
void | kvm_mmu_track_write (struct kvm_vcpu *vcpu, gpa_t gpa, const u8 *new, int bytes) |
static int | kvm_mmu_reload (struct kvm_vcpu *vcpu) |
static unsigned long | kvm_get_pcid (struct kvm_vcpu *vcpu, gpa_t cr3) |
static unsigned long | kvm_get_active_pcid (struct kvm_vcpu *vcpu) |
static unsigned long | kvm_get_active_cr3_lam_bits (struct kvm_vcpu *vcpu) |
static void | kvm_mmu_load_pgd (struct kvm_vcpu *vcpu) |
static void | kvm_mmu_refresh_passthrough_bits (struct kvm_vcpu *vcpu, struct kvm_mmu *mmu) |
static u8 | permission_fault (struct kvm_vcpu *vcpu, struct kvm_mmu *mmu, unsigned pte_access, unsigned pte_pkey, u64 access) |
bool | __kvm_mmu_honors_guest_mtrrs (bool vm_has_noncoherent_dma) |
static bool | kvm_mmu_honors_guest_mtrrs (struct kvm *kvm) |
void | kvm_zap_gfn_range (struct kvm *kvm, gfn_t gfn_start, gfn_t gfn_end) |
int | kvm_arch_write_log_dirty (struct kvm_vcpu *vcpu) |
int | kvm_mmu_post_init_vm (struct kvm *kvm) |
void | kvm_mmu_pre_destroy_vm (struct kvm *kvm) |
static bool | kvm_shadow_root_allocated (struct kvm *kvm) |
static bool | kvm_memslots_have_rmaps (struct kvm *kvm) |
static gfn_t | gfn_to_index (gfn_t gfn, gfn_t base_gfn, int level) |
static unsigned long | __kvm_mmu_slot_lpages (struct kvm_memory_slot *slot, unsigned long npages, int level) |
static unsigned long | kvm_mmu_slot_lpages (struct kvm_memory_slot *slot, int level) |
static void | kvm_update_page_stats (struct kvm *kvm, int level, int count) |
gpa_t | translate_nested_gpa (struct kvm_vcpu *vcpu, gpa_t gpa, u64 access, struct x86_exception *exception) |
static gpa_t | kvm_translate_gpa (struct kvm_vcpu *vcpu, struct kvm_mmu *mmu, gpa_t gpa, u64 access, struct x86_exception *exception) |
Variables | |
bool __read_mostly | enable_mmio_caching |
u8 __read_mostly | shadow_phys_bits |
#define KVM_MMU_CR4_ROLE_BITS |
#define PT64_NX_MASK (1ULL << PT64_NX_SHIFT) |
#define PT_ACCESSED_MASK (1ULL << PT_ACCESSED_SHIFT) |
#define PT_DIR_PAT_MASK (1ULL << PT_DIR_PAT_SHIFT) |
#define PT_DIRTY_MASK (1ULL << PT_DIRTY_SHIFT) |
#define PT_PAGE_SIZE_MASK (1ULL << PT_PAGE_SIZE_SHIFT) |
#define PT_USER_MASK (1ULL << PT_USER_SHIFT) |
#define PT_WRITABLE_MASK (1ULL << PT_WRITABLE_SHIFT) |
bool __kvm_mmu_honors_guest_mtrrs | ( | bool | vm_has_noncoherent_dma | ) |
void __kvm_mmu_refresh_passthrough_bits | ( | struct kvm_vcpu * | vcpu, |
struct kvm_mmu * | mmu | ||
) |
Definition at line 5284 of file mmu.c.
|
inlinestatic |
|
inlinestatic |
int kvm_arch_write_log_dirty | ( | struct kvm_vcpu * | vcpu | ) |
bool kvm_can_do_async_pf | ( | struct kvm_vcpu * | vcpu | ) |
Definition at line 13317 of file x86.c.
|
inlinestatic |
Definition at line 149 of file mmu.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 135 of file mmu.h.
|
inlinestatic |
int kvm_handle_page_fault | ( | struct kvm_vcpu * | vcpu, |
u64 | error_code, | ||
u64 | fault_address, | ||
char * | insn, | ||
int | insn_len | ||
) |
Definition at line 4540 of file mmu.c.
void kvm_init_mmu | ( | struct kvm_vcpu * | vcpu | ) |
Definition at line 5538 of file mmu.c.
void kvm_init_shadow_ept_mmu | ( | struct kvm_vcpu * | vcpu, |
bool | execonly, | ||
int | huge_page_level, | ||
bool | accessed_dirty, | ||
gpa_t | new_eptp | ||
) |
Definition at line 5458 of file mmu.c.
void kvm_init_shadow_npt_mmu | ( | struct kvm_vcpu * | vcpu, |
unsigned long | cr0, | ||
unsigned long | cr4, | ||
u64 | efer, | ||
gpa_t | nested_cr3 | ||
) |
Definition at line 5407 of file mmu.c.
|
inlinestatic |
void kvm_mmu_free_obsolete_roots | ( | struct kvm_vcpu * | vcpu | ) |
Definition at line 5676 of file mmu.c.
|
inlinestatic |
Definition at line 250 of file mmu.h.
int kvm_mmu_load | ( | struct kvm_vcpu * | vcpu | ) |
Definition at line 5588 of file mmu.c.
|
inlinestatic |
|
inlinestatic |
int kvm_mmu_post_init_vm | ( | struct kvm * | kvm | ) |
Definition at line 7279 of file mmu.c.
void kvm_mmu_pre_destroy_vm | ( | struct kvm * | kvm | ) |
|
inlinestatic |
Definition at line 168 of file mmu.h.
|
inlinestatic |
void kvm_mmu_set_ept_masks | ( | bool | has_ad_bits, |
bool | has_exec_only | ||
) |
Definition at line 425 of file spte.c.
void kvm_mmu_set_me_spte_mask | ( | u64 | me_value, |
u64 | me_mask | ||
) |
void kvm_mmu_set_mmio_spte_mask | ( | u64 | mmio_value, |
u64 | mmio_mask, | ||
u64 | access_mask | ||
) |
|
inlinestatic |
void kvm_mmu_sync_prev_roots | ( | struct kvm_vcpu * | vcpu | ) |
Definition at line 4062 of file mmu.c.
void kvm_mmu_sync_roots | ( | struct kvm_vcpu * | vcpu | ) |
Definition at line 4021 of file mmu.c.
void kvm_mmu_track_write | ( | struct kvm_vcpu * | vcpu, |
gpa_t | gpa, | ||
const u8 * | new, | ||
int | bytes | ||
) |
Definition at line 5781 of file mmu.c.
void kvm_mmu_unload | ( | struct kvm_vcpu * | vcpu | ) |
|
inlinestatic |
|
inlinestatic |
Definition at line 313 of file mmu.h.
|
inlinestatic |
void kvm_zap_gfn_range | ( | struct kvm * | kvm, |
gfn_t | gfn_start, | ||
gfn_t | gfn_end | ||
) |
Definition at line 6373 of file mmu.c.
|
inlinestatic |
|
static |
gpa_t translate_nested_gpa | ( | struct kvm_vcpu * | vcpu, |
gpa_t | gpa, | ||
u64 | access, | ||
struct x86_exception * | exception | ||
) |
|
extern |
|
extern |