• [PATCH RFC hack dont apply] intel_idle: support running within a VM

    From Jacob Pan@21:1/5 to Rafael J. Wysocki on Mon Oct 2 22:50:01 2017
    On Sat, 30 Sep 2017 01:21:43 +0200
    "Rafael J. Wysocki" <rafael@kernel.org> wrote:

    On Sat, Sep 30, 2017 at 12:01 AM, Michael S. Tsirkin <mst@redhat.com>
    wrote:
    intel idle driver does not DTRT when running within a VM:
    when going into a deep power state, the right thing to
    do is to exit to hypervisor rather than to keep polling
    within guest using mwait.

    Currently the solution is just to exit to hypervisor each time we go
    idle - this is why kvm does not expose the mwait leaf to guests even
    when it allows guests to do mwait.

    But that's not ideal - it seems better to use the idle driver to
    guess when will the next interrupt arrive.

    The idle driver alone is not sufficient for that, though.

    I second that. Why try to solve this problem at vendor specific driver
    level? perhaps just a pv idle driver that decide whether to vmexit
    based on something like local per vCPU timer expiration? I guess we
    can't predict other wake events such as interrupts.
    e.g.
    if (get_next_timer_interrupt() > kvm_halt_target_residency)
    vmexit
    else
    poll

    Jacob

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)