[PATCH 0/5] KVM: SEV: Drop user-triggerable WARN clean up REG_REGION

Sean Christopherson posted 5 patches 3 weeks, 4 days ago
arch/x86/kvm/svm/sev.c | 51 +++++++++++++++++++++---------------------
1 file changed, 25 insertions(+), 26 deletions(-)
[PATCH 0/5] KVM: SEV: Drop user-triggerable WARN clean up REG_REGION
Posted by Sean Christopherson 3 weeks, 4 days ago
Drop a WARN in sev_pin_memory() that is comically easy to trigger, and then
clean up the code a bit.

*** WARNING ***

The last patch impacts KVM's ABI due to a size restriction that's applied to
kvmalloc() but not vmalloc().  If my math is correct (definitely a big "if),
it will only impact VMMs that attempt to do KVM_MEMORY_ENCRYPT_REG_REGION with
a single region of ~1TiB+.

Liam, I Cc'd you specifically because it looks like Oracle supports SEV VMs
with more than 1TiB of _total_ memory.  I assume that's spread across multiple
memslots and thus multiple KVM_MEMORY_ENCRYPT_REG_REGION calls, but I wanted to
double check before potentially breaking userspace.

Sean Christopherson (5):
  KVM: SEV: Drop WARN on large size for KVM_MEMORY_ENCRYPT_REG_REGION
  KVM: SEV: Drop useless sanity checks in sev_mem_enc_register_region()
  KVM: SEV: Disallow pinning more pages than exist in the system
  KVM: SEV: Use PFN_DOWN() to simplify "number of pages" math when
    pinning memory
  KVM: SEV: Use kvzalloc_objs() when pinning userpages

 arch/x86/kvm/svm/sev.c | 51 +++++++++++++++++++++---------------------
 1 file changed, 25 insertions(+), 26 deletions(-)


base-commit: bfd7f4adc1230373c25e1b787a6f1ee407eb0656
-- 
2.53.0.851.ga537e3e6e9-goog
Re: [PATCH 0/5] KVM: SEV: Drop user-triggerable WARN clean up REG_REGION
Posted by Liam Merwick 3 weeks ago

On 13/03/2026 00:32, Sean Christopherson wrote:
> Drop a WARN in sev_pin_memory() that is comically easy to trigger, and then
> clean up the code a bit.
> 
> *** WARNING ***
> 
> The last patch impacts KVM's ABI due to a size restriction that's applied to
> kvmalloc() but not vmalloc().  If my math is correct (definitely a big "if),
> it will only impact VMMs that attempt to do KVM_MEMORY_ENCRYPT_REG_REGION with
> a single region of ~1TiB+.
> 
> Liam, I Cc'd you specifically because it looks like Oracle supports SEV VMs
> with more than 1TiB of _total_ memory.  I assume that's spread across multiple
> memslots and thus multiple KVM_MEMORY_ENCRYPT_REG_REGION calls, but I wanted to
> double check before potentially breaking userspace.


I tested the series with various sized large memory SEV VMs and all
seemed good to me. For the series:

Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Tested-by: Liam Merwick <liam.merwick@oracle.com>


> 
> Sean Christopherson (5):
>    KVM: SEV: Drop WARN on large size for KVM_MEMORY_ENCRYPT_REG_REGION
>    KVM: SEV: Drop useless sanity checks in sev_mem_enc_register_region()
>    KVM: SEV: Disallow pinning more pages than exist in the system
>    KVM: SEV: Use PFN_DOWN() to simplify "number of pages" math when
>      pinning memory
>    KVM: SEV: Use kvzalloc_objs() when pinning userpages
> 
>   arch/x86/kvm/svm/sev.c | 51 +++++++++++++++++++++---------------------
>   1 file changed, 25 insertions(+), 26 deletions(-)
> 
> 
> base-commit: bfd7f4adc1230373c25e1b787a6f1ee407eb0656