Re: [PATCH v3 2/2] KVM: s390: fix for hugepage vmalloc

From: Claudio Imbrenda
Date: Thu Jun 10 2021 - 12:50:31 EST


On Thu, 10 Jun 2021 17:56:58 +0200
Christian Borntraeger <borntraeger@xxxxxxxxxx> wrote:

> On 10.06.21 17:42, Claudio Imbrenda wrote:
> > The Create Secure Configuration Ultravisor Call does not support
> > using large pages for the virtual memory area. This is a hardware
> > limitation.
> >
> > This patch replaces the vzalloc call with an almost equivalent call
> > to the newly introduced vmalloc_no_huge function, which guarantees
> > that only small pages will be used for the backing.
> >
> > The new call will not clear the allocated memory, but that has never
> > been an actual requirement.

^ here

> > Signed-off-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx>
> > Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxx>
> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> > Cc: Nicholas Piggin <npiggin@xxxxxxxxx>
> > Cc: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx>
> > Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > Cc: Ingo Molnar <mingo@xxxxxxxxxx>
> > Cc: David Rientjes <rientjes@xxxxxxxxxx>
> > Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
> > ---
> > arch/s390/kvm/pv.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/s390/kvm/pv.c b/arch/s390/kvm/pv.c
> > index 813b6e93dc83..ad7c6d7cc90b 100644
> > --- a/arch/s390/kvm/pv.c
> > +++ b/arch/s390/kvm/pv.c
> > @@ -140,7 +140,7 @@ static int kvm_s390_pv_alloc_vm(struct kvm *kvm)
> > /* Allocate variable storage */
> > vlen = ALIGN(virt * ((npages * PAGE_SIZE) / HPAGE_SIZE),
> > PAGE_SIZE); vlen += uv_info.guest_virt_base_stor_len;
> > - kvm->arch.pv.stor_var = vzalloc(vlen);
> > + kvm->arch.pv.stor_var = vmalloc_no_huge(vlen);
>
> dont we need a memset now?

no, as explained above

> > if (!kvm->arch.pv.stor_var)
> > goto out_err;
> > return 0;
> >