[v7,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.
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
app/test/test_external_mem.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
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.
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
>
@@ -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;