From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gleb Natapov Subject: Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers Date: Wed, 20 Mar 2013 23:32:38 +0200 Message-ID: <20130320213238.GB9382@redhat.com> References: <5144DAC3.7080401@web.de> <20130317084705.GC11223@redhat.com> <51459ECE.2000107@web.de> <20130317104717.GA6117@redhat.com> <20130320193033.GB11138@amt.cnet> <20130320200319.GA16367@amt.cnet> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Yang Zhang , Jan Kiszka , kvm To: Marcelo Tosatti Return-path: Received: from mx1.redhat.com ([209.132.183.28]:23231 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751242Ab3CTVcp (ORCPT ); Wed, 20 Mar 2013 17:32:45 -0400 Content-Disposition: inline In-Reply-To: <20130320200319.GA16367@amt.cnet> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, Mar 20, 2013 at 05:03:19PM -0300, Marcelo Tosatti wrote: > On Wed, Mar 20, 2013 at 04:30:33PM -0300, Marcelo Tosatti wrote: > > On Sun, Mar 17, 2013 at 12:47:17PM +0200, Gleb Natapov wrote: > > > On Sun, Mar 17, 2013 at 11:45:34AM +0100, Jan Kiszka wrote: > > > > On 2013-03-17 09:47, Gleb Natapov wrote: > > > > > On Sat, Mar 16, 2013 at 09:49:07PM +0100, Jan Kiszka wrote: > > > > >> From: Jan Kiszka > > > > >> > > > > >> If the guest didn't take the last APIC timer interrupt yet and generates > > > > >> another one on top, e.g. via periodic mode, we do not block the VCPU > > > > >> even if the guest state is halted. The reason is that > > > > >> apic_has_pending_timer continues to return a non-zero value. > > > > >> > > > > >> Fix this busy loop by taking the IRR content for the LVT vector in > > > > >> apic_has_pending_timer into account. > > > > >> > > > > > Just drop coalescing tacking for lapic interrupt. After posted interrupt > > > > > will be merged __apic_accept_irq() will not longer return coalescing > > > > > information, so the code will be dead anyway. > > > > > > > > That requires the RTC decoalescing series to go first to avoid a > > > > regression, no? Then let's postpone this topic for now. > > > > > > > Yes, but decoalescing will work only for RTC :( > > > > Are you proposing to drop LAPIC interrupt reinjection? > > Since timer handling and injection is VCPU-local for LAPIC, > __apic_accept_irq can (and must) return coalesced information (cannot > drop LAPIC interrupt reinjection). > Why can't we drop LAPIC interrupt reinjection? Proposed posted interrupt patches do not properly check for interrupt coalescing even for VCPU-local injection. -- Gleb.