emmericp / MoonGen

MoonGen is a fully scriptable high-speed packet generator built on DPDK and LuaJIT. It can saturate a 10 Gbit/s connection with 64 byte packets on a single CPU core while executing user-provided Lua scripts for each packet. Multi-core support allows for even higher rates. It also features precise and accurate timestamping and rate control.
MIT License
1.03k stars 234 forks source link

Build error moongen (insmod: ERROR: could not insert module ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko: Invalid module format) #302

Closed sabarishsubramanian closed 3 years ago

sabarishsubramanian commented 3 years ago

Hello all,

I have build a customised HTTP load balancer. I would like to test my load balancer with traffic input. So i came to know moongen can be used to generate the traffic and feed to my load balancer.

When i try to build as mentioned in installation guide i get an build error. $ ./build.sh Build libmoon with MoonGen ==== Building LuaJIT 2.1.0-beta3 ==== make -C src make[1]: Entering directory '/home/uhost8/MoonGen/libmoon/deps/luajit/src' make[1]: Nothing to be done for 'default'. make[1]: Leaving directory '/home/uhost8/MoonGen/libmoon/deps/luajit/src' ==== Successfully built LuaJIT 2.1.0-beta3 ==== ==== Installing LuaJIT 2.1.0-beta3 to /usr/local ==== mkdir -p /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/bin /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/man/man1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/pkgconfig /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.1.0-beta3/jit /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/lua/5.1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/lua/5.1 cd src && install -m 0755 luajit /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit-2.1.0-beta3 cd src && test -f libluajit.a && install -m 0644 libluajit.a /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.a || : rm -f /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.1.0 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 cd src && test -f libluajit.so && \ install -m 0755 libluajit.so /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.1.0 && \ ldconfig -n /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib && \ ln -sf libluajit-5.1.so.2.1.0 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so && \ ln -sf libluajit-5.1.so.2.1.0 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 || : cd etc && install -m 0644 luajit.1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/man/man1 cd etc && sed -e "s|^prefix=.|prefix=/usr/local|" -e "s|^multilib=.|multilib=lib|" luajit.pc > luajit.pc.tmp && \ install -m 0644 luajit.pc.tmp /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/pkgconfig/luajit.pc && \ rm -f luajit.pc.tmp cd src && install -m 0644 lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.1 cd src/jit && install -m 0644 bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua dis_arm64be.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua dis_mips64.lua dis_mips64el.lua vmdef.lua /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.1.0-beta3/jit ==== Successfully installed LuaJIT 2.1.0-beta3 to /usr/local ====

Note: the development releases deliberately do NOT install a symlink for luajit You can do this now by running this command (with sudo):

ln -sf luajit-2.1.0-beta3 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit

