search for: uc_wbinvd_and_timer_adjust

Displaying 1 result from an estimated 1 matches for "uc_wbinvd_and_timer_adjust".

2013 Nov 25
14
[PATCH] VMX: wbinvd when vmentry under UC
...r ... then vmentry and wbinvd again; + * + * This loop will run again and again, until lucky enough wbinvd + * happens not to expire timer and then loop break, usually it would + * occur 10K~60K times, blocking guest 10s~60s. + * + * reprogram timer to avoid dead_like_loop. + */ +static inline void uc_wbinvd_and_timer_adjust(void) +{ + reprogram_timer(0); + wbinvd(); + reprogram_timer(NOW() + MILLISECS(1)); +} + void vmx_vmenter_helper(const struct cpu_user_regs *regs) { struct vcpu *curr = current; @@ -2974,6 +2991,13 @@ void vmx_vmenter_helper(const struct cpu_user_regs *regs) struct hvm_vcpu_asi...