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.