Re: [PATCH RFC 1/2] kvm: Handle undercommitted guest case in PLEhandler

From: Avi Kivity
Date: Thu Sep 27 2012 - 04:43:39 EST


On 09/25/2012 04:21 PM, Takuya Yoshikawa wrote:
> On Tue, 25 Sep 2012 10:12:49 +0200
> Avi Kivity <avi@xxxxxxxxxx> wrote:
>
>> It will. The tradeoff is between false-positive costs (undercommit) and
>> true positive costs (overcommit). I think undercommit should perform
>> well no matter what.
>>
>> If we utilize preempt notifiers to track overcommit dynamically, then we
>> can vary the spin time dynamically. Keep it long initially, as we get
>> more preempted vcpus make it shorter.
>
> What will happen if we pin each vcpu thread to some core?
> I don't want to see so many vcpu threads moving around without
> being pinned at all.

If you do that you've removed a lot of flexibility from the scheduler,
so overcommit becomes even less likely to work well (a trivial example
is pinning two vcpus from the same vm to the same core -- it's so
obviously bad no one considers doing it).

> In that case, we don't want to make KVM do any work of searching
> a vcpu thread to yield to.

Why not? If a vcpu thread on another core has been preempted, and is
the lock holder, and we can boost it, then we've fixed our problem.
Even if the spinning thread keeps spinning because it is the only task
eligible to run on its core.

--
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/