[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCH V3 03/13] x86/HV: Add new hvcall guest address host visibility support



From: Tianyu Lan <ltykernel@xxxxxxxxx> Sent: Monday, August 9, 2021 10:56 AM

[snip]

> diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c
> index ad8a5c586a35..1e4a0882820a 100644
> --- a/arch/x86/mm/pat/set_memory.c
> +++ b/arch/x86/mm/pat/set_memory.c
> @@ -29,6 +29,8 @@
>  #include <asm/proto.h>
>  #include <asm/memtype.h>
>  #include <asm/set_memory.h>
> +#include <asm/hyperv-tlfs.h>
> +#include <asm/mshyperv.h>
> 
>  #include "../mm_internal.h"
> 
> @@ -1980,15 +1982,11 @@ int set_memory_global(unsigned long addr, int 
> numpages)
>                                   __pgprot(_PAGE_GLOBAL), 0);
>  }
> 
> -static int __set_memory_enc_dec(unsigned long addr, int numpages, bool enc)
> +static int __set_memory_enc_pgtable(unsigned long addr, int numpages, bool 
> enc)
>  {
>       struct cpa_data cpa;
>       int ret;
> 
> -     /* Nothing to do if memory encryption is not active */
> -     if (!mem_encrypt_active())
> -             return 0;
> -
>       /* Should not be working on unaligned addresses */
>       if (WARN_ONCE(addr & ~PAGE_MASK, "misaligned address: %#lx\n", addr))
>               addr &= PAGE_MASK;
> @@ -2023,6 +2021,17 @@ static int __set_memory_enc_dec(unsigned long addr, 
> int numpages, bool enc)
>       return ret;
>  }
> 
> +static int __set_memory_enc_dec(unsigned long addr, int numpages, bool enc)
> +{
> +     if (hv_is_isolation_supported())
> +             return hv_set_mem_host_visibility(addr, numpages, !enc);
> +
> +     if (mem_encrypt_active())
> +             return __set_memory_enc_pgtable(addr, numpages, enc);
> +
> +     return 0;
> +}
> +

FYI, this not-yet-accepted patch
https://lore.kernel.org/lkml/ab5a7a983a943e7ca0a7ad28275a2d094c62c371.1623421410.git.ashish.kalra@xxxxxxx/
looks to be providing a generic hook to notify the hypervisor when the
encryption status of a memory range changes.

Michael



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.