@sera Since I know you've done a substantial amount of work on kernels, how does one go about choosing the best kernel to use for their device?
Every kernel release includes a lot of fixes and improvements.
Every kernel release also includes bugs/regressions.
The bottom line is that you use what works :-)
some people are comfortable using the latest release
some people only want to use a 'stable' release
some people won't use a kernel until it's been out a while
some people will only use the kernel packages that their distro (Fedora, Ubuntu, Debian, OpenWRT, LEDE) ship. All of the Distro kernels include patches that are not upstream and the final combination of code us unique to that distro.
Arguments can be made for every one of these :-)
Personally, I go one of two ways.
If I don't care that much, I just use what the distro provides.
If I'm going to compile my own (which I like to do), I will use kernel.org release kernels. I've run them in production since '97 and will very comfortably compare my system uptime to the RedHat and RedHat Enterprise systems that have been run by other teams in the companies that I have worked for. I like using the kernel.org kernels because if I do run into problems, I have found that the kernel mailing list is very responsive. If you run older kernels, or kernels only from your distro, your options for support are more limited. I've found the public lists far more responsive than the distros (including paid support), but only if you are running the current version and willing to compile/test fixes.
No matter what you end up selecting, you always need to have a plan to test what you are going to deploy in some sort of limited fashion before committing to it fully. Every single approach WILL leave you with dead/degraded systems at some point. It can be a release that works fine for millions of other people, but on your particular hardware/load/usage patter, it will be a problem.