Configuration done using x86_64-native-linuxapp-gcc == Build lib == Build lib/librte_compat == Build lib/librte_eal == Build lib/librte_eal/common == Build lib/librte_eal/linuxapp == Build lib/librte_eal/linuxapp/eal == Build lib/librte_eal/linuxapp/igb_uio == Build lib/librte_ring == Build lib/librte_timer == Build lib/librte_cfgfile == Build lib/librte_cmdline == Build lib/librte_kvargs == Build lib/librte_lpm == Build lib/librte_acl == Build lib/librte_jobstats == Build lib/librte_metrics == Build lib/librte_power == Build lib/librte_meter == Build lib/librte_mempool == Build lib/librte_eventdev == Build lib/librte_hash == Build lib/librte_efd == Build lib/librte_mbuf == Build lib/librte_net == Build lib/librte_cryptodev == Build lib/librte_reorder == Build lib/librte_ether == Build lib/librte_sched == Build lib/librte_vhost == Build lib/librte_ip_frag == Build lib/librte_gro == Build lib/librte_bitratestats == Build lib/librte_latencystats == Build lib/librte_distributor == Build lib/librte_kni == Build lib/librte_pdump == Build lib/librte_port == Build lib/librte_table == Build lib/librte_pipeline == Build buildtools == Build buildtools/pmdinfogen == Build drivers == Build drivers/bus == Build drivers/mempool == Build drivers/event == Build drivers/mempool/ring == Build drivers/event/skeleton == Build drivers/mempool/stack == Build drivers/event/sw == Build drivers/event/octeontx == Build drivers/net == Build drivers/crypto == Build drivers/crypto/scheduler == Build drivers/crypto/null == Build drivers/net/af_packet == Build drivers/net/ark == Build drivers/net/avp == Build drivers/net/bonding == Build drivers/net/cxgbe == Build drivers/net/e1000 == Build drivers/net/ena == Build drivers/net/enic == Build drivers/net/failsafe == Build drivers/net/fm10k == Build drivers/net/i40e == Build drivers/net/ixgbe == Build drivers/net/liquidio == Build drivers/net/nfp == Build drivers/net/bnxt == Build drivers/net/null == Build drivers/net/qede == Build drivers/net/ring == Build drivers/net/sfc == Build drivers/net/tap == Build drivers/net/thunderx == Build drivers/net/virtio == Build drivers/net/vmxnet3 == Build drivers/net/kni == Build drivers/net/vhost == Build app == Build app/proc_info == Build app/pdump == Build app/test-crypto-perf == Build app/test-eventdev Build complete [x86_64-native-linuxapp-gcc] make -C deps/http-parser library make[1]: Entering directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -shared -Wl,-soname=libhttp_parser.so.2.1 -o libhttp_parser.so.2.1 libhttp_parser.o make[1]: Leaving directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -Ideps/http-parser/ -shared -O3 -Wall -g -fPIC deps/http-parser/libhttp_parser.o deps/turbo_ffi_wrap.c -o libtffi_wrap.so -lcrypto -lssl Could not compile Turbo with TLS support, disabling TLS Install libssl-dev and OpenSSL to enable TLS support make -C deps/http-parser library make[1]: Entering directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -shared -Wl,-soname=libhttp_parser.so.2.1 -o libhttp_parser.so.2.1 libhttp_parser.o make[1]: Leaving directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -Ideps/http-parser/ -shared -O3 -Wall -g -fPIC -DTURBO_NO_SSL=1 deps/http-parser/libhttp_parser.o deps/turbo_ffi_wrap.c -o libtffi_wrap.so make: Nothing to be done for 'all'. -- Building Intel TBB: /usr/bin/make -j8 tbb_build_prefix=tbb_cmake_build_subdir tbb_build_dir=/home/uhost8/MoonGen/build/libmoon/tbb_cmake_build compiler=gcc -- Configuring done -- Generating done -- Build files have been written to: /home/uhost8/MoonGen/build [ 72%] Built target moon [100%] Built target MoonGen Trying to bind interfaces, this will fail if you are not root Try sudo ./bind-interfaces.sh if this step fails insmod: ERROR: could not insert module ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko: Operation not permitted Could not find any inactive interfaces to bind to DPDK. Note that this script does not bind interfaces that are in use by the OS. Delete IP addresses from interfaces you would like to use with libmoon and run this script again. You can also use the script dpdk-devbind.py in deps/dpdk/usertools manually to manage interfaces used by libmoon and the OS.

$ sudo ./bind-interfaces.sh insmod: ERROR: could not insert module ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko: Invalid module format Could not find any inactive interfaces to bind to DPDK. Note that this script does not bind interfaces that are in use by the OS. Delete IP addresses from interfaces you would like to use with libmoon and run this script again. You can also use the script dpdk-devbind.py in libmoon/deps/dpdk/usertools manually to manage interfaces used by libmoon and the OS.

I dont know how to proceed later. Can some one please guide me through it?

system specs Linux 20.4 with intel graphics

Regards sabarish s

emmericp commented 3 years ago

please post the output of "dmesg | tail" after running the script

Am 10.03.2021 um 12:03 schrieb sabarishsubramanian notifications@github.com:

Hello all,

I have build a customised HTTP load balancer. I would like to test my load balancer with traffic input. So i came to know moongen can be used to generate the traffic and feed to my load balancer.

