On Thu, Apr 13, 2017 at 05:04:20PM +1000, Alexey Kardashevskiy wrote: > At the moment the userspace can request a table smaller than a page size > and this value will be stored as kvmppc_spapr_tce_table::size. > However the actual allocated size will still be aligned to the system > page size as alloc_page() is used there. > > This aligns the table size up to the system page size. It should not > change the existing behaviour but when in-kernel TCE acceleration patchset > reaches the upstream kernel, this will allow small TCE tables be > accelerated as well: PCI IODA iommu_table allocator already aligns > the size and, without this patch, an IOMMU group won't attach to LIOBN > due to the mismatching table size. > > Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> > --- > > For sake of bisectability (otherwise in-kernel acceleration won't work > hugepages braking DMA completely), this is better be put before > [PATCH kernel v11 00/10] powerpc/kvm/vfio: Enable in-kernel acceleration > > --- > arch/powerpc/kvm/book3s_64_vio.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/kvm/book3s_64_vio.c b/arch/powerpc/kvm/book3s_64_vio.c > index aea3a5b74fb6..45941af9c6d7 100644 > --- a/arch/powerpc/kvm/book3s_64_vio.c > +++ b/arch/powerpc/kvm/book3s_64_vio.c > @@ -333,7 +333,7 @@ long kvm_vm_ioctl_create_spapr_tce(struct kvm *kvm, > return -EBUSY; > } > > - size = args->size; > + size = _ALIGN_UP(args->size, PAGE_SIZE >> 3); > npages = kvmppc_tce_pages(size); > ret = kvmppc_account_memlimit(kvmppc_stt_pages(npages), true); > if (ret) { -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature