On 5/28/20 10:14 AM, Alexei Starovoitov wrote:
On Thu, May 28, 2020 at 12:56:31PM +0200, Greg KH wrote:
On Thu, May 28, 2020 at 10:05:57AM +0200, Jiri Benc wrote:
On Wed, 27 May 2020 15:23:13 -0700, Alexei Starovoitov wrote:
I prefer to keep selftests/bpf install broken. This forced marriage between kselftests and selftests/bpf never worked well. I think it's a time to free them up from each other.
Alexei, it would be great if you could cooperate with other people instead of pushing your own way. The selftests infrastructure was put to the kernel to have one place for testing. Inventing yet another way to add tests does not help anyone. You don't own the kernel. We're community, we should cooperate.
I agree, we rely on the infrastructure of the kselftests framework so that testing systems do not have to create "custom" frameworks to handle all of the individual variants that could easily crop up here.
Let's keep it easy for people to run and use these tests, to not do so is to ensure that they are not used, which is the exact opposite goal of creating tests.
Greg,
It is easy for people (bpf developers) to run and use the tests. Every developer runs them before submitting patches. New tests is a hard requirement for any new features. Maintainers run them for every push.
What I was and will push back hard is when other people (not bpf developers) come back with an excuse that some CI system has a hard time running these tests. It's the problem of weak CI. That CI needs to be fixed. Not the tests. The example of this is that we already have github/libbpf CI that runs selftests/bpf just fine. Anyone who wants to do another CI are welcome to copy paste what already works instead of burdening people (bpf developers) who run and use existing tests. I frankly have no sympathy to folks who put their own interest of their CI development in front of bpf community of developers. The main job of CI is to help developers and maintainers. Where helping means to not impose new dumb rules on developers because CI framework is dumb. Fix CI instead.
Here is what CI users are requesting:
- ability to install bpf test with other selftests using kselftest install. The common framework is in place and with minor changes to bpf test Makefile, we can make this happen. Others and myself are willing to work on this, so we can get bpf test coverage in test rings.
- be able to build and run existing tests without breaking the test build when new tests are added that have hard dependency on new versions of tools (llvm etc.). This isn't such a novel idea. We don't break kernel builds every single release and even when we require newer compiler releases. Plan the new tests with the intent to not break existing users and add new tests at the same time. We use min rev and not bleeding edge as the requirement for kernel build.
Requiring test rings upgrade to new versions of llvm is unreasonable. It places undue burden on the admins to do this every single release (may be even every rc cycle)
What is dumb about these requests and why is it not acceptable to just bpf when all other sub-systems keep adding tests continuously using the selftests framework so we can test the kernel better and our releases are of better quality.
If you check the volume of tests that get added every release, you can easily see it isn't hard.
Calling the needs of CI dumb is detrimental to kernel quality as these rings provide a very important function. Addressing their use-case helps get better test coverage for bpf and kernel areas that use bpf.
thanks, -- Shuah