• Vitaly Kuznetsov's avatar
    x86/hyperv: Reenlightenment notifications support · 93286261
    Vitaly Kuznetsov authored
    Hyper-V supports Live Migration notification. This is supposed to be used
    in conjunction with TSC emulation: when a VM is migrated to a host with
    different TSC frequency for some short period the host emulates the
    accesses to TSC and sends an interrupt to notify about the event. When the
    guest is done updating everything it can disable TSC emulation and
    everything will start working fast again.
    
    These notifications weren't required until now as Hyper-V guests are not
    supposed to use TSC as a clocksource: in Linux the TSC is even marked as
    unstable on boot. Guests normally use 'tsc page' clocksource and host
    updates its values on migrations automatically.
    
    Things change when with nested virtualization: even when the PV
    clocksources (kvm-clock or tsc page) are passed through to the nested
    guests the TSC frequency and frequency changes need to be know..
    
    Hyper-V Top Level Functional Specification (as of v5.0b) wrongly specifies
    EAX:BIT(12) of CPUID:0x40000009 as the feature identification bit. The
    right one to check is EAX:BIT(13) of CPUID:0x40000003. I was assured that
    the fix in on the way.
    Signed-off-by: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Cc: kvm@vger.kernel.org
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: "Michael Kelley (EOSG)" <Michael.H.Kelley@microsoft.com>
    Cc: Roman Kagan <rkagan@virtuozzo.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: devel@linuxdriverproject.org
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: Cathy Avery <cavery@redhat.com>
    Cc: Mohammed Gamal <mmorsy@redhat.com>
    Link: https://lkml.kernel.org/r/20180124132337.30138-4-vkuznets@redhat.com
    93286261
mshyperv.h 11.4 KB