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
> [email protected]
> 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 [email protected] https://lists.sourceforge.net/lists/listinfo/kvm-devel
