One of the other aspects of what we’ve been doing has been forward porting drivers into newer kernels, fixing the occasional bug, and often rewriting portions to correct interface changes.
I’ve found that subsystem vendors seem to prefer to drop code into the kernel very infrequently. Sometimes once every few years are they synced. Which leads to distro kernels having often terribly broken device support. And often very unstable device support.
May work fine for a web server or other lightly loaded cloud like system, but when you push serious metal very hard, bad things happen to these kernels with their badly out of date device drivers. We know, we push them hard. So do our customers.
So I’ve been forward porting a number of drivers, and I gotta say … I really … really … am not having fun dealing with all the fail I see in the source. Our make files are chock full of patches to the kernels to handle these things.
I wish that a requirement for having a device be in the linux source tree was that it was no more than 6 months out of date with current driver revisions.
In our kernels, these things will just work. We’ll offer the patches back to the driver folks, but I don’t think they’ll want them. Past experience on this.