| From: Petr Mladek <pmladek@suse.com> |
| Subject: lib: make the ratelimit test more reliable |
| Date: Wed, 9 Jul 2025 11:03:34 -0700 |
| |
| The selftest fails most of the times when running in qemu with a kernel |
| configured with CONFIG_HZ = 250: |
| |
| > test_ratelimit_smoke: 1 callbacks suppressed |
| > # test_ratelimit_smoke: ASSERTION FAILED at lib/tests/test_ratelimit.c:28 |
| > Expected ___ratelimit(&testrl, "test_ratelimit_smoke") == (false), but |
| > ___ratelimit(&testrl, "test_ratelimit_smoke") == 1 (0x1) |
| > (false) == 0 (0x0) |
| |
| Try to make the test slightly more reliable by calling the problematic |
| ratelimit in the middle of the interval. |
| |
| Link: https://lkml.kernel.org/r/20250709180335.1716384-2-paulmck@kernel.org |
| Signed-off-by: Petr Mladek <pmladek@suse.com> |
| Signed-off-by: Paul E. McKenney <paulmck@kernel.org> |
| Cc: Bjorn Helgaas <bhelgaas@google.com> |
| Cc: John Ogness <john.ogness@linutronix.de> |
| Cc: Jon Pan-Doh <pandoh@google.com> |
| Cc: Karolina Stolarek <karolina.stolarek@oracle.com> |
| Cc: Kuniyuki Iwashima <kuniyu@amazon.com> |
| Cc: Mateusz Guzik <mjguzik@gmail.com> |
| Cc: Sergey Senozhatsky <senozhatsky@chromium.org> |
| Cc: Steven Rostedt <rostedt@goodmis.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| lib/tests/test_ratelimit.c | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/lib/tests/test_ratelimit.c~lib-make-the-ratelimit-test-more-reliable |
| +++ a/lib/tests/test_ratelimit.c |
| @@ -24,19 +24,19 @@ static void test_ratelimit_smoke(struct |
| test_ratelimited(test, true); |
| test_ratelimited(test, false); |
| |
| - schedule_timeout_idle(TESTRL_INTERVAL - 40); |
| + schedule_timeout_idle(TESTRL_INTERVAL / 2); |
| test_ratelimited(test, false); |
| |
| - schedule_timeout_idle(50); |
| + schedule_timeout_idle(TESTRL_INTERVAL * 3 / 4); |
| test_ratelimited(test, true); |
| |
| schedule_timeout_idle(2 * TESTRL_INTERVAL); |
| test_ratelimited(test, true); |
| test_ratelimited(test, true); |
| |
| - schedule_timeout_idle(TESTRL_INTERVAL - 40); |
| + schedule_timeout_idle(TESTRL_INTERVAL / 2 ); |
| test_ratelimited(test, true); |
| - schedule_timeout_idle(50); |
| + schedule_timeout_idle(TESTRL_INTERVAL * 3 / 4); |
| test_ratelimited(test, true); |
| test_ratelimited(test, true); |
| test_ratelimited(test, true); |
| _ |