When i try to build as mentioned in installation guide i get an build error. $ ./build.sh Build libmoon with MoonGen ==== Building LuaJIT 2.1.0-beta3 ==== make -C src make[1]: Entering directory '/home/uhost8/MoonGen/libmoon/deps/luajit/src' make[1]: Nothing to be done for 'default'. make[1]: Leaving directory '/home/uhost8/MoonGen/libmoon/deps/luajit/src' ==== Successfully built LuaJIT 2.1.0-beta3 ==== ==== Installing LuaJIT 2.1.0-beta3 to /usr/local ==== mkdir -p /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/bin /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/man/man1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/pkgconfig /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.1.0-beta3/jit /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/lua/5.1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/lua/5.1 cd src && install -m 0755 luajit /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit-2.1.0-beta3 cd src && test -f libluajit.a && install -m 0644 libluajit.a /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.a || : rm -f /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.1.0 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 cd src && test -f libluajit.so && install -m 0755 libluajit.so /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.1.0 && ldconfig -n /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib && ln -sf libluajit-5.1.so.2.1.0 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so && ln -sf libluajit-5.1.so.2.1.0 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 || : cd etc && install -m 0644 luajit.1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/man/man1 cd etc && sed -e "s|^prefix=.|prefix=/usr/local|" -e "s|^multilib=.|multilib=lib|" luajit.pc > luajit.pc.tmp && install -m 0644 luajit.pc.tmp /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/pkgconfig/luajit.pc && rm -f luajit.pc.tmp cd src && install -m 0644 lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.1 cd src/jit && install -m 0644 bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua dis_arm64be.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua dis_mips64.lua dis_mips64el.lua vmdef.lua /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.1.0-beta3/jit ==== Successfully installed LuaJIT 2.1.0-beta3 to /usr/local ====

Note: the development releases deliberately do NOT install a symlink for luajit You can do this now by running this command (with sudo):

ln -sf luajit-2.1.0-beta3 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit

Configuration done using x86_64-native-linuxapp-gcc == Build lib == Build lib/librte_compat == Build lib/librte_eal == Build lib/librte_eal/common == Build lib/librte_eal/linuxapp == Build lib/librte_eal/linuxapp/eal == Build lib/librte_eal/linuxapp/igb_uio == Build lib/librte_ring == Build lib/librte_timer == Build lib/librte_cfgfile == Build lib/librte_cmdline == Build lib/librte_kvargs == Build lib/librte_lpm == Build lib/librte_acl == Build lib/librte_jobstats == Build lib/librte_metrics == Build lib/librte_power == Build lib/librte_meter == Build lib/librte_mempool == Build lib/librte_eventdev == Build lib/librte_hash == Build lib/librte_efd == Build lib/librte_mbuf == Build lib/librte_net == Build lib/librte_cryptodev == Build lib/librte_reorder == Build lib/librte_ether == Build lib/librte_sched == Build lib/librte_vhost == Build lib/librte_ip_frag == Build lib/librte_gro == Build lib/librte_bitratestats == Build lib/librte_latencystats == Build lib/librte_distributor == Build lib/librte_kni == Build lib/librte_pdump == Build lib/librte_port == Build lib/librte_table == Build lib/librte_pipeline == Build buildtools == Build buildtools/pmdinfogen == Build drivers == Build drivers/bus == Build drivers/mempool == Build drivers/event == Build drivers/mempool/ring == Build drivers/event/skeleton == Build drivers/mempool/stack == Build drivers/event/sw == Build drivers/event/octeontx == Build drivers/net == Build drivers/crypto == Build drivers/crypto/scheduler == Build drivers/crypto/null == Build drivers/net/af_packet == Build drivers/net/ark == Build drivers/net/avp == Build drivers/net/bonding == Build drivers/net/cxgbe == Build drivers/net/e1000 == Build drivers/net/ena == Build drivers/net/enic == Build drivers/net/failsafe == Build drivers/net/fm10k == Build drivers/net/i40e == Build drivers/net/ixgbe == Build drivers/net/liquidio == Build drivers/net/nfp == Build drivers/net/bnxt == Build drivers/net/null == Build drivers/net/qede == Build drivers/net/ring == Build drivers/net/sfc == Build drivers/net/tap == Build drivers/net/thunderx == Build drivers/net/virtio == Build drivers/net/vmxnet3 == Build drivers/net/kni == Build drivers/net/vhost == Build app == Build app/proc_info == Build app/pdump == Build app/test-crypto-perf == Build app/test-eventdev Build complete [x86_64-native-linuxapp-gcc] make -C deps/http-parser library make[1]: Entering directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -shared -Wl,-soname=libhttp_parser.so.2.1 -o libhttp_parser.so.2.1 libhttp_parser.o make[1]: Leaving directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -Ideps/http-parser/ -shared -O3 -Wall -g -fPIC deps/http-parser/libhttp_parser.o deps/turbo_ffi_wrap.c -o libtffi_wrap.so -lcrypto -lssl Could not compile Turbo with TLS support, disabling TLS Install libssl-dev and OpenSSL to enable TLS support make -C deps/http-parser library make[1]: Entering directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -shared -Wl,-soname=libhttp_parser.so.2.1 -o libhttp_parser.so.2.1 libhttp_parser.o make[1]: Leaving directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -Ideps/http-parser/ -shared -O3 -Wall -g -fPIC -DTURBO_NO_SSL=1 deps/http-parser/libhttp_parser.o deps/turbo_ffi_wrap.c -o libtffi_wrap.so make: Nothing to be done for 'all'. -- Building Intel TBB: /usr/bin/make -j8 tbb_build_prefix=tbb_cmake_build_subdir tbb_build_dir=/home/uhost8/MoonGen/build/libmoon/tbb_cmake_build compiler=gcc -- Configuring done -- Generating done -- Build files have been written to: /home/uhost8/MoonGen/build [ 72%] Built target moon [100%] Built target MoonGen Trying to bind interfaces, this will fail if you are not root Try sudo ./bind-interfaces.sh if this step fails insmod: ERROR: could not insert module ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko: Operation not permitted Could not find any inactive interfaces to bind to DPDK. Note that this script does not bind interfaces that are in use by the OS. Delete IP addresses from interfaces you would like to use with libmoon and run this script again. You can also use the script dpdk-devbind.py in deps/dpdk/usertools manually to manage interfaces used by libmoon and the OS.

