Page MenuHomePhabricator

Support for QLogic FastLinQ 41112 Dual Port 10Gb SFP+ Adapter
Closed, DeclinedPublic

Description

We've had two orders of new servers (two servers which will be racked as cloudvirt102[34] and one server which will become backup2001) which use a 10G NIC which isn't supported by the 4.9 kernels we use in stretch and jessie. This task will coordinate possible support options.

There's also an ongoing inquiry to our sales representatives at Dell to check which alternative NIC options we have in the 10G space (and to evaluate whether these are properly supported by 4.9).

Possible options

  • Backport the support for the NIC which went into the qede in 4.12 driver to 4.9 (either internally or possibly via contracting externally). Support was added in

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9c79ddaa0f962d1f26537a670b0652ff509a6fe0

  • Provide an internally maintained 4.14.x kernel (based on the current kernel.org LTS kernel (causes significant ongoing internal maintenance)
  • Switch to other NICs until the affected servers are running a kernel which provides support for that model

(Note that in addition to the missing support in Linux 4.9 there's also the additional issue of missing support in d-i's kernel, but the kernel needs to be sorted out first)

Event Timeline

This has already been mentioned in T199125 where it was bypassed by using the 1G cards instead. However a different issue turned out there with support for the Perc H740P RAID controller. It's probably worth investigating whether it's possible to kill two birds with one stone

I worked on a backport of the driver 4.9 and I got to the point where the driver loaded along with the firmware, but there were runtime issues which caused connection failures. The errors were related to statistics gathering in the driver (a change I had to backport and which seems to need additional changes). I tried to keep my backport minimal to the qede driver, but all the Qlogic drivers share some common base (e.g. qede also required the qed kernel module) and to fully correct this I'd probably need to cherrypick additional upstream changes for qed. Ideally there would be some officially blessed upstream backport for the 4.9 LTS kernel series, I've contacted upstream whether they have something like this.

There's also an upstream source release, which I tested on backup2001 and which is working fine in my tests. I'll create a DKMS package out of it, that would be a fallback solution (DKMS also supports a mode where only the prebuilt drivers are shipped, so that no build environment is required on the host).

Status update: I've created a stretch backport of a 4.14 kernel which should support both QLogic 41xx and the new HP Perc megaraid controller properly. To allow to use this kernel to be used in the PXE boot I've been working on an updated stretch netboot image with the 4.14 kernel integrated. This has been quite cumbersome, I've fixed up a bunch of issues so far, but the netboot image still fails to load the initrd. I'm seeing the error message

Initramfs unpacking failed: incorrect cpio method used: use -H newc option

I've changed the cpio invocation in my initrd build to use -H newc, but that didn't make a difference. Need to debug further.

I now have a stretch netboot image with a 4.14 kernel which PXE boots via the QLogic 41xx adapter. In d-i I'm getting a strange error message which tells me that no modules could be found (although lsmod shows plenty of kernel modules loaded, need to dig a bit further in d-i what that could be caused by.

We swapped the NICs in these servers to a model supported by 4.9 (Broadcom BCM57412) and for any new deployments we can use Buster which has a 4.19 kernel. Closing.