[PATCH] workqueue: Fix type of cpu in trace event

Wonhyuk Yang posted 1 patch 4 years ago
include/trace/events/workqueue.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
[PATCH] workqueue: Fix type of cpu in trace event
Posted by Wonhyuk Yang 4 years ago
The trace event "workqueue_queue_work" use unsigned int type for
req_cpu, cpu. This casue confusing cpu number like below log.

$ cat /sys/kernel/debug/tracing/trace
cat-317  [001] ...: workqueue_queue_work: ... req_cpu=8192 cpu=4294967295

So, change unsigned type to signed type in the trace event. After
applying this patch, cpu number will be printed as -1 instead of
4294967295 as folllows.

$ cat /sys/kernel/debug/tracing/trace
cat-1338  [002] ...: workqueue_queue_work: ... req_cpu=8192 cpu=-1

Cc: Baik Song An <bsahn@etri.re.kr>
Cc: Hong Yeon Kim <kimhy@etri.re.kr>
Cc: Taeung Song <taeung@reallinux.co.kr>
Cc: linuxgeek@linuxgeek.io
Signed-off-by: Wonhyuk Yang <vvghjk1234@gmail.com>
---
 include/trace/events/workqueue.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/trace/events/workqueue.h b/include/trace/events/workqueue.h
