[v7,3/3] test: change external memory test to use system page sz

Message ID 20210112173923.30320-4-ndabilpuram@marvell.com (mailing list archive)
State Superseded, archived
Delegated to: David Marchand
Headers
Series fix issue with partial DMA unmap |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-testing success Testing PASS

Commit Message

Nithin Dabilpuram Jan. 12, 2021, 5:39 p.m. UTC
  Currently external memory test uses 4K page size.
VFIO DMA mapping works only with system page granularity.

Earlier it was working because all the contiguous mappings
were coalesced and mapped in one-go which ended up becoming
a lot bigger page. Now that VFIO DMA mappings both in IOVA as VA
and IOVA as PA mode, are being done at memseg list granularity,
we need to use system page size.

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
 app/test/test_external_mem.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
  

Comments

David Marchand Jan. 14, 2021, 4:30 p.m. UTC | #1
On Tue, Jan 12, 2021 at 6:39 PM Nithin Dabilpuram
<ndabilpuram@marvell.com> wrote:
>
> Currently external memory test uses 4K page size.
> VFIO DMA mapping works only with system page granularity.
>
> Earlier it was working because all the contiguous mappings
> were coalesced and mapped in one-go which ended up becoming
> a lot bigger page. Now that VFIO DMA mappings both in IOVA as VA
> and IOVA as PA mode, are being done at memseg list granularity,
> we need to use system page size.

When you say "earlier", do you mean before this series?
The other patches have been marked for backports, so either this test
change must be too, or its content must be squashed in the right patch
of this series.
  
Nithin Dabilpuram Jan. 15, 2021, 6:57 a.m. UTC | #2
On Thu, Jan 14, 2021 at 05:30:05PM +0100, David Marchand wrote:
> On Tue, Jan 12, 2021 at 6:39 PM Nithin Dabilpuram
> <ndabilpuram@marvell.com> wrote:
> >
> > Currently external memory test uses 4K page size.
> > VFIO DMA mapping works only with system page granularity.
> >
> > Earlier it was working because all the contiguous mappings
> > were coalesced and mapped in one-go which ended up becoming
> > a lot bigger page. Now that VFIO DMA mappings both in IOVA as VA
> > and IOVA as PA mode, are being done at memseg list granularity,
> > we need to use system page size.
> 
> When you say "earlier", do you mean before this series?
> The other patches have been marked for backports, so either this test
> change must be too, or its content must be squashed in the right patch
> of this series.

Yes, I meant before this series when I said "earlier".
Missed to cc stable on this patch. Will send a V8.

> 
> 
> -- 
> David Marchand
>
  

Patch

diff --git a/app/test/test_external_mem.c b/app/test/test_external_mem.c
index 7eb81f6..5edf88b 100644
--- a/app/test/test_external_mem.c
+++ b/app/test/test_external_mem.c
@@ -13,6 +13,7 @@ 
 #include <rte_common.h>
 #include <rte_debug.h>
 #include <rte_eal.h>
+#include <rte_eal_paging.h>
 #include <rte_errno.h>
 #include <rte_malloc.h>
 #include <rte_ring.h>
@@ -532,8 +533,8 @@  test_extmem_basic(void *addr, size_t len, size_t pgsz, rte_iova_t *iova,
 static int
 test_external_mem(void)
 {
+	size_t pgsz = rte_mem_page_size();
 	size_t len = EXTERNAL_MEM_SZ;
-	size_t pgsz = RTE_PGSIZE_4K;
 	rte_iova_t iova[len / pgsz];
 	void *addr;
 	int ret, n_pages;