• Athira Rajeev's avatar
    tools/perf: Fix timing issue with parallel threads in perf bench wake-up-parallel · 245b0edf
    Athira Rajeev authored
    perf bench futex fails as below and hangs intermittently when
    attempted to run on on a powerpc system:
    
    ./perf bench futex wake-parallel
     Running 'futex/wake-parallel' benchmark:
     Run summary [PID 88588]: blocking on 640 threads (at [private] futex 0x10464b8c), 640 threads waking up 1 at a time.
    
    [Run 1]: Avg per-thread latency (waking 1/640 threads) in 0.1309 ms (+-53.27%)
    [Run 2]: Avg per-thread latency (waking 1/640 threads) in 0.0120 ms (+-31.16%)
    [Run 3]: Avg per-thread latency (waking 1/640 threads) in 0.1474 ms (+-92.47%)
    [Run 4]: Avg per-thread latency (waking 1/640 threads) in 0.2883 ms (+-67.75%)
    [Run 5]: Avg per-thread latency (waking 1/640 threads) in 0.4108 ms (+-39.60%)
    [Run 6]: Avg per-thread latency (waking 1/640 threads) in 0.7843 ms (+-78.98%)
    perf: couldn't wakeup all tasks (0/1)
    perf: couldn't wakeup all tasks (0/1)
    perf: couldn't wakeup all tasks (0/1)
    perf: couldn't wakeup all tasks (0/1)
    perf: couldn't wakeup all tasks (0/1)
    perf: couldn't wakeup all tasks (0/1)
    
    In the system, where perf bench wake-up-parallel is has system
    configuration of 640 cpus. After debugging, this turned out to be
    a timing issue. The benchmark creates threads equal to number of
    cpus and issues a futex_wait. Then it does a usleep for .1 second
    before initiating futex_wake. In system configuration with more
    threads, the usleep time is not enough. Patch changes the usleep
    from 100000 to 200000
    
    With the patch, ran multiple iterations and there were no issues
    further seen
    Reported-by: default avatarDisha Goel <disgoel@linux.vnet.ibm.com>
    Signed-off-by: default avatarAthira Rajeev <atrajeev@linux.vnet.ibm.com>
    Reviewed-by: default avatarIan Rogers <irogers@google.com>
    Tested-by: default avatarDisha Goel <disgoel@linux.ibm.com>
    Cc: akanksha@linux.ibm.com
    Cc: kjain@linux.ibm.com
    Cc: maddy@linux.ibm.com
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/r/20240607044354.82225-3-atrajeev@linux.vnet.ibm.com
    245b0edf
futex-wake-parallel.c 8.98 KB