$ sudo ./bind-interfaces.sh insmod: ERROR: could not insert module ./x86_64-native-linuxapp-gcc/kmod/igb_uio.ko: Invalid module format Could not find any inactive interfaces to bind to DPDK. Note that this script does not bind interfaces that are in use by the OS. Delete IP addresses from interfaces you would like to use with libmoon and run this script again. You can also use the script dpdk-devbind.py in libmoon/deps/dpdk/usertools manually to manage interfaces used by libmoon and the OS.

I dont know how to proceed later. Can some one please guide me through it?

system specs Linux 20.4 with intel graphics

Regards sabarish s

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/emmericp/MoonGen/issues/302, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACEGKALKQ7TWEIGGXCGTWZDTC5GWLANCNFSM4Y5YD2TQ.

sabarishsubramanian commented 3 years ago

$ dmesg | tail [ 8311.281547] wlp4s0: associated [ 8311.359576] IPv6: ADDRCONF(NETDEV_CHANGE): wlp4s0: link becomes ready [ 8327.517935] audit: type=1400 audit(1615373773.356:60): apparmor="DENIED" operation="open" profile="snap.snap-store.ubuntu-software" name="/var/lib/snapd/hostfs/usr/share/gdm/greeter/applications/gnome-initial-setup.desktop" pid=2364 comm="pool-org.gnome." requested_mask="r" denied_mask="r" fsuid=1000 ouid=0 [ 8327.546836] audit: type=1400 audit(1615373773.388:61): apparmor="DENIED" operation="open" profile="snap.snap-store.ubuntu-software" name="/var/lib/snapd/hostfs/usr/share/gdm/greeter/applications/gnome-initial-setup.desktop" pid=2364 comm="pool-org.gnome." requested_mask="r" denied_mask="r" fsuid=1000 ouid=0 [ 8328.018331] audit: type=1326 audit(1615373773.856:62): auid=1000 uid=1000 gid=1000 ses=3 subj=snap.snap-store.ubuntu-software pid=2364 comm="pool-org.gnome." exe="/snap/snap-store/518/usr/bin/snap-store" sig=0 arch=c000003e syscall=93 compat=0 ip=0x7fda2fbff4e7 code=0x50000 [ 8396.292765] igb_uio: version magic '5.8.0-43-generic SMP mod_unload ' should be '5.8.0-44-generic SMP mod_unload ' [ 9268.350987] igb_uio: Use MSIX interrupt by default [ 9268.608439] igb_uio 0000:03:00.1: uio device registered with irq 81 [ 9268.608451] igb_uio 0000:03:00.1: mapping 1K dma=0x45e0c9000 host=00000000c114de29 [ 9268.608458] igb_uio 0000:03:00.1: unmapping 1K dma=0x45e0c9000 host=00000000c114de29

