diff options
author | Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> | 2010-08-30 06:26:33 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-10-24 04:51:59 -0400 |
commit | 30644b902c5eef5328d37a2e15f1921aaca2588b (patch) | |
tree | e8b00712784cfa6a3f4787443ba3a75eebbefb19 /arch/x86/kvm/mmu_audit.c | |
parent | eb2591865a234c6fb1162085d9b277236fa890b6 (diff) |
KVM: MMU: lower the aduit frequency
The audit is very high overhead, so we need lower the frequency to assure
the guest is running.
Signed-off-by: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/mmu_audit.c')
-rw-r--r-- | arch/x86/kvm/mmu_audit.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu_audit.c b/arch/x86/kvm/mmu_audit.c index 3bde186409bf..bd2b1be7066e 100644 --- a/arch/x86/kvm/mmu_audit.c +++ b/arch/x86/kvm/mmu_audit.c | |||
@@ -17,6 +17,8 @@ | |||
17 | * | 17 | * |
18 | */ | 18 | */ |
19 | 19 | ||
20 | #include <linux/ratelimit.h> | ||
21 | |||
20 | static const char *audit_msg; | 22 | static const char *audit_msg; |
21 | 23 | ||
22 | typedef void (*inspect_spte_fn) (struct kvm_vcpu *vcpu, u64 *sptep, int level); | 24 | typedef void (*inspect_spte_fn) (struct kvm_vcpu *vcpu, u64 *sptep, int level); |
@@ -228,6 +230,11 @@ static void audit_vcpu_spte(struct kvm_vcpu *vcpu) | |||
228 | 230 | ||
229 | static void kvm_mmu_audit(void *ignore, struct kvm_vcpu *vcpu, int audit_point) | 231 | static void kvm_mmu_audit(void *ignore, struct kvm_vcpu *vcpu, int audit_point) |
230 | { | 232 | { |
233 | static DEFINE_RATELIMIT_STATE(ratelimit_state, 5 * HZ, 10); | ||
234 | |||
235 | if (!__ratelimit(&ratelimit_state)) | ||
236 | return; | ||
237 | |||
231 | audit_msg = audit_point_name[audit_point]; | 238 | audit_msg = audit_point_name[audit_point]; |
232 | audit_all_active_sps(vcpu->kvm); | 239 | audit_all_active_sps(vcpu->kvm); |
233 | audit_vcpu_spte(vcpu); | 240 | audit_vcpu_spte(vcpu); |