Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-04-28 Thread Gleb Natapov
On Sun, Apr 28, 2013 at 12:20:12PM +0200, Jan Kiszka wrote: > On 2013-04-28 12:19, Gleb Natapov wrote: > > On Sun, Apr 28, 2013 at 12:15:05PM +0200, 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 Kis

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-04-28 Thread Jan Kiszka
On 2013-04-28 12:19, Gleb Natapov wrote: > On Sun, Apr 28, 2013 at 12:15:05PM +0200, 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

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-04-28 Thread Gleb Natapov
On Sun, Apr 28, 2013 at 12:15:05PM +0200, 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

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-04-28 Thread Jan Kiszka
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 sta

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-24 Thread Gleb Natapov
On Sun, Mar 24, 2013 at 10:45:53AM +, Zhang, Yang Z wrote: > Gleb Natapov wrote on 2013-03-22: > > On Fri, Mar 22, 2013 at 07:43:03AM -0300, Marcelo Tosatti wrote: > >> On Fri, Mar 22, 2013 at 08:53:15AM +0200, Gleb Natapov wrote: > >>> On Thu, Mar 21, 2013 at 08:06:41PM -0300, Marcelo Tosatti

RE: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-24 Thread Zhang, Yang Z
Gleb Natapov wrote on 2013-03-22: > On Fri, Mar 22, 2013 at 07:43:03AM -0300, Marcelo Tosatti wrote: >> On Fri, Mar 22, 2013 at 08:53:15AM +0200, Gleb Natapov wrote: >>> On Thu, Mar 21, 2013 at 08:06:41PM -0300, Marcelo Tosatti wrote: On Thu, Mar 21, 2013 at 11:13:39PM +0200, Gleb Natapov wrot

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-22 Thread Gleb Natapov
On Fri, Mar 22, 2013 at 07:43:03AM -0300, Marcelo Tosatti wrote: > On Fri, Mar 22, 2013 at 08:53:15AM +0200, Gleb Natapov wrote: > > On Thu, Mar 21, 2013 at 08:06:41PM -0300, Marcelo Tosatti wrote: > > > On Thu, Mar 21, 2013 at 11:13:39PM +0200, Gleb Natapov wrote: > > > > On Thu, Mar 21, 2013 at 0

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-22 Thread Marcelo Tosatti
On Fri, Mar 22, 2013 at 08:53:15AM +0200, Gleb Natapov wrote: > On Thu, Mar 21, 2013 at 08:06:41PM -0300, Marcelo Tosatti wrote: > > On Thu, Mar 21, 2013 at 11:13:39PM +0200, Gleb Natapov wrote: > > > On Thu, Mar 21, 2013 at 05:51:50PM -0300, Marcelo Tosatti wrote: > > > > > > > But current PI patc

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-21 Thread Gleb Natapov
On Thu, Mar 21, 2013 at 08:06:41PM -0300, Marcelo Tosatti wrote: > On Thu, Mar 21, 2013 at 11:13:39PM +0200, Gleb Natapov wrote: > > On Thu, Mar 21, 2013 at 05:51:50PM -0300, Marcelo Tosatti wrote: > > > > > > But current PI patches do break them, thats my point. So we either > > > > > > need to re

RE: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-21 Thread Zhang, Yang Z
Marcelo Tosatti wrote on 2013-03-22: > On Thu, Mar 21, 2013 at 11:13:39PM +0200, Gleb Natapov wrote: >> On Thu, Mar 21, 2013 at 05:51:50PM -0300, Marcelo Tosatti wrote: >> But current PI patches do break them, thats my point. So we either >> need to revise them again, or drop LAPIC timer re

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-21 Thread Marcelo Tosatti
On Thu, Mar 21, 2013 at 11:13:39PM +0200, Gleb Natapov wrote: > On Thu, Mar 21, 2013 at 05:51:50PM -0300, Marcelo Tosatti wrote: > > > > > But current PI patches do break them, thats my point. So we either > > > > > need to revise them again, or drop LAPIC timer reinjection. Making > > > > > apic_a

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-21 Thread Gleb Natapov
On Thu, Mar 21, 2013 at 05:51:50PM -0300, Marcelo Tosatti wrote: > > > > But current PI patches do break them, thats my point. So we either > > > > need to revise them again, or drop LAPIC timer reinjection. Making > > > > apic_accept_irq semantics "it returns coalescing info, but only > > > > som

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-21 Thread Marcelo Tosatti
> > > But current PI patches do break them, thats my point. So we either > > > need to revise them again, or drop LAPIC timer reinjection. Making > > > apic_accept_irq semantics "it returns coalescing info, but only sometimes" > > > is dubious though. > > We may rollback to the initial idea: test b

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-21 Thread Gleb Natapov
On Thu, Mar 21, 2013 at 02:27:22PM +, Zhang, Yang Z wrote: > Gleb Natapov wrote on 2013-03-21: > > On Thu, Mar 21, 2013 at 11:02:24AM -0300, Marcelo Tosatti wrote: > >> On Thu, Mar 21, 2013 at 06:54:46AM +0200, Gleb Natapov wrote: > >>> On Wed, Mar 20, 2013 at 08:19:13PM -0300, Marcelo Tosatti

RE: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-21 Thread Zhang, Yang Z
Gleb Natapov wrote on 2013-03-21: > On Thu, Mar 21, 2013 at 11:02:24AM -0300, Marcelo Tosatti wrote: >> On Thu, Mar 21, 2013 at 06:54:46AM +0200, Gleb Natapov wrote: >>> On Wed, Mar 20, 2013 at 08:19:13PM -0300, Marcelo Tosatti wrote: On Wed, Mar 20, 2013 at 11:32:38PM +0200, Gleb Natapov wrot

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-21 Thread Gleb Natapov
On Thu, Mar 21, 2013 at 11:02:24AM -0300, Marcelo Tosatti wrote: > On Thu, Mar 21, 2013 at 06:54:46AM +0200, Gleb Natapov wrote: > > On Wed, Mar 20, 2013 at 08:19:13PM -0300, Marcelo Tosatti wrote: > > > On Wed, Mar 20, 2013 at 11:32:38PM +0200, Gleb Natapov wrote: > > > > On Wed, Mar 20, 2013 at 0

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-21 Thread Marcelo Tosatti
On Thu, Mar 21, 2013 at 06:54:46AM +0200, Gleb Natapov wrote: > On Wed, Mar 20, 2013 at 08:19:13PM -0300, Marcelo Tosatti wrote: > > On Wed, Mar 20, 2013 at 11:32:38PM +0200, Gleb Natapov wrote: > > > On Wed, Mar 20, 2013 at 05:03:19PM -0300, Marcelo Tosatti wrote: > > > > On Wed, Mar 20, 2013 at 0

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-20 Thread Gleb Natapov
On Wed, Mar 20, 2013 at 08:19:13PM -0300, Marcelo Tosatti wrote: > On Wed, Mar 20, 2013 at 11:32:38PM +0200, Gleb Natapov wrote: > > 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 a

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-20 Thread Marcelo Tosatti
On Wed, Mar 20, 2013 at 11:32:38PM +0200, Gleb Natapov wrote: > 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 1

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-20 Thread Gleb Natapov
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 N

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-20 Thread Marcelo Tosatti
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 Kiszk

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-20 Thread Marcelo Tosatti
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

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-17 Thread Gleb Natapov
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

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-17 Thread Jan Kiszka
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 sta

Re: [PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-17 Thread Gleb Natapov
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_pen

[PATCH] KVM: x86: Avoid busy loops over uninjectable pending APIC timers

2013-03-16 Thread Jan Kiszka
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