On Thu, Apr 11, 2013 at 07:54:01AM +0000, Zhang, Yang Z wrote: > Gleb Natapov wrote on 2013-04-11: > > On Wed, Apr 10, 2013 at 09:22:20PM +0800, Yang Zhang wrote: > >> From: Yang Zhang <yang.z.zh...@intel.com> > >> > >> Current interrupt coalescing logci which only used by RTC has conflict > >> with Posted Interrupt. > >> This patch introduces a new mechinism to use eoi to track interrupt: > >> When delivering an interrupt to vcpu, the pending_eoi set to number of > >> vcpu that received the interrupt. And decrease it when each vcpu writing > >> eoi. No subsequent RTC interrupt can deliver to vcpu until all vcpus > >> write eoi. > >> > >> Signed-off-by: Yang Zhang <yang.z.zh...@intel.com> > >> --- > >> virt/kvm/ioapic.c | 39 ++++++++++++++++++++++++++++++++++++++- > >> 1 files changed, 38 insertions(+), 1 deletions(-) > >> diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c > >> index a49fcd5..aeac154 100644 > >> --- a/virt/kvm/ioapic.c > >> +++ b/virt/kvm/ioapic.c > >> @@ -147,6 +147,26 @@ static void kvm_rtc_eoi_tracking_restore_all(struct > > kvm_ioapic *ioapic) > >> __rtc_irq_eoi_tracking_restore_one(vcpu); > >> } > >> +static void rtc_irq_eoi(struct kvm_ioapic *ioapic, struct kvm_vcpu *vcpu) > >> +{ > >> + if (test_and_clear_bit(vcpu->vcpu_id, ioapic->rtc_status.dest_map)) > >> + --ioapic->rtc_status.pending_eoi; > >> + > >> + WARN_ON(ioapic->rtc_status.pending_eoi < 0); > >> +} > >> + > >> +static bool rtc_irq_check_coalesced(struct kvm_ioapic *ioapic, int irq, > >> + bool line_status) > >> +{ > >> + if (irq != RTC_GSI || !line_status) > >> + return false; > > Please move the check from rtc_irq_check_coalesced() to > > kvm_ioapic_set_irq() like this: if (irq == RTC_GSI && line_status && > > rtc_irq_check_coalesced(ioapic, irq, line_status)) .... > > > > I was going to fix it myself while applying, but since there will be > > new posted interrupt series anyway you can as well fix this one too. > You mean fix it and send out it with posted interrupt series? Or just rebase > the posted interrupt series on the top of this fix, but needn't to send out > it? > Send both series. RTC one with this change.
-- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html