lkml.org 
[lkml]   [2023]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] tools/rtla: Do not stop user-space if a cpu is offline
    Date
    If no CPU list is passed, timerlat in user-space will dispatch
    one thread per sysconf(_SC_NPROCESSORS_CONF). However, not all
    CPU might be available, for instance, if HT is disabled.

    Currently, rtla timerlat is stopping the session if an user-space
    thread cannot set affinity to a CPU, or if a running user-space
    thread is killed. However, this is too restrictive.

    So, reduce the error to a debug message, and rtla timerlat run as
    long as there is at least one user-space thread alive.

    Fixes: cdca4f4e5e8e ("rtla/timerlat_top: Add timerlat user-space support")
    Signed-off-by: Daniel Bristot de Oliveira <bristot@kernel.org>
    ---
    tools/tracing/rtla/src/timerlat_u.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    diff --git a/tools/tracing/rtla/src/timerlat_u.c b/tools/tracing/rtla/src/timerlat_u.c
    index 05e310696dd5..01dbf9a6b5a5 100644
    --- a/tools/tracing/rtla/src/timerlat_u.c
    +++ b/tools/tracing/rtla/src/timerlat_u.c
    @@ -45,7 +45,7 @@ static int timerlat_u_main(int cpu, struct timerlat_u_params *params)

    retval = sched_setaffinity(gettid(), sizeof(set), &set);
    if (retval == -1) {
    - err_msg("Error setting user thread affinity\n");
    + debug_msg("Error setting user thread affinity %d, is the CPU online?\n", cpu);
    exit(1);
    }

    @@ -193,7 +193,9 @@ void *timerlat_u_dispatcher(void *data)
    procs_count--;
    }
    }
    - break;
    +
    + if (!procs_count)
    + break;
    }

    sleep(1);
    --
    2.38.1
    \
     
     \ /
      Last update: 2023-09-15 15:02    [W:2.368 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site