From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from tama500.ecl.ntt.co.jp (tama500.ecl.ntt.co.jp [129.60.39.148]) by dpdk.org (Postfix) with ESMTP id 7C2371B5E6 for ; Thu, 21 Jun 2018 12:54:48 +0200 (CEST) Received: from vc1.ecl.ntt.co.jp (vc1.ecl.ntt.co.jp [129.60.86.153]) by tama500.ecl.ntt.co.jp (8.13.8/8.13.8) with ESMTP id w5LAslvq028814; Thu, 21 Jun 2018 19:54:47 +0900 Received: from vc1.ecl.ntt.co.jp (localhost [127.0.0.1]) by vc1.ecl.ntt.co.jp (Postfix) with ESMTP id 6DB01EA8363; Thu, 21 Jun 2018 19:54:47 +0900 (JST) Received: from jcms-pop21.ecl.ntt.co.jp (jcms-pop21.ecl.ntt.co.jp [129.60.87.134]) by vc1.ecl.ntt.co.jp (Postfix) with ESMTP id 63191EA829C; Thu, 21 Jun 2018 19:54:47 +0900 (JST) Received: from [IPv6:::1] (watercress.nslab.ecl.ntt.co.jp [129.60.13.73]) by jcms-pop21.ecl.ntt.co.jp (Postfix) with ESMTPSA id 5EDD140094A; Thu, 21 Jun 2018 19:54:47 +0900 (JST) References: <20180619113720.8336-1-shinohara.kenta@lab.ntt.co.jp> <20180619113720.8336-6-shinohara.kenta@lab.ntt.co.jp> From: Yasufumi Ogawa Message-ID: <239ce0bf-bce8-af8a-c9b1-71a581b85b4e@lab.ntt.co.jp> Date: Thu, 21 Jun 2018 19:53:20 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <20180619113720.8336-6-shinohara.kenta@lab.ntt.co.jp> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-CC-Mail-RelayStamp: 1 To: Kenta Shinohara , spp@dpdk.org, ferruh.yigit@intel.com X-TM-AS-MML: disable Subject: Re: [spp] [PATCH 5/7] spp_vm: fix changing spec of rte_mem_config X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 21 Jun 2018 10:54:49 -0000 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@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@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@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@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 Thanks! Acked-by: Yasufumi Ogawa > > --- > 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; >