]> asedeno.scripts.mit.edu Git - linux.git/commit
io_uring: add set of tracing events
authorDmitrii Dolgov <9erthalion6@gmail.com>
Tue, 15 Oct 2019 17:02:01 +0000 (19:02 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 29 Oct 2019 16:24:18 +0000 (10:24 -0600)
commitc826bd7a743f275e2b68c16d595534063b400deb
tree63792219fa58ed7b07695ae027a6ef44b8e17c62
parent11365043e5271fea4c92189a976833da477a3a44
io_uring: add set of tracing events

To trace io_uring activity one can get an information from workqueue and
io trace events, but looks like some parts could be hard to identify via
this approach. Making what happens inside io_uring more transparent is
important to be able to reason about many aspects of it, hence introduce
the set of tracing events.

All such events could be roughly divided into two categories:

* those, that are helping to understand correctness (from both kernel
  and an application point of view). E.g. a ring creation, file
  registration, or waiting for available CQE. Proposed approach is to
  get a pointer to an original structure of interest (ring context, or
  request), and then find relevant events. io_uring_queue_async_work
  also exposes a pointer to work_struct, to be able to track down
  corresponding workqueue events.

* those, that provide performance related information. Mostly it's about
  events that change the flow of requests, e.g. whether an async work
  was queued, or delayed due to some dependencies. Another important
  case is how io_uring optimizations (e.g. registered files) are
  utilized.

Signed-off-by: Dmitrii Dolgov <9erthalion6@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c
include/Kbuild
include/trace/events/io_uring.h [new file with mode: 0644]