Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-08-17 Thread Thomas Gleixner
On Fri, 7 Aug 2015, Peter Zijlstra wrote: > On Fri, Aug 07, 2015 at 12:57:38PM +0200, Peter Zijlstra wrote: > > > > >+void __finish_swait(struct swait_queue_head *q, struct swait_queue > > > >*wait) > > > > this one has no users the __ suggests that it is locked edition. Maybe > > > it is for

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-08-17 Thread Thomas Gleixner
On Fri, 7 Aug 2015, Peter Zijlstra wrote: On Fri, Aug 07, 2015 at 12:57:38PM +0200, Peter Zijlstra wrote: +void __finish_swait(struct swait_queue_head *q, struct swait_queue *wait) this one has no users the __ suggests that it is locked edition. Maybe it is for the completions…

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-08-09 Thread Christoph Hellwig
On Fri, Aug 07, 2015 at 06:45:26PM +0200, Peter Zijlstra wrote: > Its just the swait_wake_all() that is not. The entire purpose of them > was to have something that allows bounded execution (RT and all). Still not sure i that might be a too big burden for mainline, but at least it's not as

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-08-09 Thread Christoph Hellwig
On Fri, Aug 07, 2015 at 06:45:26PM +0200, Peter Zijlstra wrote: Its just the swait_wake_all() that is not. The entire purpose of them was to have something that allows bounded execution (RT and all). Still not sure i that might be a too big burden for mainline, but at least it's not as severe..

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-08-07 Thread Peter Zijlstra
On Fri, Aug 07, 2015 at 09:41:31AM -0700, Christoph Hellwig wrote: > On Fri, Aug 07, 2015 at 01:14:15PM +0200, Peter Zijlstra wrote: > > On that, we cannot convert completions to swait. Because swait wake_all > > must not happen from IRQ context, and complete_all() typically is used > > from just

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-08-07 Thread Christoph Hellwig
On Fri, Aug 07, 2015 at 01:14:15PM +0200, Peter Zijlstra wrote: > On that, we cannot convert completions to swait. Because swait wake_all > must not happen from IRQ context, and complete_all() typically is used > from just that. If swait queues aren't useable from IRQ context they will be fairly

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-08-07 Thread Peter Zijlstra
On Fri, Aug 07, 2015 at 12:57:38PM +0200, Peter Zijlstra wrote: > > >+void __finish_swait(struct swait_queue_head *q, struct swait_queue *wait) > > this one has no users the __ suggests that it is locked edition. Maybe > > it is for the completions… > > Yeah, who knows, I certainly do not

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-08-07 Thread Peter Zijlstra
On Wed, Feb 25, 2015 at 10:02:50PM +0100, Sebastian Andrzej Siewior wrote: > >+static inline int swait_active(struct swait_queue_head *q) > >+{ > >+return !list_empty(>task_list); > > In RT there was a smp_mb() which you dropped and I assume you had > reasons for it. Yeah, RT didn't have a

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-08-07 Thread Peter Zijlstra
On Fri, Aug 07, 2015 at 12:57:38PM +0200, Peter Zijlstra wrote: +void __finish_swait(struct swait_queue_head *q, struct swait_queue *wait) this one has no users the __ suggests that it is locked edition. Maybe it is for the completions… Yeah, who knows, I certainly do not anymore ;-)

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-08-07 Thread Peter Zijlstra
On Wed, Feb 25, 2015 at 10:02:50PM +0100, Sebastian Andrzej Siewior wrote: +static inline int swait_active(struct swait_queue_head *q) +{ +return !list_empty(q-task_list); In RT there was a smp_mb() which you dropped and I assume you had reasons for it. Yeah, RT didn't have a reason

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-08-07 Thread Christoph Hellwig
On Fri, Aug 07, 2015 at 01:14:15PM +0200, Peter Zijlstra wrote: On that, we cannot convert completions to swait. Because swait wake_all must not happen from IRQ context, and complete_all() typically is used from just that. If swait queues aren't useable from IRQ context they will be fairly

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-08-07 Thread Peter Zijlstra
On Fri, Aug 07, 2015 at 09:41:31AM -0700, Christoph Hellwig wrote: On Fri, Aug 07, 2015 at 01:14:15PM +0200, Peter Zijlstra wrote: On that, we cannot convert completions to swait. Because swait wake_all must not happen from IRQ context, and complete_all() typically is used from just that.

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-03-06 Thread Sebastian Andrzej Siewior
* Marcelo Tosatti | 2015-01-14 15:12:52 [-0200]: Against which tree was this prepared? Could please rebase it against v3.18.7-rt2? Because a I see "fuzz 2", the mips file is gone and s390 rejects almost every chunk. And there was that mips chunk Steven noticed. Patch #2 seems to apply but since

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-03-06 Thread Sebastian Andrzej Siewior
* Marcelo Tosatti | 2015-01-14 15:12:52 [-0200]: Against which tree was this prepared? Could please rebase it against v3.18.7-rt2? Because a I see fuzz 2, the mips file is gone and s390 rejects almost every chunk. And there was that mips chunk Steven noticed. Patch #2 seems to apply but since it

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-03-04 Thread Sebastian Andrzej Siewior
On 03/05/2015 02:09 AM, Marcelo Tosatti wrote: >> Can you please include the series? >> >> Thanks > > Sebastian? I will pick it up, don't worry. I think I do my -RT day tomorrow. Sebastian -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-03-04 Thread Marcelo Tosatti
On Thu, Feb 26, 2015 at 09:23:57PM -0300, Marcelo Tosatti wrote: > On Tue, Feb 17, 2015 at 06:44:19PM +0100, Sebastian Andrzej Siewior wrote: > > * Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: > > > > >On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: > > >> I'm actually wondering

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-03-04 Thread Marcelo Tosatti
On Thu, Feb 26, 2015 at 09:23:57PM -0300, Marcelo Tosatti wrote: On Tue, Feb 17, 2015 at 06:44:19PM +0100, Sebastian Andrzej Siewior wrote: * Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: I'm actually wondering if we should

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-03-04 Thread Sebastian Andrzej Siewior
On 03/05/2015 02:09 AM, Marcelo Tosatti wrote: Can you please include the series? Thanks Sebastian? I will pick it up, don't worry. I think I do my -RT day tomorrow. Sebastian -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-02-26 Thread Marcelo Tosatti
On Tue, Feb 17, 2015 at 06:44:19PM +0100, Sebastian Andrzej Siewior wrote: > * Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: > > >On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: > >> I'm actually wondering if we should just nuke the _interruptible() > >> version of swait. As it

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-02-26 Thread Marcelo Tosatti
On Tue, Feb 17, 2015 at 06:44:19PM +0100, Sebastian Andrzej Siewior wrote: * Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: I'm actually wondering if we should just nuke the _interruptible() version of swait. As it should only

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-02-25 Thread Sebastian Andrzej Siewior
* Peter Zijlstra | 2015-02-18 15:03:20 [+0100]: >On Tue, Feb 17, 2015 at 06:44:19PM +0100, Sebastian Andrzej Siewior wrote: >> * Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: >> >> >On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: >> >> I'm actually wondering if we should just

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-02-25 Thread Sebastian Andrzej Siewior
* Peter Zijlstra | 2015-02-18 15:03:20 [+0100]: On Tue, Feb 17, 2015 at 06:44:19PM +0100, Sebastian Andrzej Siewior wrote: * Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: I'm actually wondering if we should just nuke the

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-02-18 Thread Peter Zijlstra
On Tue, Feb 17, 2015 at 06:44:19PM +0100, Sebastian Andrzej Siewior wrote: > * Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: > > >On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: > >> I'm actually wondering if we should just nuke the _interruptible() > >> version of swait. As it

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-02-18 Thread Peter Zijlstra
On Tue, Feb 17, 2015 at 06:44:19PM +0100, Sebastian Andrzej Siewior wrote: * Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: I'm actually wondering if we should just nuke the _interruptible() version of swait. As it should only

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-02-17 Thread Sebastian Andrzej Siewior
* Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: >On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: >> I'm actually wondering if we should just nuke the _interruptible() >> version of swait. As it should only be all interruptible or all not >> interruptible, that the swait_wake()

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-02-17 Thread Sebastian Andrzej Siewior
* Peter Zijlstra | 2015-01-21 16:07:16 [+0100]: On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: I'm actually wondering if we should just nuke the _interruptible() version of swait. As it should only be all interruptible or all not interruptible, that the swait_wake() should

[patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-21 Thread Marcelo Tosatti
The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra context switch introduces unnecessary latency in the LAPIC path for a KVM guest. The solution:

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-21 Thread Peter Zijlstra
On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: > I'm actually wondering if we should just nuke the _interruptible() > version of swait. As it should only be all interruptible or all not > interruptible, that the swait_wake() should just do the wake up > regardless. In which case,

[patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-21 Thread Marcelo Tosatti
The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra context switch introduces unnecessary latency in the LAPIC path for a KVM guest. The solution:

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-21 Thread Peter Zijlstra
On Tue, Jan 20, 2015 at 01:16:13PM -0500, Steven Rostedt wrote: I'm actually wondering if we should just nuke the _interruptible() version of swait. As it should only be all interruptible or all not interruptible, that the swait_wake() should just do the wake up regardless. In which case,

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-20 Thread Steven Rostedt
On Tue, 20 Jan 2015 16:46:53 +1100 Paul Mackerras wrote: > On Mon, Jan 19, 2015 at 12:41:00PM -0200, Marcelo Tosatti wrote: > > On Fri, Jan 16, 2015 at 11:48:46AM -0500, Steven Rostedt wrote: > > > > static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc) > > > > { > > > > -

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-20 Thread Steven Rostedt
On Tue, 20 Jan 2015 16:46:53 +1100 Paul Mackerras pau...@samba.org wrote: On Mon, Jan 19, 2015 at 12:41:00PM -0200, Marcelo Tosatti wrote: On Fri, Jan 16, 2015 at 11:48:46AM -0500, Steven Rostedt wrote: static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc) { -

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-19 Thread Paul Mackerras
On Mon, Jan 19, 2015 at 12:41:00PM -0200, Marcelo Tosatti wrote: > On Fri, Jan 16, 2015 at 11:48:46AM -0500, Steven Rostedt wrote: > > > static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc) > > > { > > > - DEFINE_WAIT(wait); > > > + DEFINE_SWAITER(wait); > > > > > > - prepare_to_wait(>wq,

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-19 Thread Marcelo Tosatti
On Fri, Jan 16, 2015 at 11:48:46AM -0500, Steven Rostedt wrote: > > @@ -971,8 +971,8 @@ > > kvm_mips_callbacks->queue_timer_int(vcpu); > > > > vcpu->arch.wait = 0; > > - if (waitqueue_active(>wq)) { > > - wake_up_interruptible(>wq); > > + if (swaitqueue_active(>wq)) { > > +

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-19 Thread Paul Mackerras
On Mon, Jan 19, 2015 at 12:41:00PM -0200, Marcelo Tosatti wrote: On Fri, Jan 16, 2015 at 11:48:46AM -0500, Steven Rostedt wrote: static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc) { - DEFINE_WAIT(wait); + DEFINE_SWAITER(wait); - prepare_to_wait(vc-wq, wait,

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-19 Thread Marcelo Tosatti
On Fri, Jan 16, 2015 at 11:48:46AM -0500, Steven Rostedt wrote: @@ -971,8 +971,8 @@ kvm_mips_callbacks-queue_timer_int(vcpu); vcpu-arch.wait = 0; - if (waitqueue_active(vcpu-wq)) { - wake_up_interruptible(vcpu-wq); + if (swaitqueue_active(vcpu-wq)) { +

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-16 Thread Peter Zijlstra
On Fri, Jan 16, 2015 at 11:48:46AM -0500, Steven Rostedt wrote: > I notice everywhere you have a swait_wake_interruptible() but here. Is > there a reason why? > > IIRC, Peter wants to make swait wakeup usage homogenous. That is, you > either sleep in an interruptible state, or you don't. You

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-16 Thread Steven Rostedt
On Fri, 16 Jan 2015 11:48:46 -0500 Steven Rostedt wrote: > > static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc) > > { > > - DEFINE_WAIT(wait); > > + DEFINE_SWAITER(wait); > > > > - prepare_to_wait(>wq, , TASK_INTERRUPTIBLE); > > + swait_prepare(>wq, , TASK_INTERRUPTIBLE); > >

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-16 Thread Steven Rostedt
On Fri, 16 Jan 2015 11:40:45 -0500 Marcelo Tosatti wrote: > The problem: > > On -RT, an emulated LAPIC timer instances has the following path: > > 1) hard interrupt > 2) ksoftirqd is scheduled > 3) ksoftirqd wakes up vcpu thread > 4) vcpu thread is scheduled > > This extra context switch

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-16 Thread Steven Rostedt
On Fri, 16 Jan 2015 11:40:45 -0500 Marcelo Tosatti mtosa...@redhat.com wrote: The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra context

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-16 Thread Steven Rostedt
On Fri, 16 Jan 2015 11:48:46 -0500 Steven Rostedt rost...@goodmis.org wrote: static void kvmppc_vcore_blocked(struct kvmppc_vcore *vc) { - DEFINE_WAIT(wait); + DEFINE_SWAITER(wait); - prepare_to_wait(vc-wq, wait, TASK_INTERRUPTIBLE); + swait_prepare(vc-wq, wait,

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-16 Thread Peter Zijlstra
On Fri, Jan 16, 2015 at 11:48:46AM -0500, Steven Rostedt wrote: I notice everywhere you have a swait_wake_interruptible() but here. Is there a reason why? IIRC, Peter wants to make swait wakeup usage homogenous. That is, you either sleep in an interruptible state, or you don't. You can't mix

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-14 Thread Rik van Riel
On 01/14/2015 12:12 PM, Marcelo Tosatti wrote: > The problem: > > On -RT, an emulated LAPIC timer instances has the following path: > > 1) hard interrupt > 2) ksoftirqd is scheduled > 3) ksoftirqd wakes up vcpu thread > 4) vcpu thread is scheduled > > This extra context switch introduces

[patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2015-01-14 Thread Marcelo Tosatti
The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra context switch introduces unnecessary latency in the LAPIC path for a KVM guest. The solution:

[patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-14 Thread Marcelo Tosatti
The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra context switch introduces unnecessary latency in the LAPIC path for a KVM guest. The solution:

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2015-01-14 Thread Rik van Riel
On 01/14/2015 12:12 PM, Marcelo Tosatti wrote: The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra context switch introduces unnecessary

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2014-11-25 Thread Thomas Gleixner
On Tue, 25 Nov 2014, Rik van Riel wrote: > On 11/25/2014 12:21 PM, Marcelo Tosatti wrote: > > The problem: > > > > On -RT, an emulated LAPIC timer instances has the following path: > > > > 1) hard interrupt > > 2) ksoftirqd is scheduled > > 3) ksoftirqd wakes up vcpu thread > > 4) vcpu thread is

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2014-11-25 Thread Marcelo Tosatti
On Tue, Nov 25, 2014 at 01:57:37PM -0500, Rik van Riel wrote: > On 11/25/2014 12:21 PM, Marcelo Tosatti wrote: > > The problem: > > > > On -RT, an emulated LAPIC timer instances has the following path: > > > > 1) hard interrupt > > 2) ksoftirqd is scheduled > > 3) ksoftirqd wakes up vcpu thread

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2014-11-25 Thread Rik van Riel
On 11/25/2014 01:57 PM, Rik van Riel wrote: > On 11/25/2014 12:21 PM, Marcelo Tosatti wrote: >> The problem: >> >> On -RT, an emulated LAPIC timer instances has the following path: >> >> 1) hard interrupt >> 2) ksoftirqd is scheduled >> 3) ksoftirqd wakes up vcpu thread >> 4) vcpu thread is

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2014-11-25 Thread Rik van Riel
On 11/25/2014 12:21 PM, Marcelo Tosatti wrote: > The problem: > > On -RT, an emulated LAPIC timer instances has the following path: > > 1) hard interrupt > 2) ksoftirqd is scheduled > 3) ksoftirqd wakes up vcpu thread > 4) vcpu thread is scheduled > > This extra context switch introduces

[patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2014-11-25 Thread Marcelo Tosatti
The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra context switch introduces unnecessary latency in the LAPIC path for a KVM guest. The solution:

[patch -rt 1/2] KVM: use simple waitqueue for vcpu->wq

2014-11-25 Thread Marcelo Tosatti
This allows waking up vcpu thread from hardirq context. Signed-off-by: Marcelo Tosatti --- arch/arm/kvm/arm.c |4 ++-- arch/arm/kvm/psci.c |4 ++-- arch/mips/kvm/kvm_mips.c|8 arch/powerpc/include/asm/kvm_host.h |4 ++--

[patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2014-11-25 Thread Marcelo Tosatti
This allows waking up vcpu thread from hardirq context. Signed-off-by: Marcelo Tosatti mtosa...@redhat.com --- arch/arm/kvm/arm.c |4 ++-- arch/arm/kvm/psci.c |4 ++-- arch/mips/kvm/kvm_mips.c|8

[patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2014-11-25 Thread Marcelo Tosatti
The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra context switch introduces unnecessary latency in the LAPIC path for a KVM guest. The solution:

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2014-11-25 Thread Rik van Riel
On 11/25/2014 12:21 PM, Marcelo Tosatti wrote: The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra context switch introduces unnecessary

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2014-11-25 Thread Rik van Riel
On 11/25/2014 01:57 PM, Rik van Riel wrote: On 11/25/2014 12:21 PM, Marcelo Tosatti wrote: The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled This extra

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2014-11-25 Thread Marcelo Tosatti
On Tue, Nov 25, 2014 at 01:57:37PM -0500, Rik van Riel wrote: On 11/25/2014 12:21 PM, Marcelo Tosatti wrote: The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu

Re: [patch -rt 1/2] KVM: use simple waitqueue for vcpu-wq

2014-11-25 Thread Thomas Gleixner
On Tue, 25 Nov 2014, Rik van Riel wrote: On 11/25/2014 12:21 PM, Marcelo Tosatti wrote: The problem: On -RT, an emulated LAPIC timer instances has the following path: 1) hard interrupt 2) ksoftirqd is scheduled 3) ksoftirqd wakes up vcpu thread 4) vcpu thread is scheduled