linus-next: improving functional testing for to-be-merged [#linux #kernel] pull requests
https://lore.kernel.org/all/ZxZ8MStt4e8JXeJb@sashalap/
"'[…] Linus Torvalds expressed concerns about the quality of testing that code receives before he pulls it. The subsequent discussion side-tracked to the testability of linux-next, but we didn't directly address Linus's original concern about pre-pull testing quality.
In an attempt to address the concerns, we're trying out a new "linus-next"
tree […]"
2/ @kees replied to the "linus-next" proposal from Sasha and raised a few points I fully agree with, as that proposal felt a bit off for me.
https://lore.kernel.org/all/792F4759-EA33-48B8-9AD0-FA14FA69E86E@kernel.org/
"'Are people putting things in linux-next that they don't expect to send to Linus? That seems like the greater problem.
[…]
Why not just use linux-next? […]
[…] have a bot that replies to all PRs with a health check, and Linus can pull it if he thinks it looks good. […]"
@kernellogger @kees I don't see the point in get another testing tree.
@vbabka and @ljs, that "Are people putting things in linux-next that they don't expect to send to Linus? That seems like the greater problem." from @kees reminded me of a question you might be able to help out with:
From a quick look it seems to me that the "mm-unstable" branch is in -next (via "mm-everything"). Does that contain stuff for the next merge window only, or more experimental stuff as well? It looks like the latter to me.
Well, good points, but fwiw, afaiui only patches that *were* reviewed by one of the official maintainers are supposed to be included in -next. To quote Stephen from https://lore.kernel.org/linux-next/20240716083116.27f179bd@canb.auug.org.au/
"'You will need to ensure that the patches/commits in your tree/series have
been:
[…]
* reviewed by you (or another maintainer of your subsystem tree),
* successfully unit tested, and
* destined for the current or next Linux merge window."'
> I think the issue is that more people need to test against -next.
Avoiding "this might eat my data" fears for the testers is very important detail here to realize that – having patches in there that come from a "unstable" branch is enough to scare people away when it comes to mm or filesystems.
So chancing that name might already help.
@ljs @kees @vbabka sure that's how it works, but most other subsystems *afaics* only add them to their trees included in -next once they are considered ready; all problems that surface later must then be fixed by patches submitted on-top of the subsystem tree, not by sending yet another newer version of the series.
eating data is always a risk spectrum (even in stable release there is a risk that it happens) -- and depending on how risky something looks people then decide what they use/test: stable, stable-rc, mainline outside the merge window (that's me currently), mainline all the time, -next.
The less likely the "might eat data" risk is perceived in -next, the more likely people will be willing to help with testing it.
@ljs @kernellogger @vbabka Why? Just use linux-next. Nothing should go in it that's not ready to go to Linus. Who is it that isn't testing -next? I'm always testing there. All the CIs I see reporting to lkml are testing -next. I genuinely didn't understand what's missing. -next is for testing. Do people need to be reminded to test on _copies_ of their data/images/workloads?
@ljs @kernellogger @vbabka Seriously, this is the classic development/testing/production cycle. Develop patches, test them alone (in a specific tree), test them integrated (in linux-next), send them to Linus (production).
But maybe I'm weird because the hardening folks do so much core/treewide work? Still, everyone should test that way.
@ljs @kees @kernellogger @vbabka
Plus obviously yes dont' expect data to be safe in anything but 'stable' releases of linux (insert debate about that here)
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> I'm not expecting randoms to run -next on a laptop obviously.
Agreed, but I wonder if we should aim for "all kernel developer should feel safe enough to use -next as their daily driver" (side note: one kernel developer once stated avoiding mainline -rc1 release after being burned due to the famous problem back in 5.12-rc1 [hope I don't misremember the version])
@ljs @kees @kernellogger @vbabka Sane or not, it is pretty much how some subsystems do it. The trees are rolled and re-rolled before submitting to go into `-next`. Though I think fs rebases and rejiggers their trees every time things need to be fixed up instead, similar to mm.
@ljs @kees @kernellogger @vbabka You should be paying too much attention to what others say.
@ljs @kees @kernellogger @vbabka Obsession is your profession.
@ljs @kees @kernellogger @vbabka This one is poisonous, beware.
@kernellogger @ljs @kees @vbabka There is also the option of running tests in a VM or whatever - dogfooding -next is probably foolish but you don’t have to give it your live production data.
@kees @ljs @kernellogger @vbabka The usual complaint with testing -next is that it moves fast enough to be an issue for longer running tests (which is going to be a problem for any integration tree at kernel scale) and that occasionally it does badly enough that you just loose all your testing due to breakage (again, I think that’s relatively unavoidable) and can’t focus on what you’re actually interested in.
I do have sympathy with those who feel they can’t keep up with the volume of change.