|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2, v6.14-rc1, v6.13, v6.13-rc7, v6.13-rc6, v6.13-rc5, v6.13-rc4, v6.13-rc3, v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4 |
|
| #
2946f08a |
| 18-Oct-2024 |
Pavel Begunkov <[email protected]> |
io_uring: clean up cqe trace points
We have too many helpers posting CQEs, instead of tracing completion events before filling in a CQE and thus having to pass all the data, set the CQE first, pass
io_uring: clean up cqe trace points
We have too many helpers posting CQEs, instead of tracing completion events before filling in a CQE and thus having to pass all the data, set the CQE first, pass it to the tracing helper and let it extract everything it needs.
Signed-off-by: Pavel Begunkov <[email protected]> Link: https://lore.kernel.org/r/b83c1ca9ee5aed2df0f3bb743bf5ed699cce4c86.1729267437.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc3, v6.12-rc2, v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2, v6.11-rc1, v6.10, v6.10-rc7, v6.10-rc6, v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2, v6.10-rc1 |
|
| #
2c92ca84 |
| 16-May-2024 |
Steven Rostedt (Google) <[email protected]> |
tracing/treewide: Remove second parameter of __assign_str()
With the rework of how the __string() handles dynamic strings where it saves off the source string in field in the helper structure[1], th
tracing/treewide: Remove second parameter of __assign_str()
With the rework of how the __string() handles dynamic strings where it saves off the source string in field in the helper structure[1], the assignment of that value to the trace event field is stored in the helper value and does not need to be passed in again.
This means that with:
__string(field, mystring)
Which use to be assigned with __assign_str(field, mystring), no longer needs the second parameter and it is unused. With this, __assign_str() will now only get a single parameter.
There's over 700 users of __assign_str() and because coccinelle does not handle the TRACE_EVENT() macro I ended up using the following sed script:
git grep -l __assign_str | while read a ; do sed -e 's/\(__assign_str([^,]*[^ ,]\) *,[^;]*/\1)/' $a > /tmp/test-file; mv /tmp/test-file $a; done
I then searched for __assign_str() that did not end with ';' as those were multi line assignments that the sed script above would fail to catch.
Note, the same updates will need to be done for:
__assign_str_len() __assign_rel_str() __assign_rel_str_len()
I tested this with both an allmodconfig and an allyesconfig (build only for both).
[1] https://lore.kernel.org/linux-trace-kernel/[email protected]/
Link: https://lore.kernel.org/linux-trace-kernel/[email protected]
Cc: Masami Hiramatsu <[email protected]> Cc: Mathieu Desnoyers <[email protected]> Cc: Linus Torvalds <[email protected]> Cc: Julia Lawall <[email protected]> Signed-off-by: Steven Rostedt (Google) <[email protected]> Acked-by: Jani Nikula <[email protected]> Acked-by: Christian König <[email protected]> for the amdgpu parts. Acked-by: Thomas Hellström <[email protected]> #for Acked-by: Rafael J. Wysocki <[email protected]> # for thermal Acked-by: Takashi Iwai <[email protected]> Acked-by: Darrick J. Wong <[email protected]> # xfs Tested-by: Guenter Roeck <[email protected]>
show more ...
|
|
Revision tags: v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4, v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3 |
|
| #
4c98b891 |
| 30-Jan-2024 |
Jens Axboe <[email protected]> |
io_uring: remove 'loops' argument from trace_io_uring_task_work_run()
We no longer loop in task_work handling, hence delete the argument from the tracepoint as it's always 1 and hence not very infor
io_uring: remove 'loops' argument from trace_io_uring_task_work_run()
We no longer loop in task_work handling, hence delete the argument from the tracepoint as it's always 1 and hence not very informative.
Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
4bcb982c |
| 29-Jan-2024 |
Jens Axboe <[email protected]> |
io_uring: expand main struct io_kiocb flags to 64-bits
We're out of space here, and none of the flags are easily reclaimable. Bump it to 64-bits and re-arrange the struct a bit to avoid gaps.
Add a
io_uring: expand main struct io_kiocb flags to 64-bits
We're out of space here, and none of the flags are easily reclaimable. Bump it to 64-bits and re-arrange the struct a bit to avoid gaps.
Add a specific bitwise type for the request flags, io_request_flags_t. This will help catch violations of casting this value to a smaller type on 32-bit archs, like unsigned int.
This creates a hole in the io_kiocb, so move nr_tw up and rsrc_node down to retain needing only cacheline 0 and 1 for non-polled opcodes.
No functional changes intended in this patch.
Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v6.8-rc2, v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7, v6.7-rc6, v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1, v6.6, v6.6-rc7, v6.6-rc6, v6.6-rc5, v6.6-rc4, v6.6-rc3, v6.6-rc2, v6.6-rc1, v6.5, v6.5-rc7, v6.5-rc6, v6.5-rc5, v6.5-rc4, v6.5-rc3, v6.5-rc2, v6.5-rc1, v6.4, v6.4-rc7, v6.4-rc6, v6.4-rc5, v6.4-rc4, v6.4-rc3, v6.4-rc2, v6.4-rc1, v6.3, v6.3-rc7, v6.3-rc6, v6.3-rc5 |
|
| #
2ad57931 |
| 30-Mar-2023 |
Jens Axboe <[email protected]> |
io_uring: rename trace_io_uring_submit_sqe() tracepoint
It has nothing to do with the SQE at this point, it's a request submission. While in there, get rid of the 'force_nonblock' argument which is
io_uring: rename trace_io_uring_submit_sqe() tracepoint
It has nothing to do with the SQE at this point, it's a request submission. While in there, get rid of the 'force_nonblock' argument which is also dead, as we only pass in true.
Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v6.3-rc4, v6.3-rc3, v6.3-rc2, v6.3-rc1, v6.2, v6.2-rc8, v6.2-rc7, v6.2-rc6, v6.2-rc5, v6.2-rc4, v6.2-rc3, v6.2-rc2, v6.2-rc1, v6.1, v6.1-rc8, v6.1-rc7, v6.1-rc6, v6.1-rc5, v6.1-rc4, v6.1-rc3, v6.1-rc2, v6.1-rc1, v6.0, v6.0-rc7, v6.0-rc6, v6.0-rc5, v6.0-rc4 |
|
| #
f75d5036 |
| 30-Aug-2022 |
Dylan Yudaken <[email protected]> |
io_uring: trace local task work run
Add tracing for io_run_local_task_work
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-
io_uring: trace local task work run
Add tracing for io_run_local_task_work
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v6.0-rc3, v6.0-rc2, v6.0-rc1, v5.19, v5.19-rc8, v5.19-rc7, v5.19-rc6, v5.19-rc5, v5.19-rc4, v5.19-rc3 |
|
| #
1c849b48 |
| 16-Jun-2022 |
Stefan Roesch <[email protected]> |
io_uring: Add tracepoint for short writes
This adds the io_uring_short_write tracepoint to io_uring. A short write is issued if not all pages that are required for a write are in the page cache and
io_uring: Add tracepoint for short writes
This adds the io_uring_short_write tracepoint to io_uring. A short write is issued if not all pages that are required for a write are in the page cache and the async buffered writes have to return EAGAIN.
Signed-off-by: Stefan Roesch <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
9b26e811 |
| 30-Jun-2022 |
Dylan Yudaken <[email protected]> |
io_uring: fix io_uring_cqe_overflow trace format
Make the trace format consistent with io_uring_complete for cflags
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/2022
io_uring: fix io_uring_cqe_overflow trace format
Make the trace format consistent with io_uring_complete for cflags
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
eccd8801 |
| 22-Jun-2022 |
Dylan Yudaken <[email protected]> |
io_uring: add trace event for running task work
This is useful for investigating if task_work is batching
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/20220622134028
io_uring: add trace event for running task work
This is useful for investigating if task_work is batching
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
48863ffd |
| 16-Jun-2022 |
Pavel Begunkov <[email protected]> |
io_uring: clean up tracing events
We have lots of trace events accepting an io_uring request and wanting to print some of its fields like user_data, opcode, flags and so on. However, as trace points
io_uring: clean up tracing events
We have lots of trace events accepting an io_uring request and wanting to print some of its fields like user_data, opcode, flags and so on. However, as trace points were unaware of io_uring structures, we had to pass all the fields as arguments. Teach trace/events/io_uring.h about struct io_kiocb and stop the misery of passing a horde of arguments to trace helpers.
Signed-off-by: Pavel Begunkov <[email protected]> Link: https://lore.kernel.org/r/40ff72f92798114e56d400f2b003beb6cde6ef53.1655384063.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
e70b64a3 |
| 23-Jun-2022 |
Dylan Yudaken <[email protected]> |
io_uring: move io_uring_get_opcode out of TP_printk
The TP_printk macro's are not supposed to use custom code ([1]) or else tools such as perf cannot use these events.
Convert the opcode string rep
io_uring: move io_uring_get_opcode out of TP_printk
The TP_printk macro's are not supposed to use custom code ([1]) or else tools such as perf cannot use these events.
Convert the opcode string representation to use the __string wiring that the event framework provides ([2]).
[1]: https://lwn.net/Articles/379903/ [2]: https://lwn.net/Articles/381064/
Fixes: 033b87d24f72 ("io_uring: use the text representation of ops in trace") Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] [axboe: fixup spurious removal of sq_thread assignment] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v5.19-rc2, v5.19-rc1, v5.18 |
|
| #
0e7579ca |
| 19-May-2022 |
Vasily Averin <[email protected]> |
io_uring: fix incorrect __kernel_rwf_t cast
Currently 'make C=1 fs/io_uring.o' generates sparse warning:
CHECK fs/io_uring.c fs/io_uring.c: note: in included file (through include/trace/trace_e
io_uring: fix incorrect __kernel_rwf_t cast
Currently 'make C=1 fs/io_uring.o' generates sparse warning:
CHECK fs/io_uring.c fs/io_uring.c: note: in included file (through include/trace/trace_events.h, include/trace/define_trace.h, i nclude/trace/events/io_uring.h): ./include/trace/events/io_uring.h:488:1: warning: incorrect type in assignment (different base types) expected unsigned int [usertype] op_flags got restricted __kernel_rwf_t const [usertype] rw_flags
This happen on cast of sqe->rw_flags which is defined as __kernel_rwf_t, this type is bitwise and requires __force attribute for any casts. However rw_flags is a member of the union, and its access can be safely replaced by using of its neighbours, so let's use poll32_events to fix the sparse warning.
Signed-off-by: Vasily Averin <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v5.18-rc7 |
|
| #
2d2d5cb6 |
| 12-May-2022 |
Dylan Yudaken <[email protected]> |
io_uring: fix ordering of args in io_uring_queue_async_work
Fix arg ordering in TP_ARGS macro, which fixes the output.
Fixes: 502c87d65564c ("io-uring: Make tracepoints consistent.") Signed-off-by:
io_uring: fix ordering of args in io_uring_queue_async_work
Fix arg ordering in TP_ARGS macro, which fixes the output.
Fixes: 502c87d65564c ("io-uring: Make tracepoints consistent.") Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v5.18-rc6, v5.18-rc5 |
|
| #
c4bb964f |
| 26-Apr-2022 |
Stefan Roesch <[email protected]> |
io_uring: add tracing for additional CQE32 fields
This adds tracing for the extra1 and extra2 fields.
Co-developed-by: Jens Axboe <[email protected]> Signed-off-by: Stefan Roesch <[email protected]> Reviewe
io_uring: add tracing for additional CQE32 fields
This adds tracing for the extra1 and extra2 fields.
Co-developed-by: Jens Axboe <[email protected]> Signed-off-by: Stefan Roesch <[email protected]> Reviewed-by: Kanchan Joshi <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
033b87d2 |
| 26-Apr-2022 |
Dylan Yudaken <[email protected]> |
io_uring: use the text representation of ops in trace
It is annoying to translate opcodes to textwhen tracing io_uring. Use the io_uring_get_opcode function instead to use the text representation.
io_uring: use the text representation of ops in trace
It is annoying to translate opcodes to textwhen tracing io_uring. Use the io_uring_get_opcode function instead to use the text representation.
A downside here might have been that if the opcode is invalid it will not be obvious, however the opcode is already overridden in these cases to 0 (NOP) in io_init_req(). Therefore this is a non issue.
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] [axboe: don't include register, those are not req opcodes] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
1460af7d |
| 26-Apr-2022 |
Dylan Yudaken <[email protected]> |
io_uring: rename op -> opcode
do this for consistency with the other trace messages
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected]
io_uring: rename op -> opcode
do this for consistency with the other trace messages
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
0200ce6a |
| 25-Apr-2022 |
Jens Axboe <[email protected]> |
io_uring: fix trace for reduced sqe padding
__pad2 is only 1 u64 now, the other one is addr3. Adjust the trace so that it matches up.
Fixes: a56834e0fafe ("io_uring: add fgetxattr and getxattr supp
io_uring: fix trace for reduced sqe padding
__pad2 is only 1 u64 now, the other one is addr3. Adjust the trace so that it matches up.
Fixes: a56834e0fafe ("io_uring: add fgetxattr and getxattr support") Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v5.18-rc4 |
|
| #
47894438 |
| 21-Apr-2022 |
Dylan Yudaken <[email protected]> |
io_uring: add trace support for CQE overflow
Add trace function for overflowing CQ ring.
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/20220421091345.2115755-2-dylany
io_uring: add trace support for CQE overflow
Add trace function for overflowing CQ ring.
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v5.18-rc3, v5.18-rc2, v5.18-rc1, v5.17 |
|
| #
052ebf1f |
| 16-Mar-2022 |
Dylan Yudaken <[email protected]> |
io_uring: make tracing format consistent
Make the tracing formatting for user_data and flags consistent.
Having consistent formatting allows one for example to grep for a specific user_data/flags a
io_uring: make tracing format consistent
Make the tracing formatting for user_data and flags consistent.
Having consistent formatting allows one for example to grep for a specific user_data/flags and be able to trace a single sqe through easily.
Change user_data to 0x%llx and flags to 0x%x everywhere. The '0x' is useful to disambiguate for example "user_data 100".
Additionally remove the '=' for flags in io_uring_req_failed, again for consistency.
Signed-off-by: Dylan Yudaken <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v5.17-rc8, v5.17-rc7, v5.17-rc6, v5.17-rc5 |
|
| #
502c87d6 |
| 14-Feb-2022 |
Stefan Roesch <[email protected]> |
io-uring: Make tracepoints consistent.
This makes the io-uring tracepoints consistent. Where it makes sense the tracepoints start with the following four fields: - context (ring) - request - user_da
io-uring: Make tracepoints consistent.
This makes the io-uring tracepoints consistent. Where it makes sense the tracepoints start with the following four fields: - context (ring) - request - user_data - opcode.
Signed-off-by: Stefan Roesch <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v5.17-rc4, v5.17-rc3 |
|
| #
2757be22 |
| 04-Feb-2022 |
Usama Arif <[email protected]> |
io_uring: remove trace for eventfd
The information on whether eventfd is registered is not very useful and would result in the tracepoint being enclosed in an rcu_readlock in a later patch that trie
io_uring: remove trace for eventfd
The information on whether eventfd is registered is not very useful and would result in the tracepoint being enclosed in an rcu_readlock in a later patch that tries to avoid ring quiesce for registering eventfd.
Suggested-by: Jens Axboe <[email protected]> Signed-off-by: Usama Arif <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v5.17-rc2, v5.17-rc1, v5.16, v5.16-rc8, v5.16-rc7, v5.16-rc6, v5.16-rc5, v5.16-rc4, v5.16-rc3, v5.16-rc2, v5.16-rc1, v5.15, v5.15-rc7, v5.15-rc6, v5.15-rc5, v5.15-rc4, v5.15-rc3, v5.15-rc2, v5.15-rc1 |
|
| #
a87acfde |
| 11-Sep-2021 |
Jens Axboe <[email protected]> |
io_uring: dump sqe contents if issue fails
I recently had to look at a production problem where a request ended up getting the dreaded -EINVAL error on submit. The most used and hence useless of err
io_uring: dump sqe contents if issue fails
I recently had to look at a production problem where a request ended up getting the dreaded -EINVAL error on submit. The most used and hence useless of error codes, as it just tells you that something was wrong with your request, but not more than that.
Let's dump the full sqe contents if we run into an issue failure, that'll allow easier diagnosing of a wide variety of issues.
Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
2fc2a7a6 |
| 03-Sep-2021 |
Jens Axboe <[email protected]> |
io_uring: io_uring_complete() trace should take an integer
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
io_uring: io_uring_complete() trace should take an integer
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: [email protected] Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
|
Revision tags: v5.14, v5.14-rc7, v5.14-rc6, v5.14-rc5, v5.14-rc4, v5.14-rc3, v5.14-rc2, v5.14-rc1, v5.13, v5.13-rc7, v5.13-rc6, v5.13-rc5 |
|
| #
3d7b7b52 |
| 31-May-2021 |
Olivier Langlois <[email protected]> |
io_uring: minor clean up in trace events definition
Fix tabulation to make nice columns
Reviewed-by: Pavel Begunkov <[email protected]> Signed-off-by: Olivier Langlois <[email protected]>
io_uring: minor clean up in trace events definition
Fix tabulation to make nice columns
Reviewed-by: Pavel Begunkov <[email protected]> Signed-off-by: Olivier Langlois <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
show more ...
|
| #
236daeae |
| 31-May-2021 |
Olivier Langlois <[email protected]> |
io_uring: Add to traces the req pointer when available
The req pointer uniquely identify a specific request. Having it in traces can provide valuable insights that is not possible to have if the cal
io_uring: Add to traces the req pointer when available
The req pointer uniquely identify a specific request. Having it in traces can provide valuable insights that is not possible to have if the calling process is reusing the same user_data value.
Reviewed-by: Pavel Begunkov <[email protected]> Signed-off-by: Olivier Langlois <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
show more ...
|