Lines Matching refs:lapic_timer

545 	return apic->lapic_timer.timer_mode == APIC_LVT_TIMER_ONESHOT;
550 return apic->lapic_timer.timer_mode == APIC_LVT_TIMER_PERIODIC;
555 return apic->lapic_timer.timer_mode == APIC_LVT_TIMER_TSCDEADLINE;
1539 apic->lapic_timer.period == 0)
1543 remaining = ktime_sub(apic->lapic_timer.target_expiration, now);
1547 ns = mod_64(ktime_to_ns(remaining), apic->lapic_timer.period);
1729 if (apic_lvtt_period(apic) && apic->lapic_timer.period) {
1732 if (apic->lapic_timer.period < min_period) {
1737 apic->lapic_timer.period, min_period);
1738 apic->lapic_timer.period = min_period;
1747 hrtimer_cancel(&apic->lapic_timer.timer);
1749 if (apic->lapic_timer.hv_timer_in_use)
1752 atomic_set(&apic->lapic_timer.pending, 0);
1758 apic->lapic_timer.timer_mode_mask;
1760 if (apic->lapic_timer.timer_mode != timer_mode) {
1765 apic->lapic_timer.period = 0;
1766 apic->lapic_timer.tscdeadline = 0;
1768 apic->lapic_timer.timer_mode = timer_mode;
1798 u64 timer_advance_ns = vcpu->arch.apic->lapic_timer.timer_advance_ns;
1820 u32 timer_advance_ns = apic->lapic_timer.timer_advance_ns;
1842 apic->lapic_timer.timer_advance_ns = timer_advance_ns;
1850 tsc_deadline = apic->lapic_timer.expired_tscdeadline;
1851 apic->lapic_timer.expired_tscdeadline = 0;
1873 vcpu->arch.apic->lapic_timer.expired_tscdeadline &&
1874 vcpu->arch.apic->lapic_timer.timer_advance_ns &&
1882 struct kvm_timer *ktimer = &apic->lapic_timer;
1896 struct kvm_timer *ktimer = &apic->lapic_timer;
1898 if (atomic_read(&apic->lapic_timer.pending))
1918 if (vcpu->arch.apic->lapic_timer.expired_tscdeadline &&
1919 vcpu->arch.apic->lapic_timer.timer_advance_ns)
1925 atomic_inc(&apic->lapic_timer.pending);
1933 struct kvm_timer *ktimer = &apic->lapic_timer;
1954 likely(ns > apic->lapic_timer.timer_advance_ns)) {
1974 apic->lapic_timer.period =
1979 remaining = ktime_sub(apic->lapic_timer.target_expiration, now);
1987 apic->lapic_timer.tscdeadline +=
1990 apic->lapic_timer.target_expiration = ktime_add_ns(now, ns_remaining_new);
2000 apic->lapic_timer.period =
2003 if (!apic->lapic_timer.period) {
2004 apic->lapic_timer.tscdeadline = 0;
2009 deadline = apic->lapic_timer.period;
2017 deadline = apic->lapic_timer.period;
2021 else if (unlikely(deadline > apic->lapic_timer.period)) {
2029 deadline, apic->lapic_timer.period);
2031 deadline = apic->lapic_timer.period;
2036 apic->lapic_timer.tscdeadline = kvm_read_l1_tsc(apic->vcpu, tscl) +
2038 apic->lapic_timer.target_expiration = ktime_add_ns(now, deadline);
2056 apic->lapic_timer.target_expiration =
2057 ktime_add_ns(apic->lapic_timer.target_expiration,
2058 apic->lapic_timer.period);
2059 delta = ktime_sub(apic->lapic_timer.target_expiration, now);
2060 apic->lapic_timer.tscdeadline = kvm_read_l1_tsc(apic->vcpu, tscl) +
2066 if (!apic->lapic_timer.period)
2070 apic->lapic_timer.target_expiration)) {
2079 hrtimer_start(&apic->lapic_timer.timer,
2080 apic->lapic_timer.target_expiration,
2089 return vcpu->arch.apic->lapic_timer.hv_timer_in_use;
2095 WARN_ON(!apic->lapic_timer.hv_timer_in_use);
2097 apic->lapic_timer.hv_timer_in_use = false;
2102 struct kvm_timer *ktimer = &apic->lapic_timer;
2144 struct kvm_timer *ktimer = &apic->lapic_timer;
2147 if (apic->lapic_timer.hv_timer_in_use)
2163 if (!apic_lvtt_period(apic) && atomic_read(&apic->lapic_timer.pending))
2178 if (!apic->lapic_timer.hv_timer_in_use)
2184 if (apic_lvtt_period(apic) && apic->lapic_timer.period) {
2204 if (apic->lapic_timer.hv_timer_in_use)
2213 WARN_ON(!apic->lapic_timer.hv_timer_in_use);
2219 atomic_set(&apic->lapic_timer.pending, 0);
2307 atomic_set(&apic->lapic_timer.pending, 0);
2350 val &= (apic_lvt_mask[0] | apic->lapic_timer.timer_mode_mask);
2370 apic->lapic_timer.period) {
2371 hrtimer_cancel(&apic->lapic_timer.timer);
2476 hrtimer_cancel(&apic->lapic_timer.timer);
2502 return apic->lapic_timer.tscdeadline;
2512 hrtimer_cancel(&apic->lapic_timer.timer);
2513 apic->lapic_timer.tscdeadline = data;
2689 hrtimer_cancel(&apic->lapic_timer.timer);
2726 atomic_set(&apic->lapic_timer.pending, 0);
2758 return atomic_read(&apic->lapic_timer.pending);
2798 struct kvm_lapic *apic = container_of(ktimer, struct kvm_lapic, lapic_timer);
2832 hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC,
2834 apic->lapic_timer.timer.function = apic_timer_fn;
2836 apic->lapic_timer.timer_advance_ns = LAPIC_TIMER_ADVANCE_NS_INIT;
2839 apic->lapic_timer.timer_advance_ns = timer_advance_ns;
2888 if (atomic_read(&apic->lapic_timer.pending) > 0) {
2890 atomic_set(&apic->lapic_timer.pending, 0);
3008 apic->lapic_timer.expired_tscdeadline = 0;
3037 timer = &vcpu->arch.apic->lapic_timer.timer;