include/trace/events/workqueue.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
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
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
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)
> );
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
© 2016 - 2026 Red Hat, Inc.