From: Marcelo Tosatti <mtosatti@redhat.com> To: kvm@vger.kernel.org Cc: Marcelo Tosatti <mtosatti@redhat.com> Subject: [patch 2/8] KVM: move lapic timer ack to EOI handler Date: Sun, 05 Jul 2009 22:55:13 -0300 Message-ID: <20090706015812.572925843@localhost.localdomain> (raw) In-Reply-To: <20090706015511.923596553@localhost.localdomain> [-- Attachment #0: kvm-timer-lapic-ack --] [-- Type: text/plain, Size: 1269 bytes --] lapic timer is acked on interrupt injection, move it to EOI handler. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Index: kvm-new/arch/x86/kvm/lapic.c =================================================================== --- kvm-new.orig/arch/x86/kvm/lapic.c +++ kvm-new/arch/x86/kvm/lapic.c @@ -427,6 +427,7 @@ int kvm_apic_compare_prio(struct kvm_vcp static void apic_set_eoi(struct kvm_lapic *apic) { int vector = apic_find_highest_isr(apic); + int lvt_vector = apic_get_reg(apic, APIC_LVTT) & APIC_VECTOR_MASK; int trigger_mode; /* * Not every write EOI will has corresponding ISR, @@ -435,6 +436,9 @@ static void apic_set_eoi(struct kvm_lapi if (vector == -1) return; + if (vector == lvt_vector) + kvm_timer_ack(&apic->lapic_timer); + apic_clear_vector(vector, apic->regs + APIC_ISR); apic_update_ppr(apic); @@ -982,10 +986,8 @@ void kvm_inject_apic_timer_irqs(struct k { struct kvm_lapic *apic = vcpu->arch.apic; - if (apic && kvm_timer_has_pending(&apic->lapic_timer)) { - if (kvm_apic_local_deliver(apic, APIC_LVTT)) - kvm_timer_ack(&apic->lapic_timer); - } + if (apic && kvm_timer_has_pending(&apic->lapic_timer)) + kvm_apic_local_deliver(apic, APIC_LVTT); } int kvm_get_apic_interrupt(struct kvm_vcpu *vcpu) --
next prev parent reply index Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top 2009-07-06 1:55 [patch 0/8] RFC: in-kernel timer emulation changes Marcelo Tosatti 2009-07-06 1:55 ` [patch 1/8] KVM: timer interface unification Marcelo Tosatti 2009-07-08 13:33 ` Avi Kivity 2009-07-06 1:55 ` Marcelo Tosatti [this message] 2009-07-06 1:55 ` [patch 3/8] KVM: x86: per-vcpu timer list Marcelo Tosatti 2009-07-06 1:55 ` [patch 4/8] KVM: x86: replace hrtimer based timer emulation Marcelo Tosatti 2009-07-08 12:58 ` Gleb Natapov 2009-07-08 13:17 ` Marcelo Tosatti 2009-07-08 13:39 ` Gleb Natapov 2009-07-08 15:42 ` Marcelo Tosatti 2009-07-08 16:13 ` Gleb Natapov 2009-07-08 16:29 ` Gleb Natapov 2009-07-08 16:37 ` Marcelo Tosatti 2009-07-08 16:40 ` Gleb Natapov 2009-07-08 16:47 ` Marcelo Tosatti 2009-07-08 13:41 ` Avi Kivity 2009-07-08 16:24 ` Marcelo Tosatti 2009-07-08 16:36 ` Avi Kivity 2009-07-06 1:55 ` [patch 5/8] KVM: timer: honor noreinject tunable Marcelo Tosatti 2009-07-06 1:55 ` [patch 6/8] KVM: timer: optimize next_timer_event and vcpu_arm_exit Marcelo Tosatti 2009-07-06 1:55 ` [patch 7/8] KVM: PIT: removed unused code Marcelo Tosatti 2009-07-06 1:55 ` [patch 8/8] kvmctl: time testcase Marcelo Tosatti 2009-07-08 13:43 ` [patch 0/8] RFC: in-kernel timer emulation changes Avi Kivity
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20090706015812.572925843@localhost.localdomain \ --to=mtosatti@redhat.com \ --cc=kvm@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
KVM Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/kvm/0 kvm/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 kvm kvm/ https://lore.kernel.org/kvm \ kvm@vger.kernel.org public-inbox-index kvm Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.kvm AGPL code for this site: git clone https://public-inbox.org/public-inbox.git