index 6154a2e72bce..262d52021c23 100644
--- a/include/trace/events/workqueue.h
+++ b/include/trace/events/workqueue.h
@@ -22,7 +22,7 @@ struct pool_workqueue;
  */
 TRACE_EVENT(workqueue_queue_work,
 
-	TP_PROTO(unsigned int req_cpu, struct pool_workqueue *pwq,
+	TP_PROTO(int req_cpu, struct pool_workqueue *pwq,
 		 struct work_struct *work),
 
 	TP_ARGS(req_cpu, pwq, work),
@@ -31,8 +31,8 @@ TRACE_EVENT(workqueue_queue_work,
 		__field( void *,	work	)
 		__field( void *,	function)
 		__string( workqueue,	pwq->wq->name)
-		__field( unsigned int,	req_cpu	)
-		__field( unsigned int,	cpu	)
+		__field( int,	req_cpu	)
+		__field( int,	cpu	)
 	),
 
 	TP_fast_assign(
@@ -43,7 +43,7 @@ TRACE_EVENT(workqueue_queue_work,
 		__entry->cpu		= pwq->pool->cpu;
 	),
 
-	TP_printk("work struct=%p function=%ps workqueue=%s req_cpu=%u cpu=%u",
+	TP_printk("work struct=%p function=%ps workqueue=%s req_cpu=%d cpu=%d",
 		  __entry->work, __entry->function, __get_str(workqueue),
 		  __entry->req_cpu, __entry->cpu)
 );
-- 
2.30.2
Re: [PATCH] workqueue: Fix type of cpu in trace event
Posted by Tejun Heo 3 years, 11 months ago
On Wed, May 04, 2022 at 11:32:03AM +0900, Wonhyuk Yang wrote:
> The trace event "workqueue_queue_work" use unsigned int type for
> req_cpu, cpu. This casue confusing cpu number like below log.
> 
> $ cat /sys/kernel/debug/tracing/trace
> cat-317  [001] ...: workqueue_queue_work: ... req_cpu=8192 cpu=4294967295
> 
> So, change unsigned type to signed type in the trace event. After
> applying this patch, cpu number will be printed as -1 instead of
> 4294967295 as folllows.
> 
> $ cat /sys/kernel/debug/tracing/trace
> cat-1338  [002] ...: workqueue_queue_work: ... req_cpu=8192 cpu=-1
> 
> Cc: Baik Song An <bsahn@etri.re.kr>
> Cc: Hong Yeon Kim <kimhy@etri.re.kr>
> Cc: Taeung Song <taeung@reallinux.co.kr>
> Cc: linuxgeek@linuxgeek.io
> Signed-off-by: Wonhyuk Yang <vvghjk1234@gmail.com>

Applied to wq/for-5.19-fixes.

Thanks.

-- 
tejun
Re: [PATCH] workqueue: Fix type of cpu in trace event
Posted by Steven Rostedt 3 years, 11 months ago
On Wed,  4 May 2022 11:32:03 +0900
Wonhyuk Yang <vvghjk1234@gmail.com> wrote:

> The trace event "workqueue_queue_work" use unsigned int type for
> req_cpu, cpu. This casue confusing cpu number like below log.
> 
> $ cat /sys/kernel/debug/tracing/trace
> cat-317  [001] ...: workqueue_queue_work: ... req_cpu=8192 cpu=4294967295
> 
> So, change unsigned type to signed type in the trace event. After
> applying this patch, cpu number will be printed as -1 instead of
> 4294967295 as folllows.
> 

I was going through my backlog of pending patches and came across this.
Note, that trace events are maintained by the subsystem they belong to.
This change is for workqueues, not tracing (as your subject correctly
states).

I Cc'd Tejun here as he maintains this code.

-- Steve


> $ cat /sys/kernel/debug/tracing/trace
> cat-1338  [002] ...: workqueue_queue_work: ... req_cpu=8192 cpu=-1
> 
> Cc: Baik Song An <bsahn@etri.re.kr>
> Cc: Hong Yeon Kim <kimhy@etri.re.kr>
> Cc: Taeung Song <taeung@reallinux.co.kr>
> Cc: linuxgeek@linuxgeek.io
> Signed-off-by: Wonhyuk Yang <vvghjk1234@gmail.com>
> ---
>  include/trace/events/workqueue.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/include/trace/events/workqueue.h b/include/trace/events/workqueue.h
> index 6154a2e72bce..262d52021c23 100644
> --- a/include/trace/events/workqueue.h
> +++ b/include/trace/events/workqueue.h
> @@ -22,7 +22,7 @@ struct pool_workqueue;
>   */
>  TRACE_EVENT(workqueue_queue_work,
>  
> -	TP_PROTO(unsigned int req_cpu, struct pool_workqueue *pwq,
> +	TP_PROTO(int req_cpu, struct pool_workqueue *pwq,
>  		 struct work_struct *work),
>  
>  	TP_ARGS(req_cpu, pwq, work),
> @@ -31,8 +31,8 @@ TRACE_EVENT(workqueue_queue_work,
>  		__field( void *,	work	)
>  		__field( void *,	function)
>  		__string( workqueue,	pwq->wq->name)
> -		__field( unsigned int,	req_cpu	)
> -		__field( unsigned int,	cpu	)
> +		__field( int,	req_cpu	)
> +		__field( int,	cpu	)
>  	),
>  
>  	TP_fast_assign(
> @@ -43,7 +43,7 @@ TRACE_EVENT(workqueue_queue_work,
>  		__entry->cpu		= pwq->pool->cpu;
>  	),
>  
> -	TP_printk("work struct=%p function=%ps workqueue=%s req_cpu=%u cpu=%u",
> +	TP_printk("work struct=%p function=%ps workqueue=%s req_cpu=%d cpu=%d",
>  		  __entry->work, __entry->function, __get_str(workqueue),
>  		  __entry->req_cpu, __entry->cpu)
>  );
Re: [PATCH] workqueue: Fix type of cpu in trace event
Posted by Tejun Heo 3 years, 11 months ago
On Tue, May 24, 2022 at 04:29:12PM -0400, Steven Rostedt wrote:
> On Wed,  4 May 2022 11:32:03 +0900
> Wonhyuk Yang <vvghjk1234@gmail.com> wrote:
> 
> > The trace event "workqueue_queue_work" use unsigned int type for
> > req_cpu, cpu. This casue confusing cpu number like below log.
> > 
> > $ cat /sys/kernel/debug/tracing/trace
> > cat-317  [001] ...: workqueue_queue_work: ... req_cpu=8192 cpu=4294967295
> > 
> > So, change unsigned type to signed type in the trace event. After
> > applying this patch, cpu number will be printed as -1 instead of
> > 4294967295 as folllows.
> > 
> 
> I was going through my backlog of pending patches and came across this.
> Note, that trace events are maintained by the subsystem they belong to.
> This change is for workqueues, not tracing (as your subject correctly
> states).
> 
> I Cc'd Tejun here as he maintains this code.

I'll apply it to the wq tree once rc1 drops.

Thanks.

-- 
tejun