Displaying 7 results from an estimated 7 matches for "kvm_mmu_nested_pagefault".
2019 Aug 09
0
[RFC PATCH v6 26/92] kvm: x86: add kvm_mmu_nested_pagefault()
...u);
+
struct kvm *(*vm_alloc)(void);
void (*vm_free)(struct kvm *);
int (*vm_init)(struct kvm *kvm);
@@ -1593,4 +1595,6 @@ static inline int kvm_cpu_get_apicid(int mps_cpu)
#define put_smstate(type, buf, offset, val) \
*(type *)((buf) + (offset) - 0x7e00) = val
+bool kvm_mmu_nested_pagefault(struct kvm_vcpu *vcpu);
+
#endif /* _ASM_X86_KVM_HOST_H */
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index ff053f17b8c2..9eaf6cc776a9 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -6169,3 +6169,8 @@ void kvm_mmu_module_exit(void)
unregister_shrinker(&mmu_shrinker);...
2019 Aug 09
0
[RFC PATCH v6 55/92] kvm: introspection: add KVMI_CONTROL_MSR and KVMI_EVENT_MSR
...kvm_vcpu *vcpu);
@@ -1621,6 +1623,8 @@ static inline int kvm_cpu_get_apicid(int mps_cpu)
#define put_smstate(type, buf, offset, val) \
*(type *)((buf) + (offset) - 0x7e00) = val
+void kvm_arch_msr_intercept(struct kvm_vcpu *vcpu, unsigned int msr,
+ bool enable);
bool kvm_mmu_nested_pagefault(struct kvm_vcpu *vcpu);
bool kvm_spt_fault(struct kvm_vcpu *vcpu);
void kvm_control_cr3_write_exiting(struct kvm_vcpu *vcpu, bool enable);
diff --git a/arch/x86/include/asm/kvmi_host.h b/arch/x86/include/asm/kvmi_host.h
index 83a098dc8939..8285d1eb0db6 100644
--- a/arch/x86/include/asm/kvmi_host....
2019 Aug 09
0
[RFC PATCH v6 27/92] kvm: introspection: use page track
...ush_slot = kvmi_track_flush_slot;
+
ikvm->kvm = kvm;
kvm->kvmi = ikvm;
@@ -276,6 +376,179 @@ void kvmi_vcpu_uninit(struct kvm_vcpu *vcpu)
vcpu->kvmi = NULL;
}
+static bool is_pf_of_interest(struct kvm_vcpu *vcpu, gpa_t gpa, u8 access)
+{
+ struct kvm *kvm = vcpu->kvm;
+
+ if (kvm_mmu_nested_pagefault(vcpu))
+ return false;
+
+ /* Have we shown interest in this page? */
+ return kvmi_restricted_access(IKVM(kvm), gpa, access);
+}
+
+static bool __kvmi_track_preread(struct kvm_vcpu *vcpu, gpa_t gpa, gva_t gva,
+ u8 *new, int bytes, struct kvm_page_track_notifier_node *node,
+ bool *data_ready)
+{...
2019 Aug 09
0
[RFC PATCH v6 64/92] kvm: introspection: add single-stepping
...pu *vcpu, bool enable);
void (*cr3_write_exiting)(struct kvm_vcpu *vcpu, bool enable);
bool (*nested_pagefault)(struct kvm_vcpu *vcpu);
bool (*spt_fault)(struct kvm_vcpu *vcpu);
@@ -1628,6 +1629,8 @@ void kvm_arch_msr_intercept(struct kvm_vcpu *vcpu, unsigned int msr,
bool enable);
bool kvm_mmu_nested_pagefault(struct kvm_vcpu *vcpu);
bool kvm_spt_fault(struct kvm_vcpu *vcpu);
+void kvm_set_mtf(struct kvm_vcpu *vcpu, bool enable);
+void kvm_set_interrupt_shadow(struct kvm_vcpu *vcpu, int mask);
void kvm_control_cr3_write_exiting(struct kvm_vcpu *vcpu, bool enable);
#endif /* _ASM_X86_KVM_HOST_H */
di...
2019 Aug 12
1
[RFC PATCH v6 64/92] kvm: introspection: add single-stepping
...void (*cr3_write_exiting)(struct kvm_vcpu *vcpu, bool enable);
> bool (*nested_pagefault)(struct kvm_vcpu *vcpu);
> bool (*spt_fault)(struct kvm_vcpu *vcpu);
> @@ -1628,6 +1629,8 @@ void kvm_arch_msr_intercept(struct kvm_vcpu *vcpu, unsigned int msr,
> bool enable);
> bool kvm_mmu_nested_pagefault(struct kvm_vcpu *vcpu);
> bool kvm_spt_fault(struct kvm_vcpu *vcpu);
> +void kvm_set_mtf(struct kvm_vcpu *vcpu, bool enable);
> +void kvm_set_interrupt_shadow(struct kvm_vcpu *vcpu, int mask);
> void kvm_control_cr3_write_exiting(struct kvm_vcpu *vcpu, bool enable);
>
> #endi...
2019 Aug 09
117
[RFC PATCH v6 00/92] VM introspection
...: add KVMI_GET_VCPU_INFO
kvm: page track: add track_create_slot() callback
kvm: x86: provide all page tracking hooks with the guest virtual
address
kvm: page track: add support for preread, prewrite and preexec
kvm: x86: wire in the preread/prewrite/preexec page trackers
kvm: x86: add kvm_mmu_nested_pagefault()
kvm: introspection: use page track
kvm: x86: consult the page tracking from kvm_mmu_get_page() and
__direct_map()
kvm: introspection: add KVMI_CONTROL_EVENTS
kvm: x86: add kvm_spt_fault()
kvm: introspection: add KVMI_EVENT_PF
kvm: introspection: add KVMI_GET_PAGE_ACCESS
kvm: int...
2019 Aug 09
117
[RFC PATCH v6 00/92] VM introspection
...: add KVMI_GET_VCPU_INFO
kvm: page track: add track_create_slot() callback
kvm: x86: provide all page tracking hooks with the guest virtual
address
kvm: page track: add support for preread, prewrite and preexec
kvm: x86: wire in the preread/prewrite/preexec page trackers
kvm: x86: add kvm_mmu_nested_pagefault()
kvm: introspection: use page track
kvm: x86: consult the page tracking from kvm_mmu_get_page() and
__direct_map()
kvm: introspection: add KVMI_CONTROL_EVENTS
kvm: x86: add kvm_spt_fault()
kvm: introspection: add KVMI_EVENT_PF
kvm: introspection: add KVMI_GET_PAGE_ACCESS
kvm: int...