lkml.org 
[lkml]   [2021]   [Aug]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[v2 PATCH 2/4] x86/kvm: Add definitions for virtual suspend time injection
    Date
    Add definitions of MSR, KVM_FEATURE bit, IRQ and a structure called
    kvm_suspend_time that are used by later patchs to support the
    virtual suspend time injection mechanism.

    Signed-off-by: Hikaru Nishida <hikalium@chromium.org>
    ---

    arch/x86/include/asm/irq_vectors.h | 7 ++++++-
    arch/x86/include/uapi/asm/kvm_para.h | 6 ++++++
    kernel/time/timekeeping.c | 1 +
    3 files changed, 13 insertions(+), 1 deletion(-)

    diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h
    index 43dcb9284208..6785054080c8 100644
    --- a/arch/x86/include/asm/irq_vectors.h
    +++ b/arch/x86/include/asm/irq_vectors.h
    @@ -104,7 +104,12 @@
    #define HYPERV_STIMER0_VECTOR 0xed
    #endif

    -#define LOCAL_TIMER_VECTOR 0xec
    +#if defined(CONFIG_KVM_VIRT_SUSPEND_TIMING) || \
    + defined(CONFIG_KVM_VIRT_SUSPEND_TIMING_GUEST)
    +#define VIRT_SUSPEND_TIMING_VECTOR 0xec
    +#endif
    +
    +#define LOCAL_TIMER_VECTOR 0xeb

    #define NR_VECTORS 256

    diff --git a/arch/x86/include/uapi/asm/kvm_para.h b/arch/x86/include/uapi/asm/kvm_para.h
    index 5146bbab84d4..ccea4e344f46 100644
    --- a/arch/x86/include/uapi/asm/kvm_para.h
    +++ b/arch/x86/include/uapi/asm/kvm_para.h
    @@ -35,6 +35,7 @@
    #define KVM_FEATURE_MSI_EXT_DEST_ID 15
    #define KVM_FEATURE_HC_MAP_GPA_RANGE 16
    #define KVM_FEATURE_MIGRATION_CONTROL 17
    +#define KVM_FEATURE_HOST_SUSPEND_TIME 18

    #define KVM_HINTS_REALTIME 0

    @@ -57,6 +58,7 @@
    #define MSR_KVM_ASYNC_PF_INT 0x4b564d06
    #define MSR_KVM_ASYNC_PF_ACK 0x4b564d07
    #define MSR_KVM_MIGRATION_CONTROL 0x4b564d08
    +#define MSR_KVM_HOST_SUSPEND_TIME 0x4b564d09

    struct kvm_steal_time {
    __u64 steal;
    @@ -79,6 +81,10 @@ struct kvm_clock_pairing {
    __u32 pad[9];
    };

    +struct kvm_suspend_time {
    + __u64 suspend_time_ns;
    +};
    +
    #define KVM_STEAL_ALIGNMENT_BITS 5
    #define KVM_STEAL_VALID_BITS ((-1ULL << (KVM_STEAL_ALIGNMENT_BITS + 1)))
    #define KVM_STEAL_RESERVED_MASK (((1 << KVM_STEAL_ALIGNMENT_BITS) - 1 ) << 1)
    diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
    index 8a364aa9881a..233ceb6cce1f 100644
    --- a/kernel/time/timekeeping.c
    +++ b/kernel/time/timekeeping.c
    @@ -22,6 +22,7 @@
    #include <linux/pvclock_gtod.h>
    #include <linux/compiler.h>
    #include <linux/audit.h>
    +#include <linux/kvm_host.h>

    #include "tick-internal.h"
    #include "ntp_internal.h"
    --
    2.32.0.605.g8dce9f2422-goog
    \
     
     \ /
      Last update: 2021-08-06 12:08    [W:3.231 / U:0.532 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site