mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
io_uring: io_uring_complete() trace should take an integer
commit 2fc2a7a62e upstream.
It currently takes a long, and while that's normally OK, the io_uring
limit is an int. Internally in io_uring it's an int, but sometimes it's
passed as a long. That can yield confusing results where a completions
seems to generate a huge result:
ou-sqp-1297-1298 [001] ...1 788.056371: io_uring_complete: ring 000000000e98e046, user_data 0x0, result 4294967171, cflags 0
which is due to -ECANCELED being stored in an unsigned, and then passed
in as a long. Using the right int type, the trace looks correct:
iou-sqp-338-339 [002] ...1 15.633098: io_uring_complete: ring 00000000e0ac60cf, user_data 0x0, result -125, cflags 0
Cc: stable@vger.kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
1ae179a0d7
commit
7faeaed2f2
@@ -295,14 +295,14 @@ TRACE_EVENT(io_uring_fail_link,
|
||||
*/
|
||||
TRACE_EVENT(io_uring_complete,
|
||||
|
||||
TP_PROTO(void *ctx, u64 user_data, long res, unsigned cflags),
|
||||
TP_PROTO(void *ctx, u64 user_data, int res, unsigned cflags),
|
||||
|
||||
TP_ARGS(ctx, user_data, res, cflags),
|
||||
|
||||
TP_STRUCT__entry (
|
||||
__field( void *, ctx )
|
||||
__field( u64, user_data )
|
||||
__field( long, res )
|
||||
__field( int, res )
|
||||
__field( unsigned, cflags )
|
||||
),
|
||||
|
||||
@@ -313,7 +313,7 @@ TRACE_EVENT(io_uring_complete,
|
||||
__entry->cflags = cflags;
|
||||
),
|
||||
|
||||
TP_printk("ring %p, user_data 0x%llx, result %ld, cflags %x",
|
||||
TP_printk("ring %p, user_data 0x%llx, result %d, cflags %x",
|
||||
__entry->ctx, (unsigned long long)__entry->user_data,
|
||||
__entry->res, __entry->cflags)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user