owned this note
owned this note
Published
Linked with GitHub
# <center>Wrapper Codes and debugging</center>
###### tags: `O-RAN`
:::info
**Goal:**
The goal is to understand what the wrapper codes do and how to construct one. First, we will need the available unit tests to function properly
- [x] Understand the references taught by Shuhua
- [x] Try the available options for debugging the unit tests
:::
:::warning
**References:**
- [FHI Discussion - HackMD](https://hackmd.io/903nREczSNmNhjH6IyTVHQ?view#OSC-wrapper-issue---Is-that-wrapper-xran_lib_wraphpp-in-OSC-can-be-worked-)
- [Wrapper Introduction - HackMD](https://hackmd.io/gjMfVDqxRvm1kjrz2opzUA?view#Wrapper-Introduction)
- [Testing build FHlib - HackMD](https://hackmd.io/YWvtEzOYSgyILqRla9M2pQ)
- [Memory in DPDK Part 2: Deep Dive into IOVA (intel.com)](https://software.intel.com/content/www/us/en/develop/articles/memory-in-dpdk-part-2-deep-dive-into-iova.html)
:::
:::spoiler debugging approach
- since the errors show the problem is in the IOVA modes, I'll try to look into that first
:::
## Errors analysis
:::danger
**Making xran_test**
```=shell
[oai@ee705-7-ip120 test_xran]$ ls
chain_tests.cc init_sys_functional.cc unittests
chain_tests.o init_sys_functional.o unittests.cc
compander_functional.cc Makefile unittests.o
compander_functional.o prach_functional.cc u_plane_functional.cc
conf.json prach_functional.o u_plane_functional.o
c_plane_tests.cc prach_performance.cc u_plane_performance.cc
c_plane_tests.o prach_performance.o
[oai@ee705-7-ip120 test_xran]$ ./unittests
O-DU MAC address: 00:11:22:33:44:66
O-RU MAC address: 00:11:22:33:44:66
eAxCID - 12:8:4:0 (f000, 0f00, 00f0, 000f)
Total BF Weights : 64
xran_init: MTU 9600
total cores 72 c_mask 0xa7 core 5 [id] system_core 0 [id] pkt_proc_core 0x6 [mask] pkt_aux_core 0 [id] timing_core 7 [id]
xran_ethdi_init_dpdk_io: Calling rte_eal_init:wls -c 0xa7 -n2 --iova-mode=pa --socket-mem=8192 --socket-limit=8192 --proc-type=auto --file-prefix wls -w 0000:00 :00.0
EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Auto-detected process type: PRIMARY
EAL: Multi-process socket /run/user/1000/dpdk/wls/mp_socket
==EAL: FATAL: Cannot use IOVA as 'PA' since physical addresses are not available==
EAL: Cannot use IOVA as 'PA' since physical addresses are not available
PANIC in xran_ethdi_init_dpdk_io():
Cannot init EAL: Invalid argument
7: [./unittests() [0x40ad29]]
6: [/lib64/libc.so.6(__libc_start_main+0xf5) [0x7fc0216b3555]]
5: [./unittests() [0xa0f98f]]
4: [./unittests() [0xa199aa]]
3: [./unittests() [0xbb9e43]]
2: [./unittests() [0xb0d52f]]
1: [./unittests() [0xc08720]]
Aborted (core dumped)
```
Found errors on xran_ethdi_init_dpdk_io() function in ethdi.c that calls DPDK
:::
### Environment Abstraction Layer
The EAL is a DPDK library that creates an abstraction of the system's environment (hardware, OS, interfaces..) which is crucial for creating network virtualized functions.
DPDK does not differentiate physical and virtual IO addresses and always refers them as IOVA even if no IO memory management unit (IOMMU) is involved in VA. IOVA modes are special cases :
| Physical Address Mode (PA) | Virtual Address Mode (VA) |
| ------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
| IOVA address are assigned to all DPDK memory are actual physical address | The physical memory layout is reshuffled to match virtual memory layout |
| Does not require IOMMU to work | Uses IOMMU to remap physical memory |
| Works well with kernel space (physical address => kernel address) | Memory is IOVA contiguous |
| PA mode is *default* | Preferable for emulated environments |
**How to set**
```cmake=
./app --iova-mode=pa # use IOVA as PA mode
./app --iova-mode=va # use IOVA as VA mode
```
### Debug attempt

:::spoiler build results
:::warning
```=shell
[oai@ee705-7-ip120 fhi_lib]$ ./build.sh
Number of commandline arguments: 0
MLOG folder is not set. Disable MLOG (MLOG_DIR=)
Building xRAN Library
LIBXRANSO = 0
MLOG = 0
============================================================================================
Building ./build/libxran.so
RTE_TARGET = x86_64-native-linuxapp-icc
============================================================================================
[BUILD] lib : libxran
[DEP] libxran.dep
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/ethernet/ethdi.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/ethernet/ethernet.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_up_api.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_sync_api.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_timer.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_cp_api.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_transport.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_common.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_ul_tables.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_frame_struct.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_app_frag.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_main.o
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_compression.o
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_ref.o
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane8.o
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane16.o
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane32.o
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane64.o
[AR] build/libxran.so
./build/libxran.so
Building xRAN Test Application
============================================================================================
Building ./build/sample-app
RTE_TARGET = x86_64-native-linuxapp-icc
============================================================================================
[BUILD] elf : sample-app
[DEP] sample-app.dep
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/app/src/common.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/app/src/sample-app.o
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/app/src/config.o
[LD] build/sample-app
./build/sample-app
Building xRAN Test Application (/home/oai/gtest-1.7.0)
Build Tests with
/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src
/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/api
[CC] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/xranlib_unit_test_main.o
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/xranlib_unit_test_main.cc(10):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(142): warning #68: integer conversion resulted in a change of sign
if (x != 0 || __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/xranlib_unit_test_main.cc(10):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(168): warning #68: integer conversion resulted in a change of sign
success = __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
[CC] c_plane_tests.o
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from c_plane_tests.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(142): warning #68: integer conversion resulted in a change of sign
if (x != 0 || __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from c_plane_tests.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(168): warning #68: integer conversion resulted in a change of sign
success = __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
[CC] chain_tests.o
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from chain_tests.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(142): warning #68: integer conversion resulted in a change of sign
if (x != 0 || __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from chain_tests.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(168): warning #68: integer conversion resulted in a change of sign
success = __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
[CC] prach_functional.o
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from prach_functional.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(142): warning #68: integer conversion resulted in a change of sign
if (x != 0 || __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from prach_functional.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(168): warning #68: integer conversion resulted in a change of sign
success = __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
[CC] prach_performance.o
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from prach_performance.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(142): warning #68: integer conversion resulted in a change of sign
if (x != 0 || __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from prach_performance.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(168): warning #68: integer conversion resulted in a change of sign
success = __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
[CC] u_plane_functional.o
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from u_plane_functional.cc(19):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(142): warning #68: integer conversion resulted in a change of sign
if (x != 0 || __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from u_plane_functional.cc(19):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(168): warning #68: integer conversion resulted in a change of sign
success = __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
[CC] init_sys_functional.o
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from init_sys_functional.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(142): warning #68: integer conversion resulted in a change of sign
if (x != 0 || __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from init_sys_functional.cc(20):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(168): warning #68: integer conversion resulted in a change of sign
success = __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
[CC] compander_functional.o
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from compander_functional.cc(19):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(142): warning #68: integer conversion resulted in a change of sign
if (x != 0 || __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from compander_functional.cc(19):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(168): warning #68: integer conversion resulted in a change of sign
success = __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
[CC] unittests.o
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.o
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.cpp(18):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(142): warning #68: integer conversion resulted in a change of sign
if (x != 0 || __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
In file included from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_rwlock.h(12),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_fbarray.h(40),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_memory.h(25),
from /home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/rte_malloc.h(17),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.hpp(31),
from /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.cpp(18):
/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include/generic/rte_rwlock.h(168): warning #68: integer conversion resulted in a change of sign
success = __atomic_compare_exchange_n(&rwl->cnt, &x, -1, 1,
^
remark #11074: Inlining inhibited by limit max-size
remark #11074: Inlining inhibited by limit max-total-size
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_compression.o
remark #11074: Inlining inhibited by limit max-total-size
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_ref.o
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane8.o
remark #11074: Inlining inhibited by limit max-total-size
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane16.o
remark #11074: Inlining inhibited by limit max-total-size
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane32.o
remark #11074: Inlining inhibited by limit max-total-size
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[CPP] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane64.o
remark #11074: Inlining inhibited by limit max-total-size
remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/ethernet/ethdi.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/ethernet/ethernet.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_up_api.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_sync_api.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_timer.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_cp_api.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_transport.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_common.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_ul_tables.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_frame_struct.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_app_frag.o
[C] /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_main.o
[LD] unittests
icpc -isystem /home/oai/gtest-1.7.0/include -I/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src -I/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/api -g -std=gnu++11 -Wall -Wextra -pthread -I/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/api -I/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src -I/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/ethernet -I/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/../mlog/source -I /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common -I/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/include -L/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/../mlog/bin -Wl, -L/home/oai/DPDK/dpdk-19.11/x86_64-native-linuxapp-icc/lib -Wl,-lrte_flow_classify -Wl,--whole-archive -Wl,-lrte_pipeline -Wl,--no-whole-archive -Wl,--whole-archive -Wl,-lrte_table -Wl,--no-whole-archive -Wl,--whole-archive -Wl,-lrte_port -Wl,--no-whole-archive -Wl,-lrte_pdump -Wl,-lrte_distributor -Wl,-lrte_ip_frag -Wl,-lrte_meter -Wl,-lrte_lpm -Wl,--whole-archive -Wl,-lrte_acl -Wl,--no-whole-archive -Wl,-lrte_jobstats -Wl,-lrte_metrics -Wl,-lrte_bitratestats -Wl,-lrte_latencystats -Wl,-lrte_power -Wl,-lrte_efd -Wl,-lrte_bpf -Wl,--whole-archive -Wl,-lrte_cfgfile -Wl,-lrte_gro -Wl,-lrte_gso -Wl,-lrte_hash -Wl,-lrte_member -Wl,-lrte_vhost -Wl,-lrte_kvargs -Wl,-lrte_mbuf -Wl,-lrte_net -Wl,-lrte_ethdev -Wl,-lrte_bbdev -Wl,-lrte_cryptodev -Wl,-lrte_security -Wl,-lrte_compressdev -Wl,-lrte_eventdev -Wl,-lrte_rawdev -Wl,-lrte_timer -Wl,-lrte_mempool -Wl,-lrte_mempool_ring -Wl,-lrte_ring -Wl,-lrte_pci -Wl,-lrte_eal -Wl,-lrte_cmdline -Wl,-lrte_reorder -Wl,-lrte_sched -Wl,-lrte_kni -Wl,-lrte_common_octeontx -Wl,-lrte_bus_pci -Wl,-lrte_bus_vdev -Wl,-lrte_bus_dpaa -Wl,-lrte_common_dpaax -Wl,-lrte_stack -Wl,-lrte_bus_fslmc -Wl,-lrte_mempool_bucket -Wl,-lrte_mempool_stack -Wl,-lrte_mempool_dpaa -Wl,-lrte_mempool_dpaa2 -Wl,-lrte_pmd_af_packet -Wl,-lrte_pmd_ark -Wl,-lrte_pmd_iavf -Wl,-lrte_pmd_avp -Wl,-lrte_pmd_axgbe -Wl,-lrte_pmd_bnxt -Wl,-lrte_pmd_bond -Wl,-lrte_pmd_cxgbe -Wl,-lrte_pmd_dpaa -Wl,-lrte_pmd_dpaa2 -Wl,-lrte_pmd_e1000 -Wl,-lrte_pmd_ena -Wl,-lrte_pmd_enic -Wl,-lrte_pmd_fm10k -Wl,-lrte_pmd_failsafe -Wl,-lrte_pmd_i40e -Wl,-lrte_pmd_ixgbe -Wl,-lrte_pmd_kni -Wl,-lrte_pmd_lio -Wl,-lrte_pmd_nfp -Wl,-lrte_pmd_null -Wl,-lrte_pmd_qede -Wl,-lrte_pmd_ring -Wl,-lrte_pmd_softnic -Wl,-lrte_pmd_tap -Wl,-lrte_pmd_thunderx_nicvf -Wl,-lrte_pmd_vdev_netvsc -Wl,-lrte_pmd_virtio -Wl,-lrte_pmd_vhost -Wl,-lrte_pmd_ifc -Wl,-lrte_pmd_vmxnet3_uio -Wl,-lrte_bus_vmbus -Wl,-lrte_pmd_netvsc -Wl,-lrte_pmd_bbdev_null -Wl,-lrte_pmd_null_crypto -Wl,-lrte_pmd_crypto_scheduler -Wl,-lrte_pmd_dpaa2_sec -Wl,-lrte_pmd_dpaa_sec -Wl,-lrte_pmd_virtio_crypto -Wl,-lrte_pmd_octeontx_zip -Wl,-lrte_pmd_qat -Wl,-lrte_pmd_skeleton_event -Wl,-lrte_pmd_sw_event -Wl,-lrte_pmd_octeontx_ssovf -Wl,-lrte_pmd_dpaa_event -Wl,-lrte_pmd_dpaa2_event -Wl,-lrte_mempool_octeontx -Wl,-lrte_pmd_octeontx -Wl,-lrte_pmd_opdl_event -Wl,-lrte_rawdev_skeleton -Wl,-lrte_rawdev_dpaa2_cmdif -Wl,-lrte_rawdev_dpaa2_qdma -Wl,-lrte_bus_ifpga -Wl,--no-whole-archive -Wl,-lrt -Wl,-lm -Wl,-lnuma -Wl,-ldl -Wl, -lpthread -lnuma /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/xranlib_unit_test_main.o c_plane_tests.o chain_tests.o prach_functional.o prach_performance.o u_plane_functional.o init_sys_functional.o compander_functional.o unittests.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/test/common/common.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_compression.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_ref.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane8.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane16.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane32.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_bfp_cplane64.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/ethernet/ethdi.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/ethernet/ethernet.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_up_api.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_sync_api.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_timer.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_cp_api.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_transport.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_common.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_ul_tables.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_frame_struct.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_app_frag.o /home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src/xran_main.o /home/oai/gtest-1.7.0/libgtest.a -o unittests
"make $COMMAND_LINE" command exited with code 0.
```
:::
:::danger
**Results**
```=shell
[oai@ee705-7-ip120 test_xran]$ make
Build Tests with
/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/src
/home/oai/O-DU/o-ran-sc-cherry-20201215-part-1/phy/fhi_lib/lib/api
[oai@ee705-7-ip120 test_xran]$ ./unittests
O-DU MAC address: 00:11:22:33:44:66
O-RU MAC address: 00:11:22:33:44:66
eAxCID - 12:8:4:0 (f000, 0f00, 00f0, 000f)
Total BF Weights : 64
xran_init: MTU 9600
total cores 72 c_mask 0xa7 core 5 [id] system_core 0 [id] pkt_proc_core 0x6 [mask] pkt_aux_core 0 [id] timing_core 7 [id]
xran_ethdi_init_dpdk_io: Calling rte_eal_init:wls -c 0xa7 -n2 --iova-mode=va --socket-mem=8192 --socket-limit=8192 --proc-type=auto --file-prefix wls -w 0000:00:00.0
EAL: Detected 72 lcore(s)
EAL: Detected 2 NUMA nodes
EAL: Auto-detected process type: PRIMARY
EAL: Multi-process socket /run/user/1000/dpdk/wls/mp_socket
EAL: Selected IOVA mode 'VA'
EAL: Probing VFIO support...
EAL: VFIO support initialized
EAL: Couldn't get fd on hugepage file
EAL: Couldn't get fd on hugepage file
EAL: Couldn't get fd on hugepage file
EAL: Couldn't get fd on hugepage file
EAL: eal_memalloc_alloc_seg_bulk(): couldn't find suitable memseg_list
EAL: FATAL: Cannot init memory
EAL: Cannot init memory
PANIC in xran_ethdi_init_dpdk_io():
Cannot init EAL: Cannot allocate memory
7: [./unittests() [0x40ad29]]
6: [/lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1a77a1b555]]
5: [./unittests() [0xa0f98f]]
4: [./unittests() [0xa199aa]]
3: [./unittests() [0xbb9e43]]
2: [./unittests() [0xb0d52f]]
1: [./unittests() [0xc08720]]
Aborted (core dumped)
```
- It caused errors when building *sign error because of integer conversion*
- *Physical address not available* errors are not showing here, the server is setup with PA mode so we'll stick with that
- Another error *EAL: Couldn't get fd on hugepage file* occured
:::