[spp] [PATCH 5/7] spp_vm: fix changing spec of rte_mem_config

Kenta Shinohara shinohara.kenta at lab.ntt.co.jp
Tue Jun 19 13:37:18 CEST 2018


Spp_vm is encountered the following error on DPDK v18.05.

build error:
/home/k-shino/spp/src/vm/main.c: In function ‘get_memzone_by_addr’:
/home/k-shino/spp/src/vm/main.c:321:14: error: ‘struct rte_mem_config’
 has no member named ‘memzone’
   tmp = &mcfg->memzone[i];
              ^
/home/k-shino/.dpdkenv/versions/dpdk-18.05 at x86_64-native-linuxapp-gcc/
mk/internal/rte.compile-pre.mk:114: recipe for target 'main.o' failed
make[3]: *** [main.o] Error 1
/home/k-shino/.dpdkenv/versions/dpdk-18.05 at x86_64-native-linuxapp-gcc/
mk/rte.extapp.mk:14: recipe for target 'all' failed make[2]: *** [all]
 Error 2
/home/k-shino/.dpdkenv/versions/dpdk-18.05 at x86_64-native-linuxapp-gcc/
mk/rte.extsubdir.mk:21: recipe for target 'vm' failed make[1]: *** [vm
] Error 2
/home/k-shino/.dpdkenv/versions/dpdk-18.05 at x86_64-native-linuxapp-gcc/
mk/rte.extsubdir.mk:21: recipe for target 'src' failed make: *** [src]
 Error 2

This error caused by changing specification of struct 'rte_fbarray'.
To fix this, use 'rte_fbarray_get' and experimental method
'rte_fbarray_find_next_used' instead of array 'memzone[]'.

Signed-off-by: Kenta Shinohara <shinohara.kenta at lab.ntt.co.jp>

---
 src/vm/main.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/vm/main.c b/src/vm/main.c
index 94ba8d1..6522d55 100644
--- a/src/vm/main.c
+++ b/src/vm/main.c
@@ -340,19 +340,22 @@ get_memzone_by_addr(const void *addr)
 {
 	struct rte_memzone *tmp, *mz;
 	struct rte_mem_config *mcfg;
+	struct rte_fbarray *arr;
 	int i;
 
 	mcfg = rte_eal_get_configuration()->mem_config;
+	arr = &mcfg->memzones;
 	mz = NULL;
 
 	/* find memzone for the ring */
-	for (i = 0; i < RTE_MAX_MEMZONE; i++) {
-		tmp = &mcfg->memzone[i];
-
-		if (tmp->addr_64 == (uint64_t) addr) {
+	i = rte_fbarray_find_next_used(arr, 0);
+	while (i >= 0) {
+		tmp = rte_fbarray_get(arr, i);
+		if (mz->addr_64 == (uint64_t) addr) {
 			mz = tmp;
 			break;
 		}
+		i = rte_fbarray_find_next_used(arr, i+1);
 	}
 
 	return mz;
-- 
2.15.1 (Apple Git-101)



More information about the spp mailing list