Message ID | 20200626210917.358969-1-brendanhiggins@google.com (mailing list archive) |
---|---|
Headers | show |
Series | kunit: create a centralized executor to dispatch all KUnit tests | expand |
On Fri, Jun 26, 2020 at 02:09:05PM -0700, Brendan Higgins wrote: > This patchset adds a centralized executor to dispatch tests rather than > relying on late_initcall to schedule each test suite separately along > with a couple of new features that depend on it. So, the new section looks fine to me (modulo the INIT_DATA change). The plumbing to start the tests, though, I think is redundant. Why not just add a sysctl that starts all known tests? That way you don't need the plumbing into init/main.c, and you can have a mode where builtin tests can be started on a fully booted system too. i.e. boot with "sysctl.kernel.kunit=start" or when fully booted with "echo start > /proc/sys/kernel/kunit" And instead of the kunit-specific halt/reboot stuff, how about moving /proc/sysrq-trigger into /proc/sys instead? Then you (or anything) could do: sysctl.kernel.kunit=start sysctl.kernel.sysrq-trigger=b
On Fri, Jun 26, 2020 at 2:52 PM Kees Cook <keescook@chromium.org> wrote: > > On Fri, Jun 26, 2020 at 02:09:05PM -0700, Brendan Higgins wrote: > > This patchset adds a centralized executor to dispatch tests rather than > > relying on late_initcall to schedule each test suite separately along > > with a couple of new features that depend on it. Sorry it took so long to reply. I got sucked into some other stuff again. > So, the new section looks fine to me (modulo the INIT_DATA change). The > plumbing to start the tests, though, I think is redundant. Why not just > add a sysctl that starts all known tests? We already have that; however, we use debugfs to start the tests - same difference. I just find it convenient to not have to build and then maintain a userland for each architecture. It's also really nice that KUnit "just works out of the box" - you don't have to download anything other than the kernel source, and you don't need to do any steps outside of just run "kuit.py run". That seems like a big advantage to me. > That way you don't need the plumbing into init/main.c, and you can have > a mode where builtin tests can be started on a fully booted system too. > > i.e. boot with "sysctl.kernel.kunit=start" or when fully booted with > "echo start > /proc/sys/kernel/kunit" > > And instead of the kunit-specific halt/reboot stuff, how about moving > /proc/sysrq-trigger into /proc/sys instead? Then you (or anything) could > do: > > sysctl.kernel.kunit=start sysctl.kernel.sysrq-trigger=b I think it might be harder to make a case for the reboot stuff without the stuff I am working on outside of this patchset. I think I will probably drop that patch from this patchset and reintroduce it later.