netfs.h (0e0f2dfe880fb19e4b15a7ca468623eb0b4ba586) | netfs.h (c38f4e96e605f17990e871214e6ea1496bc4e65f) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* Network filesystem support module tracepoints 3 * 4 * Copyright (C) 2021 Red Hat, Inc. All Rights Reserved. 5 * Written by David Howells (dhowells@redhat.com) 6 */ 7#undef TRACE_SYSTEM 8#define TRACE_SYSTEM netfs --- 5 unchanged lines hidden (view full) --- 14 15/* 16 * Define enums for tracing information. 17 */ 18#define netfs_read_traces \ 19 EM(netfs_read_trace_expanded, "EXPANDED ") \ 20 EM(netfs_read_trace_readahead, "READAHEAD") \ 21 EM(netfs_read_trace_readpage, "READPAGE ") \ | 1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* Network filesystem support module tracepoints 3 * 4 * Copyright (C) 2021 Red Hat, Inc. All Rights Reserved. 5 * Written by David Howells (dhowells@redhat.com) 6 */ 7#undef TRACE_SYSTEM 8#define TRACE_SYSTEM netfs --- 5 unchanged lines hidden (view full) --- 14 15/* 16 * Define enums for tracing information. 17 */ 18#define netfs_read_traces \ 19 EM(netfs_read_trace_expanded, "EXPANDED ") \ 20 EM(netfs_read_trace_readahead, "READAHEAD") \ 21 EM(netfs_read_trace_readpage, "READPAGE ") \ |
22 EM(netfs_read_trace_prefetch_for_write, "PREFETCHW") \ |
|
22 E_(netfs_read_trace_write_begin, "WRITEBEGN") 23 24#define netfs_write_traces \ 25 EM(netfs_write_trace_dio_write, "DIO-WRITE") \ 26 EM(netfs_write_trace_unbuffered_write, "UNB-WRITE") \ 27 E_(netfs_write_trace_writeback, "WRITEBACK") 28 29#define netfs_rreq_origins \ --- 65 unchanged lines hidden (view full) --- 95 EM(netfs_sreq_trace_put_discard, "PUT DISCARD") \ 96 EM(netfs_sreq_trace_put_failed, "PUT FAILED ") \ 97 EM(netfs_sreq_trace_put_merged, "PUT MERGED ") \ 98 EM(netfs_sreq_trace_put_no_copy, "PUT NO COPY") \ 99 EM(netfs_sreq_trace_put_wip, "PUT WIP ") \ 100 EM(netfs_sreq_trace_put_work, "PUT WORK ") \ 101 E_(netfs_sreq_trace_put_terminated, "PUT TERM ") 102 | 23 E_(netfs_read_trace_write_begin, "WRITEBEGN") 24 25#define netfs_write_traces \ 26 EM(netfs_write_trace_dio_write, "DIO-WRITE") \ 27 EM(netfs_write_trace_unbuffered_write, "UNB-WRITE") \ 28 E_(netfs_write_trace_writeback, "WRITEBACK") 29 30#define netfs_rreq_origins \ --- 65 unchanged lines hidden (view full) --- 96 EM(netfs_sreq_trace_put_discard, "PUT DISCARD") \ 97 EM(netfs_sreq_trace_put_failed, "PUT FAILED ") \ 98 EM(netfs_sreq_trace_put_merged, "PUT MERGED ") \ 99 EM(netfs_sreq_trace_put_no_copy, "PUT NO COPY") \ 100 EM(netfs_sreq_trace_put_wip, "PUT WIP ") \ 101 EM(netfs_sreq_trace_put_work, "PUT WORK ") \ 102 E_(netfs_sreq_trace_put_terminated, "PUT TERM ") 103 |
104#define netfs_folio_traces \ 105 /* The first few correspond to enum netfs_how_to_modify */ \ 106 EM(netfs_folio_is_uptodate, "mod-uptodate") \ 107 EM(netfs_just_prefetch, "mod-prefetch") \ 108 EM(netfs_whole_folio_modify, "mod-whole-f") \ 109 EM(netfs_modify_and_clear, "mod-n-clear") \ 110 EM(netfs_streaming_write, "mod-streamw") \ 111 EM(netfs_streaming_write_cont, "mod-streamw+") \ 112 EM(netfs_flush_content, "flush") \ 113 EM(netfs_streaming_filled_page, "mod-streamw-f") \ 114 EM(netfs_streaming_cont_filled_page, "mod-streamw-f+") \ 115 /* The rest are for writeback */ \ 116 EM(netfs_folio_trace_clear, "clear") \ 117 EM(netfs_folio_trace_clear_s, "clear-s") \ 118 EM(netfs_folio_trace_clear_g, "clear-g") \ 119 EM(netfs_folio_trace_copy_to_cache, "copy") \ 120 EM(netfs_folio_trace_end_copy, "end-copy") \ 121 EM(netfs_folio_trace_kill, "kill") \ 122 EM(netfs_folio_trace_mkwrite, "mkwrite") \ 123 EM(netfs_folio_trace_mkwrite_plus, "mkwrite+") \ 124 EM(netfs_folio_trace_redirty, "redirty") \ 125 EM(netfs_folio_trace_redirtied, "redirtied") \ 126 EM(netfs_folio_trace_store, "store") \ 127 E_(netfs_folio_trace_store_plus, "store+") 128 |
|
103#ifndef __NETFS_DECLARE_TRACE_ENUMS_ONCE_ONLY 104#define __NETFS_DECLARE_TRACE_ENUMS_ONCE_ONLY 105 106#undef EM 107#undef E_ 108#define EM(a, b) a, 109#define E_(a, b) a 110 111enum netfs_read_trace { netfs_read_traces } __mode(byte); 112enum netfs_write_trace { netfs_write_traces } __mode(byte); 113enum netfs_rreq_trace { netfs_rreq_traces } __mode(byte); 114enum netfs_sreq_trace { netfs_sreq_traces } __mode(byte); 115enum netfs_failure { netfs_failures } __mode(byte); 116enum netfs_rreq_ref_trace { netfs_rreq_ref_traces } __mode(byte); 117enum netfs_sreq_ref_trace { netfs_sreq_ref_traces } __mode(byte); | 129#ifndef __NETFS_DECLARE_TRACE_ENUMS_ONCE_ONLY 130#define __NETFS_DECLARE_TRACE_ENUMS_ONCE_ONLY 131 132#undef EM 133#undef E_ 134#define EM(a, b) a, 135#define E_(a, b) a 136 137enum netfs_read_trace { netfs_read_traces } __mode(byte); 138enum netfs_write_trace { netfs_write_traces } __mode(byte); 139enum netfs_rreq_trace { netfs_rreq_traces } __mode(byte); 140enum netfs_sreq_trace { netfs_sreq_traces } __mode(byte); 141enum netfs_failure { netfs_failures } __mode(byte); 142enum netfs_rreq_ref_trace { netfs_rreq_ref_traces } __mode(byte); 143enum netfs_sreq_ref_trace { netfs_sreq_ref_traces } __mode(byte); |
144enum netfs_folio_trace { netfs_folio_traces } __mode(byte); |
|
118 119#endif 120 121/* 122 * Export enum symbols via userspace. 123 */ 124#undef EM 125#undef E_ --- 4 unchanged lines hidden (view full) --- 130netfs_write_traces; 131netfs_rreq_origins; 132netfs_rreq_traces; 133netfs_sreq_sources; 134netfs_sreq_traces; 135netfs_failures; 136netfs_rreq_ref_traces; 137netfs_sreq_ref_traces; | 145 146#endif 147 148/* 149 * Export enum symbols via userspace. 150 */ 151#undef EM 152#undef E_ --- 4 unchanged lines hidden (view full) --- 157netfs_write_traces; 158netfs_rreq_origins; 159netfs_rreq_traces; 160netfs_sreq_sources; 161netfs_sreq_traces; 162netfs_failures; 163netfs_rreq_ref_traces; 164netfs_sreq_ref_traces; |
165netfs_folio_traces; |
|
138 139/* 140 * Now redefine the EM() and E_() macros to map the enums to the strings that 141 * will be printed in the output. 142 */ 143#undef EM 144#undef E_ 145#define EM(a, b) { a, b }, --- 184 unchanged lines hidden (view full) --- 330 331 TP_printk("R=%08x[%x] %s r=%u", 332 __entry->rreq, 333 __entry->subreq, 334 __print_symbolic(__entry->what, netfs_sreq_ref_traces), 335 __entry->ref) 336 ); 337 | 166 167/* 168 * Now redefine the EM() and E_() macros to map the enums to the strings that 169 * will be printed in the output. 170 */ 171#undef EM 172#undef E_ 173#define EM(a, b) { a, b }, --- 184 unchanged lines hidden (view full) --- 358 359 TP_printk("R=%08x[%x] %s r=%u", 360 __entry->rreq, 361 __entry->subreq, 362 __print_symbolic(__entry->what, netfs_sreq_ref_traces), 363 __entry->ref) 364 ); 365 |
366TRACE_EVENT(netfs_folio, 367 TP_PROTO(struct folio *folio, enum netfs_folio_trace why), 368 369 TP_ARGS(folio, why), 370 371 TP_STRUCT__entry( 372 __field(ino_t, ino) 373 __field(pgoff_t, index) 374 __field(unsigned int, nr) 375 __field(enum netfs_folio_trace, why) 376 ), 377 378 TP_fast_assign( 379 __entry->ino = folio->mapping->host->i_ino; 380 __entry->why = why; 381 __entry->index = folio_index(folio); 382 __entry->nr = folio_nr_pages(folio); 383 ), 384 385 TP_printk("i=%05lx ix=%05lx-%05lx %s", 386 __entry->ino, __entry->index, __entry->index + __entry->nr - 1, 387 __print_symbolic(__entry->why, netfs_folio_traces)) 388 ); 389 390TRACE_EVENT(netfs_write_iter, 391 TP_PROTO(const struct kiocb *iocb, const struct iov_iter *from), 392 393 TP_ARGS(iocb, from), 394 395 TP_STRUCT__entry( 396 __field(unsigned long long, start ) 397 __field(size_t, len ) 398 __field(unsigned int, flags ) 399 ), 400 401 TP_fast_assign( 402 __entry->start = iocb->ki_pos; 403 __entry->len = iov_iter_count(from); 404 __entry->flags = iocb->ki_flags; 405 ), 406 407 TP_printk("WRITE-ITER s=%llx l=%zx f=%x", 408 __entry->start, __entry->len, __entry->flags) 409 ); 410 |
|
338TRACE_EVENT(netfs_write, 339 TP_PROTO(const struct netfs_io_request *wreq, 340 enum netfs_write_trace what), 341 342 TP_ARGS(wreq, what), 343 344 TP_STRUCT__entry( 345 __field(unsigned int, wreq ) --- 29 unchanged lines hidden --- | 411TRACE_EVENT(netfs_write, 412 TP_PROTO(const struct netfs_io_request *wreq, 413 enum netfs_write_trace what), 414 415 TP_ARGS(wreq, what), 416 417 TP_STRUCT__entry( 418 __field(unsigned int, wreq ) --- 29 unchanged lines hidden --- |