This patch emulate lapic tsc deadline timer for guest: Enumerate tsc deadline timer capability by CPUID; Enable tsc deadline timer mode by lapic MMIO; Start tsc deadline timer by WRMSR; [jan: use do_div()] [avi: fix for !irqchip_in_kernel()] [marcelo: another fix for !irqchip_in_kernel()] Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
		
			
				
	
	
		
			18 lines
		
	
	
	
		
			389 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			389 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
struct kvm_timer {
 | 
						|
	struct hrtimer timer;
 | 
						|
	s64 period; 				/* unit: ns */
 | 
						|
	u32 timer_mode_mask;
 | 
						|
	u64 tscdeadline;
 | 
						|
	atomic_t pending;			/* accumulated triggered timers */
 | 
						|
	bool reinject;
 | 
						|
	struct kvm_timer_ops *t_ops;
 | 
						|
	struct kvm *kvm;
 | 
						|
	struct kvm_vcpu *vcpu;
 | 
						|
};
 | 
						|
 | 
						|
struct kvm_timer_ops {
 | 
						|
	bool (*is_periodic)(struct kvm_timer *);
 | 
						|
};
 | 
						|
 | 
						|
enum hrtimer_restart kvm_timer_fn(struct hrtimer *data);
 |