Lines Matching defs:vcpu

22 void kvmppc_init_timing_stats(struct kvm_vcpu *vcpu)
27 mutex_lock(&vcpu->arch.exit_timing_lock);
29 vcpu->arch.last_exit_type = 0xDEAD;
31 vcpu->arch.timing_count_type[i] = 0;
32 vcpu->arch.timing_max_duration[i] = 0;
33 vcpu->arch.timing_min_duration[i] = 0xFFFFFFFF;
34 vcpu->arch.timing_sum_duration[i] = 0;
35 vcpu->arch.timing_sum_quad_duration[i] = 0;
37 vcpu->arch.timing_last_exit = 0;
38 vcpu->arch.timing_exit.tv64 = 0;
39 vcpu->arch.timing_last_enter.tv64 = 0;
41 mutex_unlock(&vcpu->arch.exit_timing_lock);
44 static void add_exit_timing(struct kvm_vcpu *vcpu, u64 duration, int type)
48 mutex_lock(&vcpu->arch.exit_timing_lock);
50 vcpu->arch.timing_count_type[type]++;
53 old = vcpu->arch.timing_sum_duration[type];
54 vcpu->arch.timing_sum_duration[type] += duration;
55 if (unlikely(old > vcpu->arch.timing_sum_duration[type])) {
58 __func__, old, vcpu->arch.timing_sum_duration[type],
59 type, vcpu->arch.timing_count_type[type]);
63 old = vcpu->arch.timing_sum_quad_duration[type];
64 vcpu->arch.timing_sum_quad_duration[type] += (duration*duration);
65 if (unlikely(old > vcpu->arch.timing_sum_quad_duration[type])) {
69 vcpu->arch.timing_sum_quad_duration[type],
70 type, vcpu->arch.timing_count_type[type]);
74 if (unlikely(duration < vcpu->arch.timing_min_duration[type]))
75 vcpu->arch.timing_min_duration[type] = duration;
76 if (unlikely(duration > vcpu->arch.timing_max_duration[type]))
77 vcpu->arch.timing_max_duration[type] = duration;
79 mutex_unlock(&vcpu->arch.exit_timing_lock);
82 void kvmppc_update_timing_stats(struct kvm_vcpu *vcpu)
84 u64 exit = vcpu->arch.timing_last_exit;
85 u64 enter = vcpu->arch.timing_last_enter.tv64;
88 vcpu->arch.timing_last_exit = vcpu->arch.timing_exit.tv64;
90 if (unlikely(vcpu->arch.last_exit_type == 0xDEAD || exit == 0))
94 add_exit_timing(vcpu, (enter - exit), vcpu->arch.last_exit_type);
96 add_exit_timing(vcpu, (vcpu->arch.timing_last_exit - enter),
131 struct kvm_vcpu *vcpu = m->private;
139 min = vcpu->arch.timing_min_duration[i];
141 max = vcpu->arch.timing_max_duration[i];
143 sum = vcpu->arch.timing_sum_duration[i];
145 sum_quad = vcpu->arch.timing_sum_quad_duration[i];
150 vcpu->arch.timing_count_type[i],
179 struct kvm_vcpu *vcpu = seqf->private;
184 kvmppc_init_timing_stats(vcpu);
207 int kvmppc_create_vcpu_debugfs_e500(struct kvm_vcpu *vcpu,
211 vcpu, &kvmppc_exit_timing_fops);