[spp] [PATCH 5/7] spp_vm: fix changing spec of rte_mem_config
Yasufumi Ogawa
ogawa.yasufumi at lab.ntt.co.jp
Thu Jun 21 12:53:20 CEST 2018
On 2018/06/19 20:37, Kenta Shinohara wrote:
> 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>
Thanks!
Acked-by: Yasufumi Ogawa <ogawa.yasufumi 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;
>
More information about the spp
mailing list