OSDN Git Service

io_uring: include cflags in completion trace event
authorJens Axboe <axboe@kernel.dk>
Tue, 23 Feb 2021 05:05:00 +0000 (22:05 -0700)
committerJens Axboe <axboe@kernel.dk>
Sun, 11 Apr 2021 23:41:59 +0000 (17:41 -0600)
We should be including the completion flags for better introspection on
exactly what completion event was logged.

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

index 05e8e27..e5c2bb2 100644 (file)
@@ -1507,7 +1507,7 @@ static void __io_cqring_fill_event(struct io_kiocb *req, long res,
        struct io_ring_ctx *ctx = req->ctx;
        struct io_uring_cqe *cqe;
 
-       trace_io_uring_complete(ctx, req->user_data, res);
+       trace_io_uring_complete(ctx, req->user_data, res, cflags);
 
        /*
         * If we can't get a cq entry, userspace overflowed the
index 9f0d3b7..bd52817 100644 (file)
@@ -290,29 +290,32 @@ TRACE_EVENT(io_uring_fail_link,
  * @ctx:               pointer to a ring context structure
  * @user_data:         user data associated with the request
  * @res:               result of the request
+ * @cflags:            completion flags
  *
  */
 TRACE_EVENT(io_uring_complete,
 
-       TP_PROTO(void *ctx, u64 user_data, long res),
+       TP_PROTO(void *ctx, u64 user_data, long res, unsigned cflags),
 
-       TP_ARGS(ctx, user_data, res),
+       TP_ARGS(ctx, user_data, res, cflags),
 
        TP_STRUCT__entry (
                __field(  void *,       ctx             )
                __field(  u64,          user_data       )
                __field(  long,         res             )
+               __field(  unsigned,     cflags          )
        ),
 
        TP_fast_assign(
                __entry->ctx            = ctx;
                __entry->user_data      = user_data;
                __entry->res            = res;
+               __entry->cflags         = cflags;
        ),
 
-       TP_printk("ring %p, user_data 0x%llx, result %ld",
+       TP_printk("ring %p, user_data 0x%llx, result %ld, cflags %x",
                          __entry->ctx, (unsigned long long)__entry->user_data,
-                         __entry->res)
+                         __entry->res, __entry->cflags)
 );