WukLab / LITE

LITE Kernel RDMA Support for Datacenter Applications. SOSP 2017.
106 stars 19 forks source link

problem with userspace compiling #6

Closed bueryg closed 5 years ago

bueryg commented 6 years ago

Today I tried to compile the userspace program and I get problem like this: lite-lib.h:153:12: warning: inline function ‘userspace_liteapi_memset’ declared but never defined inline int userspace_liteapi_memset(unsigned lite_handler, int offset, int size); I searched the code and did not find the definition of 'userspace_liteapi_memset' Many other functions also have the problem. Make error: lite_join.c:(.text+0x26): undefined reference to userspace_liteapi_join' lite_join.c:(.text+0x2b): undefined reference touserspace_liteapi_get_node_id' collect2: error: ld returned 1 exit status make: *** [lite_join.o] Error 1

shinyehtsai commented 6 years ago

userspace_liteapi_join It's defined under https://github.com/WukLab/LITE/blob/master/lite-userspace/lite-lib.h and https://github.com/WukLab/LITE/blob/master/lite-userspace/lite-lib.c .

But userspaceliteapi_memset is really not defined. I would fix this in the next patch.

bueryg commented 6 years ago

When I degraded the gcc compiler ,the problem disappeared.But when I executed the lite_insmod.sh , errors appeared: WARNING: "mcount" [/LITE-master/core/lite_internal.ko] undefined! WARNING: "mcount" [/LITE-master/core/lite_api.ko] undefined! make[1]: Leaving directory `/LITE-master/lite-kernel' insmod: error inserting 'lite_internal.ko': -1 File exists insmod: error inserting 'lite_api.ko': -1 File exists

shinyehtsai commented 6 years ago

That's weird. I think I didn't setup a valuable which is named as mcount in my code.

bueryg commented 6 years ago

The problem is that I have loaded these two modules. [root@DDST-R820-01 core]# lsmod | grep lite_internal lite_internal 5600799 1 lite_api ib_core 71269 14 lite_api,lite_internal,ib_ucm,ib_iser,rdma_ucm,rdma_cm,iw_cm,ib_uverbs,ib_ipoib,ib_cm,ib_umad,mlx4_ib,ib_sa,ib_mad [root@DDST-R820-01 core]# lsmod | grep lite_api lite_api 37082 0 lite_internal 5600799 1 lite_api ib_core 71269 14 lite_api,lite_internal,ib_ucm,ib_iser,rdma_ucm,rdma_cm,iw_cm,ib_uverbs,ib_ipoib,ib_cm,ib_umad,mlx4_ib,ib_sa,ib_mad

shinyehtsai commented 6 years ago

If you already load two modules, why do you need to insert again? I am a little bit confused. Did you

  1. Execute insmod.sh
  2. Execute userspace join (modify lite-join with your own IP to join cluster)
  3. Execute userspace app code (such as write or rpc)