lkml.org 
[lkml]   [2021]   [Jul]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 02/13] x86/HV: Initialize shared memory boundary in the Isolation VM.
    Date
    From: Tianyu Lan <Tianyu.Lan@microsoft.com>

    Hyper-V exposes shared memory boundary via cpuid
    HYPERV_CPUID_ISOLATION_CONFIG and store it in the
    shared_gpa_boundary of ms_hyperv struct. This prepares
    to share memory with host for SNP guest.

    Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
    ---
    arch/x86/kernel/cpu/mshyperv.c | 2 ++
    include/asm-generic/mshyperv.h | 12 +++++++++++-
    2 files changed, 13 insertions(+), 1 deletion(-)

    diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
    index dcfbd2770d7f..773e84e134b3 100644
    --- a/arch/x86/kernel/cpu/mshyperv.c
    +++ b/arch/x86/kernel/cpu/mshyperv.c
    @@ -327,6 +327,8 @@ static void __init ms_hyperv_init_platform(void)
    if (ms_hyperv.priv_high & HV_ISOLATION) {
    ms_hyperv.isolation_config_a = cpuid_eax(HYPERV_CPUID_ISOLATION_CONFIG);
    ms_hyperv.isolation_config_b = cpuid_ebx(HYPERV_CPUID_ISOLATION_CONFIG);
    + ms_hyperv.shared_gpa_boundary =
    + (u64)1 << ms_hyperv.shared_gpa_boundary_bits;

    pr_info("Hyper-V: Isolation Config: Group A 0x%x, Group B 0x%x\n",
    ms_hyperv.isolation_config_a, ms_hyperv.isolation_config_b);
    diff --git a/include/asm-generic/mshyperv.h b/include/asm-generic/mshyperv.h
    index 4269f3174e58..aa26d24a5ca9 100644
    --- a/include/asm-generic/mshyperv.h
    +++ b/include/asm-generic/mshyperv.h
    @@ -35,8 +35,18 @@ struct ms_hyperv_info {
    u32 max_vp_index;
    u32 max_lp_index;
    u32 isolation_config_a;
    - u32 isolation_config_b;
    + union {
    + u32 isolation_config_b;
    + struct {
    + u32 cvm_type : 4;
    + u32 Reserved11 : 1;
    + u32 shared_gpa_boundary_active : 1;
    + u32 shared_gpa_boundary_bits : 6;
    + u32 Reserved12 : 20;
    + };
    + };
    void __percpu **ghcb_base;
    + u64 shared_gpa_boundary;
    };
    extern struct ms_hyperv_info ms_hyperv;

    --
    2.25.1
    \
     
     \ /
      Last update: 2021-07-28 16:54    [W:4.350 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site