emmericp commented 3 years ago

Try to delete the .ko file and re-build

sabarishsubramanian commented 3 years ago

I tried deleting .ko file and rebuild but still couldnt come over with the build issue

$ ./build.sh Build libmoon with MoonGen ==== Building LuaJIT 2.1.0-beta3 ==== make -C src make[1]: Entering directory '/home/uhost8/MoonGen/libmoon/deps/luajit/src' make[1]: Nothing to be done for 'default'. make[1]: Leaving directory '/home/uhost8/MoonGen/libmoon/deps/luajit/src' ==== Successfully built LuaJIT 2.1.0-beta3 ==== ==== Installing LuaJIT 2.1.0-beta3 to /usr/local ==== mkdir -p /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/bin /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/man/man1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/pkgconfig /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.1.0-beta3/jit /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/lua/5.1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/lua/5.1 cd src && install -m 0755 luajit /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit-2.1.0-beta3 cd src && test -f libluajit.a && install -m 0644 libluajit.a /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.a || : rm -f /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.1.0 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 cd src && test -f libluajit.so && \ install -m 0755 libluajit.so /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2.1.0 && \ ldconfig -n /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib && \ ln -sf libluajit-5.1.so.2.1.0 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so && \ ln -sf libluajit-5.1.so.2.1.0 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/libluajit-5.1.so.2 || : cd etc && install -m 0644 luajit.1 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/man/man1 cd etc && sed -e "s|^prefix=.|prefix=/usr/local|" -e "s|^multilib=.|multilib=lib|" luajit.pc > luajit.pc.tmp && \ install -m 0644 luajit.pc.tmp /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/lib/pkgconfig/luajit.pc && \ rm -f luajit.pc.tmp cd src && install -m 0644 lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/include/luajit-2.1 cd src/jit && install -m 0644 bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua dis_arm64be.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua dis_mips64.lua dis_mips64el.lua vmdef.lua /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/share/luajit-2.1.0-beta3/jit ==== Successfully installed LuaJIT 2.1.0-beta3 to /usr/local ====

Note: the development releases deliberately do NOT install a symlink for luajit You can do this now by running this command (with sudo):

ln -sf luajit-2.1.0-beta3 /home/uhost8/MoonGen/libmoon/deps/luajit/usr/local/bin/luajit

Configuration done using x86_64-native-linuxapp-gcc == Build lib == Build lib/librte_compat == Build lib/librte_eal == Build lib/librte_eal/common == Build lib/librte_eal/linuxapp == Build lib/librte_eal/linuxapp/eal == Build lib/librte_eal/linuxapp/igb_uio == Build lib/librte_ring == Build lib/librte_timer == Build lib/librte_cfgfile == Build lib/librte_cmdline == Build lib/librte_kvargs == Build lib/librte_lpm == Build lib/librte_acl == Build lib/librte_jobstats == Build lib/librte_metrics == Build lib/librte_power == Build lib/librte_meter == Build lib/librte_mempool == Build lib/librte_eventdev == Build lib/librte_hash == Build lib/librte_mbuf == Build lib/librte_efd == Build lib/librte_net == Build lib/librte_cryptodev == Build lib/librte_reorder == Build lib/librte_ether == Build lib/librte_sched == Build lib/librte_vhost == Build lib/librte_ip_frag == Build lib/librte_gro == Build lib/librte_bitratestats == Build lib/librte_latencystats == Build lib/librte_distributor == Build lib/librte_kni == Build lib/librte_pdump == Build lib/librte_port == Build lib/librte_table == Build lib/librte_pipeline == Build buildtools == Build buildtools/pmdinfogen == Build drivers == Build drivers/bus == Build drivers/mempool == Build drivers/event == Build drivers/event/skeleton == Build drivers/mempool/ring == Build drivers/mempool/stack == Build drivers/event/sw == Build drivers/event/octeontx == Build drivers/net == Build drivers/crypto == Build drivers/crypto/scheduler == Build drivers/crypto/null == Build drivers/net/af_packet == Build drivers/net/ark == Build drivers/net/avp == Build drivers/net/bonding == Build drivers/net/cxgbe == Build drivers/net/e1000 == Build drivers/net/ena == Build drivers/net/enic == Build drivers/net/failsafe == Build drivers/net/fm10k == Build drivers/net/i40e == Build drivers/net/ixgbe == Build drivers/net/liquidio == Build drivers/net/nfp == Build drivers/net/bnxt == Build drivers/net/null == Build drivers/net/qede == Build drivers/net/ring == Build drivers/net/sfc == Build drivers/net/tap == Build drivers/net/thunderx == Build drivers/net/virtio == Build drivers/net/vmxnet3 == Build drivers/net/kni == Build drivers/net/vhost == Build app == Build app/proc_info == Build app/pdump == Build app/test-crypto-perf == Build app/test-eventdev Build complete [x86_64-native-linuxapp-gcc] make -C deps/http-parser library make[1]: Entering directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -shared -Wl,-soname=libhttp_parser.so.2.1 -o libhttp_parser.so.2.1 libhttp_parser.o make[1]: Leaving directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -Ideps/http-parser/ -shared -O3 -Wall -g -fPIC deps/http-parser/libhttp_parser.o deps/turbo_ffi_wrap.c -o libtffi_wrap.so -lcrypto -lssl Could not compile Turbo with TLS support, disabling TLS Install libssl-dev and OpenSSL to enable TLS support make -C deps/http-parser library make[1]: Entering directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -shared -Wl,-soname=libhttp_parser.so.2.1 -o libhttp_parser.so.2.1 libhttp_parser.o make[1]: Leaving directory '/home/uhost8/MoonGen/libmoon/lua/lib/turbo/deps/http-parser' gcc -Ideps/http-parser/ -shared -O3 -Wall -g -fPIC -DTURBO_NO_SSL=1 deps/http-parser/libhttp_parser.o deps/turbo_ffi_wrap.c -o libtffi_wrap.so make: Nothing to be done for 'all'. -- Building Intel TBB: /usr/bin/make -j8 tbb_build_prefix=tbb_cmake_build_subdir tbb_build_dir=/home/uhost8/MoonGen/build/libmoon/tbb_cmake_build compiler=gcc -- Configuring done -- Generating done -- Build files have been written to: /home/uhost8/MoonGen/build [ 72%] Built target moon [100%] Built target MoonGen Trying to bind interfaces, this will fail if you are not root Try sudo ./bind-interfaces.sh if this step fails Could not find any inactive interfaces to bind to DPDK. Note that this script does not bind interfaces that are in use by the OS. Delete IP addresses from interfaces you would like to use with libmoon and run this script again. You can also use the script dpdk-devbind.py in deps/dpdk/usertools manually to manage interfaces used by libmoon and the OS.

$ dmesg | tail exe="/usr/bin/dbus-daemon" sauid=103 hostname=? addr=? terminal=?' [ 146.554916] audit: type=1107 audit(1615805515.230:51): pid=934 uid=103 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_method_call" bus="system" path="/org/freedesktop/PolicyKit1/Authority" interface="org.freedesktop.DBus.Properties" member="GetAll" mask="send" name=":1.9" pid=2444 label="snap.snap-store.ubuntu-software" peer_pid=951 peer_label="unconfined" exe="/usr/bin/dbus-daemon" sauid=103 hostname=? addr=? terminal=?' [ 146.556123] audit: type=1107 audit(1615805515.230:52): pid=934 uid=103 auid=4294967295 ses=4294967295 subj=unconfined msg='apparmor="DENIED" operation="dbus_method_call" bus="system" path="/org/freedesktop/PolicyKit1/Authority" interface="org.freedesktop.PolicyKit1.Authority" member="CheckAuthorization" mask="send" name=":1.9" pid=2444 label="snap.snap-store.ubuntu-software" peer_pid=951 peer_label="unconfined" exe="/usr/bin/dbus-daemon" sauid=103 hostname=? addr=? terminal=?' [ 147.104964] audit: type=1400 audit(1615805515.778:53): apparmor="DENIED" operation="open" profile="snap.snap-store.ubuntu-software" name="/etc/PackageKit/Vendor.conf" pid=2444 comm="snap-store" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0 [ 164.986391] audit: type=1400 audit(1615805533.662:54): apparmor="DENIED" operation="open" profile="snap.snap-store.ubuntu-software" name="/var/lib/snapd/hostfs/usr/share/gdm/greeter/applications/gnome-initial-setup.desktop" pid=2444 comm="pool-org.gnome." requested_mask="r" denied_mask="r" fsuid=1000 ouid=0 [ 165.015498] audit: type=1400 audit(1615805533.690:55): apparmor="DENIED" operation="open" profile="snap.snap-store.ubuntu-software" name="/var/lib/snapd/hostfs/usr/share/gdm/greeter/applications/gnome-initial-setup.desktop" pid=2444 comm="pool-org.gnome." requested_mask="r" denied_mask="r" fsuid=1000 ouid=0 [ 165.499097] audit: type=1326 audit(1615805534.174:56): auid=1000 uid=1000 gid=1000 ses=3 subj=snap.snap-store.ubuntu-software pid=2444 comm="pool-org.gnome." exe="/snap/snap-store/518/usr/bin/snap-store" sig=0 arch=c000003e syscall=93 compat=0 ip=0x7f690ba0a4e7 code=0x50000 [ 268.277359] igb_uio: Use MSIX interrupt by default

