On Mon, Sep 12, 2016 at 9:13 PM, Anshuman Khandual <khand...@linux.vnet.ibm.com> wrote: > When the HPT size is explicitly passed on from the userspace, currently > the KVM_PPC_ALLOCATE_HTAB will try to allocate the requested size of HPT > from reserved CMA area and if that is not possible, the allocation just > fails. With the commit 572abd563befd56 ("KVM: PPC: Book3S HV: Don't fall > back to smaller HPT size in allocation ioctl"), it does not even try to > allocate the same order pages from the page allocator before failing for > good. Same order allocation should be attempted from the page allocator > as a fallback option when the CMA allocation attempt fails. > > Signed-off-by: Anshuman Khandual <khand...@linux.vnet.ibm.com> > --- > - This change saves guests from failing to start after migration > > arch/powerpc/kvm/book3s_64_mmu_hv.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c > b/arch/powerpc/kvm/book3s_64_mmu_hv.c > index 05f09ae..0a30eb4 100644 > --- a/arch/powerpc/kvm/book3s_64_mmu_hv.c > +++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c > @@ -78,6 +78,14 @@ long kvmppc_alloc_hpt(struct kvm *kvm, u32 *htab_orderp) > --order; > } > > + /* > + * Fallback in case the userspace has provided a size via ioctl. > + * Try allocating the same order pages from the page allocator. > + */ > + if (!hpt && order > PPC_MIN_HPT_ORDER && htab_orderp) > + hpt = __get_free_pages(GFP_KERNEL|__GFP_ZERO|__GFP_REPEAT| > + __GFP_NOWARN, order - PAGE_SHIFT); > +
How often does this succeed? Please provide data. I presume this for the case where guest pages are pinned? Balbir Singh.