Xilinx-CNS / tcpdirect

AMD TCPDirect ultra low latency kernel bypass TCP and UDP implementation for AMD Solarflare network adapters, to be used with corresponding versions of Onload®️ at https://github.com/Xilinx-CNS/onload. The stable branch is currently `v8_1`.
22 stars 17 forks source link

Build tcpdirect packages from tree #16

Closed HFTrader closed 1 month ago

HFTrader commented 6 months ago

I am running Ubuntu 20.04 LTS. It seems that kernels 5.15+ do not compile anymore with the standard packaged files from the official site https://www.xilinx.com/support/download/nic-software-and-drivers.html#tcpdirect.

onload-8.1.2.26$ sudo onload_tool reload
Waiting for onload_cp_server to terminate...
onload_tool: /sbin/modprobe -r onload
onload_tool: /sbin/modprobe -r sfc
onload_tool: /sbin/modprobe sfc
onload_tool: /sbin/modprobe onload
modprobe: **ERROR: could not insert 'onload': Unknown symbol in module, or unknown parameter (see dmesg)**
onload_tool: FAILED: /sbin/modprobe onload
onload-8.1.2.26$ 
onload-8.1.2.26$ 
onload-8.1.2.26$ dmesg | tail
[31592.608017] pps pps0: new PPS source ptp0
[31592.627408] sfc 0000:4a:00.0 eth0: driverlink registering nic
[31592.627451] sfc 0000:4a:00.1: Solarflare NIC detected: device 1924:0b03 subsys 1924:8028
[31592.645725] sfc 0000:4a:00.1 eth1: driverlink registering nic
[31592.645785] sfc 0000:4a:00.0 enp74s0f0: renamed from eth0
[31592.664889] **[sfc efrm] init_sfc_resource: ERROR: failed to find syscall table**
[31592.699622] sfc 0000:4a:00.1 enp74s0f1: renamed from eth1
[31592.941815] sfc 0000:4a:00.0 enp74s0f0: link up at 10000Mbps full-duplex (MTU 1500)
[31593.052981] sfc 0000:4a:00.1 enp74s0f1: link up at 10000Mbps full-duplex (MTU 1500)
[31593.635296] IPv6: ADDRCONF(NETDEV_CHANGE): enp74s0f0: link becomes ready

The only way I got onload to install is from taking code from the Github master and compiling. However, while I am able to build and install onload with onload/scripts/onload_install, I am not able to install tcpdirect from sources with tcpdirect/scripts/zf_install.

How to build and package tcpdirect?

abower-amd commented 6 months ago

Hi @HFTrader,

The zf_install script is run from within a distributed package (e.g. binary tarball) not from the source tree, unlike onload_install which works in both contexts. So you would first create a package of some form.

The packaging scripts will be reworked in due course to support the first feature release from open source but this has not been done yet so I'm afraid this is a slightly fiddly process at the moment, sorry!

You can expect a production update release of Onload shortly that works with the CVE mitigation in recent kernels distributed by OS vendors: https://github.com/Xilinx-CNS/onload/issues/216.

abower-amd commented 6 months ago

@HFTrader, the v8.1.3 releases of OpenOnload and TCPDirect are now out and available via the usual channel. These should deal with your build issue!

abower-amd commented 1 month ago

Hi @HFTrader, I am closing this issue now that tcpdirect-9.0.0.21 has been released with new Debian source packaging!