$ sudo ./bind-interfaces.sh [sudo] password for uhost8: Could not find any inactive interfaces to bind to DPDK. Note that this script does not bind interfaces that are in use by the OS. Delete IP addresses from interfaces you would like to use with libmoon and run this script again. You can also use the script dpdk-devbind.py in libmoon/deps/dpdk/usertools manually to manage interfaces used by libmoon and the OS.

sabarishsubramanian commented 3 years ago

Hi,

i tried to resolve the issue with igb_uio module by removing it and reinstalling. Now i don't have any errors in build. but performing ' sudo ./build/MoonGen examples/l3-load-latency.lua 0 1 ' i got the below error:

[INFO] Initializing DPDK. This will take a few seconds... EAL: Detected 8 lcore(s) EAL: No free hugepages reported in hugepages-1048576kB EAL: Probing VFIO support... EAL: VFIO support initialized [INFO] Found 0 usable devices: [FATAL] Lua error in task master /home/uhost8/MoonGen/build/../libmoon/lua/device.lua:100: there are only 0 ports, tried to configure port id 0 Stack Traceback

(2) Lua method 'fatal' at file '/home/uhost8/MoonGen/build/../libmoon/lua/log.lua:129' Local variables: self = table: 0x41061ea8 {DEBUG:0, fatal:function: 0x4015a8b0, writeToLog:function: 0x4015a6f8, INFO:1 (more...)} str = string: "there are only 0 ports, tried to configure port id 0" (3) Lua field 'config' at file '/home/uhost8/MoonGen/build/../libmoon/lua/device.lua:100' Local variables: args = table: 0x41de85f8 {rxQueues:3, txQueues:3, port:0} (4) Lua function 'master' at file 'examples/l3-load-latency.lua:37' (best guess) Local variables: args = table: 0x41ddc880 {rxDev:1, txDev:0, flows:4, rate:10000, size:60} (5) global C function 'xpcall' (6) Lua upvalue 'master' at file '/home/uhost8/MoonGen/build/../libmoon/lua/main.lua:96' Local variables: _ = string: "./build/MoonGen" file = string: "examples/l3-load-latency.lua" args = table: 0x4143b588 {1:0, 2:1} cfgFile = nil ok = boolean: true parsedArgs = table: 0x41ddc700 {1:table: 0x41ddc880} (7) Lua function 'main' at file '/home/uhost8/MoonGen/build/../libmoon/lua/main.lua:146' (best guess) Local variables: task = string: "master" /home/uhost8/MoonGen/build/../libmoon/lua/device.lua:100: there are only 0 ports, tried to configure port id 0

[Interfaces] Output of: './dpdk-devbind.py --status' Network devices using DPDK-compatible driver

0000:03:00.1 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller 8168' drv=igb_uio unused=

Network devices using kernel driver

0000:04:00.0 'Wireless 8265 / 8275 24fd' if=wlan0 drv=iwlwifi unused=igb_uio Active

Other Network devices

emmericp commented 3 years ago

Realtek is not supported by DPDK: https://core.dpdk.org/supported/

Even if it was supported it would be rather pointless because these things are known to be terribly slow