Forgot the attachment :-(
[EMAIL PROTECTED] wrote: > APIC_TMCCT is a dynamically running count which always > need to be recalculated at the time it is read. Setting > intermediate value is meaningless. > > Signed-off-by: Yaozu (Eddie) Dong <[EMAIL PROTECTED]> > > > diff --git a/drivers/kvm/lapic.c b/drivers/kvm/lapic.c > index d59b69f..fc53e88 100644 > --- a/drivers/kvm/lapic.c > +++ b/drivers/kvm/lapic.c > @@ -445,7 +445,7 @@ static u32 apic_get_tmcct(struct kvm_lapic *apic) > { u32 counter_passed; > ktime_t passed, now = apic->timer.dev.base->get_time(); > - u32 tmcct = apic_get_reg(apic, APIC_TMCCT); > + u32 tmcct = apic_get_reg(apic, APIC_TMICT); > > ASSERT(apic != NULL); > > @@ -474,9 +474,6 @@ static u32 apic_get_tmcct(struct kvm_lapic *apic) > } while (tmcct <= 0); } > > - apic->timer.last_update = now; > - apic_set_reg(apic, APIC_TMCCT, tmcct); > - > return tmcct; > } > > @@ -633,7 +630,6 @@ static void apic_mmio_write(struct kvm_io_device > *this, u32 offset; > > apic_set_reg(apic, APIC_TMICT, val); > - apic_set_reg(apic, APIC_TMCCT, val); > apic->timer.last_update = now; > offset = > APIC_BUS_CYCLE_NS * apic->timer.divide_count * val; > @@ -815,7 +811,6 @@ static void lapic_reset(struct kvm_vcpu *vcpu) > apic_set_reg(apic, APIC_ICR2, 0); > apic_set_reg(apic, APIC_TDCR, 0); > apic_set_reg(apic, APIC_TMICT, 0); > - apic_set_reg(apic, APIC_TMCCT, 0); > for (i = 0; i < 8; i++) { > apic_set_reg(apic, APIC_IRR + 0x10 * i, 0); > apic_set_reg(apic, APIC_ISR + 0x10 * i, 0); > @@ -886,13 +881,10 @@ static int __apic_timer_fn(struct > kvm_lapic *apic) > u32 offset; > u32 tmict = apic_get_reg(apic, APIC_TMICT); > > - apic_set_reg(apic, APIC_TMCCT, tmict); > offset = APIC_BUS_CYCLE_NS * apic->timer.divide_count * > tmict; > > result = 1; > apic->timer.dev.expires = ktime_add_ns(now, offset); > - } else { > - apic_set_reg(apic, APIC_TMCCT, 0); > } > > return result; > @@ -996,7 +988,6 @@ void kvm_apic_post_state_restore(struct kvm_vcpu > *vcpu) MSR_IA32_APICBASE_BASE; > apic_set_reg(apic, APIC_LVR, APIC_VERSION); > val = apic_get_reg(apic, APIC_TMICT); > - apic_set_reg(apic, APIC_TMCCT, val); > apic_update_ppr(apic); > > /* TODO: following code can be in a common API */ > > --------------------------------------------------------------- > ---------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a > browser. Download your FREE copy of Splunk now >> > http://get.splunk.com/ _______________________________________________ > kvm-devel mailing list > kvm-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/kvm-devel
apic-timer-tmcct.patch
Description: apic-timer-tmcct.patch
------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel