Lines Matching refs:arch
27 * Caches the dynamic nanosecond bias in vcpu->arch.timer_dyn_bias.
35 delta = now_ns + vcpu->arch.timer_dyn_bias;
37 if (delta >= vcpu->arch.timer_period) {
39 periods = div64_s64(now_ns, vcpu->arch.timer_period);
40 vcpu->arch.timer_dyn_bias = -periods * vcpu->arch.timer_period;
42 delta = now_ns + vcpu->arch.timer_dyn_bias;
49 return div_u64(delta * vcpu->arch.timer_mhz, MNSEC_PER_SEC);
68 delta = div_u64(stable_timer * MNSEC_PER_SEC, vcpu->arch.timer_mhz);
72 hrtimer_cancel(&vcpu->arch.swtimer);
73 hrtimer_start(&vcpu->arch.swtimer, expire, HRTIMER_MODE_ABS_PINNED);
88 struct loongarch_csrs *csr = vcpu->arch.csr;
90 vcpu->arch.timer_mhz = timer_hz >> 20;
91 vcpu->arch.timer_period = div_u64((u64)MNSEC_PER_SEC * IOCSR_TIMER_MASK, vcpu->arch.timer_mhz);
92 vcpu->arch.timer_dyn_bias = 0;
97 vcpu->arch.timer_bias = ticks - ktime_to_tick(vcpu, now);
98 vcpu->arch.timer_bias &= IOCSR_TIMER_MASK;
116 timer_cfg = kvm_read_sw_gcsr(vcpu->arch.csr, KVM_CSR_TCFG);
118 hrtimer_add_expires_ns(&vcpu->arch.swtimer, timer_cfg & KVM_TCFG_VAL);
132 struct loongarch_csrs *csr = vcpu->arch.csr;
151 saved_ktime = vcpu->arch.stable_ktime_saved;
201 hrtimer_cancel(&vcpu->arch.swtimer);
240 struct loongarch_csrs *csr = vcpu->arch.csr;
256 vcpu->arch.stable_ktime_saved = save_ktime;
272 kvm_write_sw_gcsr(vcpu->arch.csr, KVM_CSR_TCFG, 0);
273 hrtimer_cancel(&vcpu->arch.swtimer);