[v8,3/3] test: change external memory test to use system page sz
Checks
Commit Message
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.
Fixes: b270daa43b3d ("test: support external memory")
Cc: anatoly.burakov@intel.com
Cc: stable@dpdk.org
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
app/test/test_external_mem.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
On 15-Jan-21 7:32 AM, Nithin Dabilpuram 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.
>
> Fixes: b270daa43b3d ("test: support external memory")
> Cc: anatoly.burakov@intel.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
@@ -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;