Re: [PATCH v2] KVM: IOMMU: hva align mapping page size

2013-11-04 Thread Gleb Natapov
On Mon, Nov 04, 2013 at 09:08:12AM -0700, Greg Edwards wrote:
> When determining the page size we could use to map with the IOMMU, the
> page size should also be aligned with the hva, not just the gfn.  The
> gfn may not reflect the real alignment within the hugetlbfs file.
> 
For some reason you dropped very good commit message from v1. I applied
v2 with v1 commit message.

> Signed-off-by: Greg Edwards 
> Cc: sta...@vger.kernel.org
> ---
>  virt/kvm/iommu.c | 4 
>  1 file changed, 4 insertions(+)
> 
> diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
> index 72a130b..c329c8f 100644
> --- a/virt/kvm/iommu.c
> +++ b/virt/kvm/iommu.c
> @@ -103,6 +103,10 @@ int kvm_iommu_map_pages(struct kvm *kvm, struct 
> kvm_memory_slot *slot)
>   while ((gfn << PAGE_SHIFT) & (page_size - 1))
>   page_size >>= 1;
>  
> + /* Make sure hva is aligned to the page size we want to map */
> + while (__gfn_to_hva_memslot(slot, gfn) & (page_size - 1))
> + page_size >>= 1;
> +
>   /*
>* Pin all pages we are about to map in memory. This is
>* important because we unmap and unpin in 4kb steps later.
> -- 
> 1.8.3.2
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2] KVM: IOMMU: hva align mapping page size

2013-11-04 Thread Marcelo Tosatti
On Mon, Nov 04, 2013 at 09:08:12AM -0700, Greg Edwards wrote:
> When determining the page size we could use to map with the IOMMU, the
> page size should also be aligned with the hva, not just the gfn.  The
> gfn may not reflect the real alignment within the hugetlbfs file.
> 
> Signed-off-by: Greg Edwards 
> Cc: sta...@vger.kernel.org
> ---
>  virt/kvm/iommu.c | 4 
>  1 file changed, 4 insertions(+)
> 
> diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
> index 72a130b..c329c8f 100644
> --- a/virt/kvm/iommu.c
> +++ b/virt/kvm/iommu.c
> @@ -103,6 +103,10 @@ int kvm_iommu_map_pages(struct kvm *kvm, struct 
> kvm_memory_slot *slot)
>   while ((gfn << PAGE_SHIFT) & (page_size - 1))
>   page_size >>= 1;
>  
> + /* Make sure hva is aligned to the page size we want to map */
> + while (__gfn_to_hva_memslot(slot, gfn) & (page_size - 1))
> + page_size >>= 1;
> +
>   /*
>* Pin all pages we are about to map in memory. This is
>* important because we unmap and unpin in 4kb steps later.
> -- 
> 1.8.3.2

Reviewed-by: Marcelo Tosatti 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2] KVM: IOMMU: hva align mapping page size

2013-11-04 Thread Marcelo Tosatti
On Mon, Nov 04, 2013 at 09:08:12AM -0700, Greg Edwards wrote:
 When determining the page size we could use to map with the IOMMU, the
 page size should also be aligned with the hva, not just the gfn.  The
 gfn may not reflect the real alignment within the hugetlbfs file.
 
 Signed-off-by: Greg Edwards gedwa...@ddn.com
 Cc: sta...@vger.kernel.org
 ---
  virt/kvm/iommu.c | 4 
  1 file changed, 4 insertions(+)
 
 diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
 index 72a130b..c329c8f 100644
 --- a/virt/kvm/iommu.c
 +++ b/virt/kvm/iommu.c
 @@ -103,6 +103,10 @@ int kvm_iommu_map_pages(struct kvm *kvm, struct 
 kvm_memory_slot *slot)
   while ((gfn  PAGE_SHIFT)  (page_size - 1))
   page_size = 1;
  
 + /* Make sure hva is aligned to the page size we want to map */
 + while (__gfn_to_hva_memslot(slot, gfn)  (page_size - 1))
 + page_size = 1;
 +
   /*
* Pin all pages we are about to map in memory. This is
* important because we unmap and unpin in 4kb steps later.
 -- 
 1.8.3.2

Reviewed-by: Marcelo Tosatti mtosa...@redhat.com

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2] KVM: IOMMU: hva align mapping page size

2013-11-04 Thread Gleb Natapov
On Mon, Nov 04, 2013 at 09:08:12AM -0700, Greg Edwards wrote:
 When determining the page size we could use to map with the IOMMU, the
 page size should also be aligned with the hva, not just the gfn.  The
 gfn may not reflect the real alignment within the hugetlbfs file.
 
For some reason you dropped very good commit message from v1. I applied
v2 with v1 commit message.

 Signed-off-by: Greg Edwards gedwa...@ddn.com
 Cc: sta...@vger.kernel.org
 ---
  virt/kvm/iommu.c | 4 
  1 file changed, 4 insertions(+)
 
 diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
 index 72a130b..c329c8f 100644
 --- a/virt/kvm/iommu.c
 +++ b/virt/kvm/iommu.c
 @@ -103,6 +103,10 @@ int kvm_iommu_map_pages(struct kvm *kvm, struct 
 kvm_memory_slot *slot)
   while ((gfn  PAGE_SHIFT)  (page_size - 1))
   page_size = 1;
  
 + /* Make sure hva is aligned to the page size we want to map */
 + while (__gfn_to_hva_memslot(slot, gfn)  (page_size - 1))
 + page_size = 1;
 +
   /*
* Pin all pages we are about to map in memory. This is
* important because we unmap and unpin in 4kb steps later.
 -- 
 1.8.3.2
 
 --
 To unsubscribe from this list: send the line unsubscribe kvm in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Gleb.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/