[Devel] [PATCH RHEL7 COMMIT] ms/tracing: remove WARN_ON in start_thread()

Vasily Averin vvs at virtuozzo.com
Thu Dec 3 15:32:05 MSK 2020


The commit is pushed to "branch-rh7-3.10.0-1160.6.1.vz7.171.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-1160.6.1.vz7.171.2
------>
commit 7cc528788043cafd5989952719ad8a37046158fb
Author: Vasily Averin <vvs at virtuozzo.com>
Date:   Thu Dec 3 15:32:05 2020 +0300

    ms/tracing: remove WARN_ON in start_thread()
    
    This patch reverts upstream commit 978defee11a5 ("tracing: Do a WARN_ON()
     if start_thread() in hwlat is called when thread exists")
    
    .start hook can be legally called several times if according
    tracer is stopped
    
    screen window 1
    [root at localhost ~]# echo 1 > /sys/kernel/tracing/events/kmem/kfree/enable
    [root at localhost ~]# echo 1 > /sys/kernel/tracing/options/pause-on-trace
    [root at localhost ~]# less -F /sys/kernel/tracing/trace
    
    screen window 2
    [root at localhost ~]# cat /sys/kernel/debug/tracing/tracing_on
    0
    [root at localhost ~]# echo hwlat >  /sys/kernel/debug/tracing/current_tracer
    [root at localhost ~]# echo 1 > /sys/kernel/debug/tracing/tracing_on
    [root at localhost ~]# cat /sys/kernel/debug/tracing/tracing_on
    0
    [root at localhost ~]# echo 2 > /sys/kernel/debug/tracing/tracing_on
    
    triggers warning in dmesg:
    WARNING: CPU: 3 PID: 1403 at kernel/trace/trace_hwlat.c:371 hwlat_tracer_start+0xc9/0xd0
    
    Fixes: 978defee11a5 ("tracing: Do a WARN_ON() if start_thread() in hwlat is called when thread exists")
    Patch was sent to upstream but is not approved yet.
    https://jira.sw.ru/browse/PSBM-122204
    Signed-off-by: Vasily Averin <vvs at virtuozzo.com>
---
 kernel/trace/trace_hwlat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/trace_hwlat.c b/kernel/trace/trace_hwlat.c
index 45a9e3b..12b8bd7 100644
--- a/kernel/trace/trace_hwlat.c
+++ b/kernel/trace/trace_hwlat.c
@@ -368,7 +368,7 @@ static int start_kthread(struct trace_array *tr)
 {
 	struct task_struct *kthread;
 
-	if (WARN_ON(hwlat_kthread))
+	if (hwlat_kthread)
 		return 0;
 
 	kthread = kthread_create(kthread_fn, NULL, "hwlatd");


More information about the Devel mailing list