[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20141125172108.992070524@redhat.com>
Date: Tue, 25 Nov 2014 15:21:08 -0200
From: Marcelo Tosatti <mtosatti@...hat.com>
To: linux-kernel@...r.kernel.org
Cc: Luiz Capitulino <lcapitulino@...hat.com>,
Rik van Riel <riel@...hat.com>,
Steven Rostedt <srostedt@...hat.com>,
Thomas Gleixner <tglx@...utronix.de>, kvm@...r.kernel.org
Subject: [patch -rt 0/2] use simple waitqueue for kvm vcpu waitqueue (v2)
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:
Allow waking up vcpu thread from hardirq context,
thus avoiding the need for ksoftirqd to be scheduled.
Normal waitqueues make use of spinlocks, which on -RT
are sleepable locks. Therefore, waking up a waitqueue
waiter involves locking a sleeping lock, which
is not allowed from hard interrupt context.
cyclictest command line:
# cyclictest -m -n -q -p99 -l 1000000 -h60 -D 1m
This patch reduces the average latency in my tests from 14us to 11us.
v2: improve changelog (Rik van Riel)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists