neomantra / docker-onload

Docker tooling for Solarflare's OpenOnload
https://hub.docker.com/r/neomantra/onload/
MIT License
25 stars 9 forks source link

Tag for Debian 11 "Bullseye" #6

Open haelix888 opened 3 years ago

haelix888 commented 3 years ago

I am interested to know if this can be made to work with Debian 11 "Bullseye" (Linux kernel 5.10). For reference, Linux kernel 5.10 is the most recent LTS Linux (released Dec 2020). The preceding LTS is Linux version 5.4 (released Nov 2019), the one used by Ubuntu Focal, for which you provide an image tag.

My attempts at compiling the OpenOnload package against 5.10 have failed with error "error: implicit declaration of function ‘map_vm_area’; did you mean ‘get_vm_area’? [-Werror=implicit-function-declaration]"

neomantra commented 3 years ago

If you check out the release notes of Onload-7.1.1 it says: - Linux kernels 4.4 - 5.9

They now develop Onload in the open. So maybe it is fixed there? I'm not sure.

This tooling only grabs official release packages. But, it could be possible to instead clone from GitHub and build/install from source.

haelix888 commented 3 years ago

Thanks for pointing that out. The git version builds with kernel 5.10 and gcc 11.

neomantra commented 3 years ago

Thanks for confirming. I was able to build Onload from a Bullseye image.

I don't intend to make automated builds for non-released Onload versions. The main complication, and be aware of this if you try it yourself, is that the ONLOAD_USERSPACE_ID must match between the host and the container. So you will need either the same exact GitHub commit or you need to spoof the ONLOAD_USERSPACE_ID in the container.

Although I won't make the Bullseye build yet, I will put up a bullseye/Dockerfile.pre to make it easy to self-service.

When there is a new Onload release, I will make an automated build for Bullseye.

neomantra commented 3 years ago

I just pushed this... https://github.com/neomantra/docker-onload/blob/master/bullseye/Dockerfile It uses the default gcc.

Use like so:

docker build --build-arg ONLOAD_GIT_REF=master -f bullseye/Dockerfile .
haelix888 commented 3 years ago

Slightly off-topic, but for those contemplating to use an unsupported (git) version, does that include TCPDirect? From what I see it doesn't. Or at least there is no mention of it in the docs.

neomantra commented 3 years ago

It doesn't look like any TCPDirect (zf) files are in their GitHub tree. This issue is relevant to your kernel.

neomantra commented 3 years ago

Version 7.1.2.141 of Onload has been released, which supports Debian 11 and will have TCPDirect. Working on this today.

neomantra commented 3 years ago

Pushed code, but blocked by #7