lkml.org 
[lkml]   [2024]   [Apr]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v2] selftests/timers/posix_timers: reimplement check_timer_distribution()
    On Tue, Apr 9, 2024 at 6:39 AM Oleg Nesterov <oleg@redhat.com> wrote:
    >
    > Thomas says:
    >
    > The signal distribution test has a tendency to hang for a long
    > time as the signal delivery is not really evenly distributed. In
    > fact it might never be distributed across all threads ever in
    > the way it is written.
    >
    > To me even the
    >
    > This primarily tests that the kernel does not favour any one.
    >
    > comment doesn't look right. The kernel does favour a thread which hits
    > the timer interrupt when CLOCK_PROCESS_CPUTIME_ID expires.
    >
    > The new version simply checks that the group leader sleeping in join()
    > never receives SIGALRM, cpu_timer_fire() should always send the signal
    > to the thread which burns cpu.
    >
    > Without the commit bcb7ee79029d ("posix-timers: Prefer delivery of signals
    > to the current thread") the test-case fails immediately, the very 1st tick
    > wakes the leader up. Otherwise it quickly succeeds after 100 ticks.
    >
    > As Thomas suggested, the new version doesn't report the failure on the
    > pre v6.3 kernels that do not have the commit bcb7ee79029d; this is a
    > feature that obviously fails on the older kernels. So the patch adds the
    > new simple ksft_ck_kernel_version() helper and uses ksft_test_result_skip()
    > if check_timer_distribution() fails on the older kernel.
    >
    > Signed-off-by: Oleg Nesterov <oleg@redhat.com>

    This is working great here (on both 6.6 and the older 6.1)! Thanks so
    much for fixing this!
    One nit below, but otherwise:
    Tested-by: John Stultz <jstultz@google.com>

    > +err:
    > + ksft_print_msg(errmsg);

    This bit is causing the following warning:
    posix_timers.c:250:2: warning: format not a string literal and no
    format arguments [-Wformat-security]
    250 | ksft_print_msg(errmsg);
    | ^~~~~~~~~~~~~~

    A simple fix is just to switch it to:
    ksft_print_msg("%s", errmsg);

    thanks
    -john

    \
     
     \ /
      Last update: 2024-05-27 16:33    [W:3.935 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site