io_uring: add opcode to issue trace event
authorJens Axboe <axboe@kernel.dk>
Thu, 9 Jan 2020 01:55:15 +0000 (18:55 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 21 Jan 2020 00:04:06 +0000 (17:04 -0700)
For some test apps at least, user_data is just zeroes. So it's not a
good way to tell what the command actually is. Add the opcode to the
issue trace point.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c
include/trace/events/io_uring.h

index 0b30b0cf8af5d6de955cd3a2c11238a94be57398..50233efd9445910531edc2d9d14f98e118b0cb2f 100644 (file)
@@ -4810,7 +4810,8 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr,
                req->has_user = *mm != NULL;
                req->in_async = async;
                req->needs_fixed_file = async;
-               trace_io_uring_submit_sqe(ctx, req->user_data, true, async);
+               trace_io_uring_submit_sqe(ctx, req->opcode, req->user_data,
+                                               true, async);
                if (!io_submit_sqe(req, sqe, statep, &link))
                        break;
        }
index b352d66b5d5170181cfd81e2b77f87c22ed18f40..27bd9e4f927bb6f01415cba6566570b4c0a92652 100644 (file)
@@ -320,6 +320,7 @@ TRACE_EVENT(io_uring_complete,
  * io_uring_submit_sqe - called before submitting one SQE
  *
  * @ctx:               pointer to a ring context structure
+ * @opcode:            opcode of request
  * @user_data:         user data associated with the request
  * @force_nonblock:    whether a context blocking or not
  * @sq_thread:         true if sq_thread has submitted this SQE
@@ -329,12 +330,14 @@ TRACE_EVENT(io_uring_complete,
  */
 TRACE_EVENT(io_uring_submit_sqe,
 
-       TP_PROTO(void *ctx, u64 user_data, bool force_nonblock, bool sq_thread),
+       TP_PROTO(void *ctx, u8 opcode, u64 user_data, bool force_nonblock,
+                bool sq_thread),
 
-       TP_ARGS(ctx, user_data, force_nonblock, sq_thread),
+       TP_ARGS(ctx, opcode, user_data, force_nonblock, sq_thread),
 
        TP_STRUCT__entry (
                __field(  void *,       ctx             )
+               __field(  u8,           opcode          )
                __field(  u64,          user_data       )
                __field(  bool,         force_nonblock  )
                __field(  bool,         sq_thread       )
@@ -342,13 +345,15 @@ TRACE_EVENT(io_uring_submit_sqe,
 
        TP_fast_assign(
                __entry->ctx            = ctx;
+               __entry->opcode         = opcode;
                __entry->user_data      = user_data;
                __entry->force_nonblock = force_nonblock;
                __entry->sq_thread      = sq_thread;
        ),
 
-       TP_printk("ring %p, user data 0x%llx, non block %d, sq_thread %d",
-                         __entry->ctx, (unsigned long long) __entry->user_data,
+       TP_printk("ring %p, op %d, data 0x%llx, non block %d, sq_thread %d",
+                         __entry->ctx, __entry->opcode,
+                         (unsigned long long) __entry->user_data,
                          __entry->force_nonblock, __entry->sq_thread)
 );