On Thu 2022-06-02 16:32:33, Joe Lawrence wrote: > The test_klp_callbacks_busy module conditionally blocks a future > livepatch transition by busy waiting inside its workqueue function, > busymod_work_func(). After scheduling this work, a test livepatch is > loaded, introducing the transition under test. > > Both events are marked in the kernel log for later verification, but > there is no synchronization to ensure that busymod_work_func() logs its > function entry message before subsequent selftest commands log their own > messages. This can lead to a rare test failure due to unexpected > ordering like: > > --- expected > +++ result > @@ -1,7 +1,7 @@ > % modprobe test_klp_callbacks_busy block_transition=Y > test_klp_callbacks_busy: test_klp_callbacks_busy_init > -test_klp_callbacks_busy: busymod_work_func enter > % modprobe test_klp_callbacks_demo > +test_klp_callbacks_busy: busymod_work_func enter > livepatch: enabling patch 'test_klp_callbacks_demo' > livepatch: 'test_klp_callbacks_demo': initializing patching transition > test_klp_callbacks_demo: pre_patch_callback: vmlinux > > Force the module init function to wait until busymod_work_func() has > started (and logged its message), before exiting to the next selftest > steps. > > Fixes: 547840bd5ae5 ("selftests/livepatch: simplify test-klp-callbacks busy target tests") > Signed-off-by: Joe Lawrence <joe.lawrence@xxxxxxxxxx> > Reviewed-by: Petr Mladek <pmladek@xxxxxxxx> The patch has been committed into livepatching/livepatching.git, branch for-5.20/selftests-fixes. Best Regards, Petr