X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fext4.h;h=1c2865ffcacea118b0b5da89bf66bc62f16134ef;hb=e540f3e3e9bfef73e6cecb4b378efab23c6666d6;hp=4bc428543a8a36e25327b69f1020cb0f84d4ee47;hpb=c6403de3e2c8ea4d16a8f303255ff6da17a10943;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h index 4bc42854..1c2865ff 100644 --- a/instrumentation/events/lttng-module/ext4.h +++ b/instrumentation/events/lttng-module/ext4.h @@ -1,11 +1,11 @@ #undef TRACE_SYSTEM #define TRACE_SYSTEM ext4 -#if !defined(_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_EXT4_H +#if !defined(LTTNG_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ) +#define LTTNG_TRACE_EXT4_H +#include "../../../probes/lttng-tracepoint-event.h" #include -#include #include #ifndef _TRACE_EXT4_DEF_ @@ -28,7 +28,7 @@ struct ext4_extent; #define TP_MODE_T umode_t #endif -TRACE_EVENT(ext4_free_inode, +LTTNG_TRACEPOINT_EVENT(ext4_free_inode, TP_PROTO(struct inode *inode), TP_ARGS(inode), @@ -62,7 +62,7 @@ TRACE_EVENT(ext4_free_inode, __entry->uid, __entry->gid, __entry->blocks) ) -TRACE_EVENT(ext4_request_inode, +LTTNG_TRACEPOINT_EVENT(ext4_request_inode, TP_PROTO(struct inode *dir, int mode), TP_ARGS(dir, mode), @@ -84,7 +84,7 @@ TRACE_EVENT(ext4_request_inode, (unsigned long) __entry->dir, __entry->mode) ) -TRACE_EVENT(ext4_allocate_inode, +LTTNG_TRACEPOINT_EVENT(ext4_allocate_inode, TP_PROTO(struct inode *inode, struct inode *dir, int mode), TP_ARGS(inode, dir, mode), @@ -110,7 +110,7 @@ TRACE_EVENT(ext4_allocate_inode, ) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) -TRACE_EVENT(ext4_evict_inode, +LTTNG_TRACEPOINT_EVENT(ext4_evict_inode, TP_PROTO(struct inode *inode), TP_ARGS(inode), @@ -132,7 +132,7 @@ TRACE_EVENT(ext4_evict_inode, (unsigned long) __entry->ino, __entry->nlink) ) -TRACE_EVENT(ext4_drop_inode, +LTTNG_TRACEPOINT_EVENT(ext4_drop_inode, TP_PROTO(struct inode *inode, int drop), TP_ARGS(inode, drop), @@ -154,7 +154,7 @@ TRACE_EVENT(ext4_drop_inode, (unsigned long) __entry->ino, __entry->drop) ) -TRACE_EVENT(ext4_mark_inode_dirty, +LTTNG_TRACEPOINT_EVENT(ext4_mark_inode_dirty, TP_PROTO(struct inode *inode, unsigned long IP), TP_ARGS(inode, IP), @@ -176,7 +176,7 @@ TRACE_EVENT(ext4_mark_inode_dirty, (unsigned long) __entry->ino, (void *)__entry->ip) ) -TRACE_EVENT(ext4_begin_ordered_truncate, +LTTNG_TRACEPOINT_EVENT(ext4_begin_ordered_truncate, TP_PROTO(struct inode *inode, loff_t new_size), TP_ARGS(inode, new_size), @@ -200,7 +200,7 @@ TRACE_EVENT(ext4_begin_ordered_truncate, ) #endif -DECLARE_EVENT_CLASS(ext4__write_begin, +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_begin, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int flags), @@ -229,7 +229,7 @@ DECLARE_EVENT_CLASS(ext4__write_begin, __entry->pos, __entry->len, __entry->flags) ) -DEFINE_EVENT(ext4__write_begin, ext4_write_begin, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_write_begin, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int flags), @@ -237,7 +237,7 @@ DEFINE_EVENT(ext4__write_begin, ext4_write_begin, TP_ARGS(inode, pos, len, flags) ) -DEFINE_EVENT(ext4__write_begin, ext4_da_write_begin, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_begin, ext4_da_write_begin, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int flags), @@ -245,7 +245,7 @@ DEFINE_EVENT(ext4__write_begin, ext4_da_write_begin, TP_ARGS(inode, pos, len, flags) ) -DECLARE_EVENT_CLASS(ext4__write_end, +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__write_end, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied), @@ -273,7 +273,7 @@ DECLARE_EVENT_CLASS(ext4__write_end, __entry->pos, __entry->len, __entry->copied) ) -DEFINE_EVENT(ext4__write_end, ext4_ordered_write_end, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_ordered_write_end, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied), @@ -281,7 +281,7 @@ DEFINE_EVENT(ext4__write_end, ext4_ordered_write_end, TP_ARGS(inode, pos, len, copied) ) -DEFINE_EVENT(ext4__write_end, ext4_writeback_write_end, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_writeback_write_end, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied), @@ -289,7 +289,7 @@ DEFINE_EVENT(ext4__write_end, ext4_writeback_write_end, TP_ARGS(inode, pos, len, copied) ) -DEFINE_EVENT(ext4__write_end, ext4_journalled_write_end, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_journalled_write_end, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied), @@ -297,7 +297,7 @@ DEFINE_EVENT(ext4__write_end, ext4_journalled_write_end, TP_ARGS(inode, pos, len, copied) ) -DEFINE_EVENT(ext4__write_end, ext4_da_write_end, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__write_end, ext4_da_write_end, TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, unsigned int copied), @@ -306,7 +306,7 @@ DEFINE_EVENT(ext4__write_end, ext4_da_write_end, ) #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40)) -TRACE_EVENT(ext4_writepage, +LTTNG_TRACEPOINT_EVENT(ext4_writepage, TP_PROTO(struct inode *inode, struct page *page), TP_ARGS(inode, page), @@ -330,7 +330,7 @@ TRACE_EVENT(ext4_writepage, ) #endif -TRACE_EVENT(ext4_da_writepages, +LTTNG_TRACEPOINT_EVENT(ext4_da_writepages, TP_PROTO(struct inode *inode, struct writeback_control *wbc), TP_ARGS(inode, wbc), @@ -410,7 +410,40 @@ TRACE_EVENT(ext4_da_writepages, (unsigned long) __entry->writeback_index) ) -TRACE_EVENT(ext4_da_write_pages, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages, + TP_PROTO(struct inode *inode, pgoff_t first_page, + struct writeback_control *wbc), + + TP_ARGS(inode, first_page, wbc), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, first_page ) + __field( long, nr_to_write ) + __field( int, sync_mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(first_page, first_page) + tp_assign(nr_to_write, wbc->nr_to_write) + tp_assign(sync_mode, wbc->sync_mode) + ), + + TP_printk("dev %d,%d ino %lu first_page %lu nr_to_write %ld " + "sync_mode %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->first_page, + __entry->nr_to_write, __entry->sync_mode) +) + +#else + +LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages, TP_PROTO(struct inode *inode, struct mpage_da_data *mpd), TP_ARGS(inode, mpd), @@ -463,7 +496,40 @@ TRACE_EVENT(ext4_da_write_pages, ) ) -TRACE_EVENT(ext4_da_writepages_result, +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +LTTNG_TRACEPOINT_EVENT(ext4_da_write_pages_extent, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map), + + TP_ARGS(inode, map), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, lblk ) + __field( __u32, len ) + __field( __u32, flags ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, map->m_lblk) + tp_assign(len, map->m_len) + tp_assign(flags, map->m_flags) + ), + + TP_printk("dev %d,%d ino %lu lblk %llu len %u flags %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->lblk, __entry->len, + show_mflags(__entry->flags)) +) + +#endif + +LTTNG_TRACEPOINT_EVENT(ext4_da_writepages_result, TP_PROTO(struct inode *inode, struct writeback_control *wbc, int ret, int pages_written), @@ -557,7 +623,7 @@ TRACE_EVENT(ext4_da_writepages_result, ) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) -DECLARE_EVENT_CLASS(ext4__page_op, +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__page_op, TP_PROTO(struct page *page), TP_ARGS(page), @@ -582,7 +648,7 @@ DECLARE_EVENT_CLASS(ext4__page_op, ) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) -DEFINE_EVENT(ext4__page_op, ext4_writepage, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_writepage, TP_PROTO(struct page *page), @@ -590,21 +656,65 @@ DEFINE_EVENT(ext4__page_op, ext4_writepage, ) #endif -DEFINE_EVENT(ext4__page_op, ext4_readpage, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_readpage, TP_PROTO(struct page *page), TP_ARGS(page) ) -DEFINE_EVENT(ext4__page_op, ext4_releasepage, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__page_op, ext4_releasepage, TP_PROTO(struct page *page), TP_ARGS(page) ) -TRACE_EVENT(ext4_invalidatepage, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +LTTNG_TRACEPOINT_EVENT_CLASS(ext4_invalidatepage_op, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( unsigned int, offset ) + __field( unsigned int, length ) + ), + + TP_fast_assign( + tp_assign(dev, page->mapping->host->i_sb->s_dev) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(index, page->index) + tp_assign(offset, offset) + tp_assign(length, length) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index, + __entry->offset, __entry->length) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_invalidatepage, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4_invalidatepage_op, ext4_journalled_invalidatepage, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length) +) + +#else + +LTTNG_TRACEPOINT_EVENT(ext4_invalidatepage, TP_PROTO(struct page *page, unsigned long offset), TP_ARGS(page, offset), @@ -629,9 +739,12 @@ TRACE_EVENT(ext4_invalidatepage, (unsigned long) __entry->ino, (unsigned long) __entry->index, __entry->offset) ) + #endif -TRACE_EVENT(ext4_discard_blocks, +#endif + +LTTNG_TRACEPOINT_EVENT(ext4_discard_blocks, TP_PROTO(struct super_block *sb, unsigned long long blk, unsigned long long count), @@ -655,7 +768,7 @@ TRACE_EVENT(ext4_discard_blocks, __entry->blk, __entry->count) ) -DECLARE_EVENT_CLASS(ext4__mb_new_pa, +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mb_new_pa, TP_PROTO(struct ext4_allocation_context *ac, struct ext4_prealloc_space *pa), @@ -684,7 +797,7 @@ DECLARE_EVENT_CLASS(ext4__mb_new_pa, __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart) ) -DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_inode_pa, TP_PROTO(struct ext4_allocation_context *ac, struct ext4_prealloc_space *pa), @@ -692,7 +805,7 @@ DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa, TP_ARGS(ac, pa) ) -DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mb_new_pa, ext4_mb_new_group_pa, TP_PROTO(struct ext4_allocation_context *ac, struct ext4_prealloc_space *pa), @@ -700,7 +813,7 @@ DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, TP_ARGS(ac, pa) ) -TRACE_EVENT(ext4_mb_release_inode_pa, +LTTNG_TRACEPOINT_EVENT(ext4_mb_release_inode_pa, TP_PROTO( #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) @@ -760,7 +873,7 @@ TRACE_EVENT(ext4_mb_release_inode_pa, __entry->block, __entry->count) ) -TRACE_EVENT(ext4_mb_release_group_pa, +LTTNG_TRACEPOINT_EVENT(ext4_mb_release_group_pa, #if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0)) TP_PROTO(struct ext4_prealloc_space *pa), @@ -813,7 +926,7 @@ TRACE_EVENT(ext4_mb_release_group_pa, __entry->pa_pstart, __entry->pa_len) ) -TRACE_EVENT(ext4_discard_preallocations, +LTTNG_TRACEPOINT_EVENT(ext4_discard_preallocations, TP_PROTO(struct inode *inode), TP_ARGS(inode), @@ -834,7 +947,7 @@ TRACE_EVENT(ext4_discard_preallocations, (unsigned long) __entry->ino) ) -TRACE_EVENT(ext4_mb_discard_preallocations, +LTTNG_TRACEPOINT_EVENT(ext4_mb_discard_preallocations, TP_PROTO(struct super_block *sb, int needed), TP_ARGS(sb, needed), @@ -855,7 +968,7 @@ TRACE_EVENT(ext4_mb_discard_preallocations, __entry->needed) ) -TRACE_EVENT(ext4_request_blocks, +LTTNG_TRACEPOINT_EVENT(ext4_request_blocks, TP_PROTO(struct ext4_allocation_request *ar), TP_ARGS(ar), @@ -895,7 +1008,7 @@ TRACE_EVENT(ext4_request_blocks, __entry->pright) ) -TRACE_EVENT(ext4_allocate_blocks, +LTTNG_TRACEPOINT_EVENT(ext4_allocate_blocks, TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block), TP_ARGS(ar, block), @@ -937,7 +1050,7 @@ TRACE_EVENT(ext4_allocate_blocks, __entry->pleft, __entry->pright) ) -TRACE_EVENT(ext4_free_blocks, +LTTNG_TRACEPOINT_EVENT(ext4_free_blocks, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) TP_PROTO(struct inode *inode, __u64 block, unsigned long count, int flags), @@ -992,9 +1105,9 @@ TRACE_EVENT(ext4_free_blocks, ) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) -TRACE_EVENT(ext4_sync_file_enter, +LTTNG_TRACEPOINT_EVENT(ext4_sync_file_enter, #else -TRACE_EVENT(ext4_sync_file, +LTTNG_TRACEPOINT_EVENT(ext4_sync_file, #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) TP_PROTO(struct file *file, int datasync), @@ -1034,7 +1147,7 @@ TRACE_EVENT(ext4_sync_file, ) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) -TRACE_EVENT(ext4_sync_file_exit, +LTTNG_TRACEPOINT_EVENT(ext4_sync_file_exit, TP_PROTO(struct inode *inode, int ret), TP_ARGS(inode, ret), @@ -1058,7 +1171,7 @@ TRACE_EVENT(ext4_sync_file_exit, ) #endif -TRACE_EVENT(ext4_sync_fs, +LTTNG_TRACEPOINT_EVENT(ext4_sync_fs, TP_PROTO(struct super_block *sb, int wait), TP_ARGS(sb, wait), @@ -1079,7 +1192,7 @@ TRACE_EVENT(ext4_sync_fs, __entry->wait) ) -TRACE_EVENT(ext4_alloc_da_blocks, +LTTNG_TRACEPOINT_EVENT(ext4_alloc_da_blocks, TP_PROTO(struct inode *inode), TP_ARGS(inode), @@ -1104,7 +1217,7 @@ TRACE_EVENT(ext4_alloc_da_blocks, __entry->data_blocks, __entry->meta_blocks) ) -TRACE_EVENT(ext4_mballoc_alloc, +LTTNG_TRACEPOINT_EVENT(ext4_mballoc_alloc, TP_PROTO(struct ext4_allocation_context *ac), TP_ARGS(ac), @@ -1171,7 +1284,7 @@ TRACE_EVENT(ext4_mballoc_alloc, __entry->buddy ? 1 << __entry->buddy : 0) ) -TRACE_EVENT(ext4_mballoc_prealloc, +LTTNG_TRACEPOINT_EVENT(ext4_mballoc_prealloc, TP_PROTO(struct ext4_allocation_context *ac), TP_ARGS(ac), @@ -1211,7 +1324,7 @@ TRACE_EVENT(ext4_mballoc_prealloc, __entry->result_len, __entry->result_logical) ) -DECLARE_EVENT_CLASS(ext4__mballoc, +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__mballoc, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) TP_PROTO(struct super_block *sb, struct inode *inode, @@ -1270,7 +1383,7 @@ DECLARE_EVENT_CLASS(ext4__mballoc, ) ) -DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_discard, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) TP_PROTO(struct super_block *sb, @@ -1287,7 +1400,7 @@ DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, #endif ) -DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__mballoc, ext4_mballoc_free, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) TP_PROTO(struct super_block *sb, @@ -1305,7 +1418,7 @@ DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, ) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) -TRACE_EVENT(ext4_forget, +LTTNG_TRACEPOINT_EVENT(ext4_forget, TP_PROTO(struct inode *inode, int is_metadata, __u64 block), TP_ARGS(inode, is_metadata, block), @@ -1334,7 +1447,7 @@ TRACE_EVENT(ext4_forget, #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) -TRACE_EVENT(ext4_da_update_reserve_space, +LTTNG_TRACEPOINT_EVENT(ext4_da_update_reserve_space, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) TP_PROTO(struct inode *inode, int used_blocks, int quota_claim), @@ -1398,7 +1511,36 @@ TRACE_EVENT(ext4_da_update_reserve_space, #endif ) -TRACE_EVENT(ext4_da_reserve_space, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) +LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(i_blocks, inode->i_blocks) + tp_assign(reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + tp_assign(reserved_meta_blocks, + EXT4_I(inode)->i_reserved_meta_blocks) + tp_assign(mode, inode->i_mode) + ), + + TP_printk() +) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */ +LTTNG_TRACEPOINT_EVENT(ext4_da_reserve_space, TP_PROTO(struct inode *inode, int md_needed), TP_ARGS(inode, md_needed), @@ -1433,8 +1575,9 @@ TRACE_EVENT(ext4_da_reserve_space, __entry->md_needed, __entry->reserved_data_blocks, __entry->reserved_meta_blocks) ) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0)) */ -TRACE_EVENT(ext4_da_release_space, +LTTNG_TRACEPOINT_EVENT(ext4_da_release_space, TP_PROTO(struct inode *inode, int freed_blocks), TP_ARGS(inode, freed_blocks), @@ -1476,7 +1619,7 @@ TRACE_EVENT(ext4_da_release_space, #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) -DECLARE_EVENT_CLASS(ext4__bitmap_load, +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__bitmap_load, TP_PROTO(struct super_block *sb, unsigned long group), TP_ARGS(sb, group), @@ -1497,14 +1640,14 @@ DECLARE_EVENT_CLASS(ext4__bitmap_load, __entry->group) ) -DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_bitmap_load, TP_PROTO(struct super_block *sb, unsigned long group), TP_ARGS(sb, group) ) -DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, TP_PROTO(struct super_block *sb, unsigned long group), @@ -1513,21 +1656,21 @@ DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) -DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_read_block_bitmap_load, TP_PROTO(struct super_block *sb, unsigned long group), TP_ARGS(sb, group) ) -DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__bitmap_load, ext4_load_inode_bitmap, TP_PROTO(struct super_block *sb, unsigned long group), TP_ARGS(sb, group) ) -TRACE_EVENT(ext4_direct_IO_enter, +LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_enter, TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), TP_ARGS(inode, offset, len, rw), @@ -1554,7 +1697,7 @@ TRACE_EVENT(ext4_direct_IO_enter, __entry->pos, __entry->len, __entry->rw) ) -TRACE_EVENT(ext4_direct_IO_exit, +LTTNG_TRACEPOINT_EVENT(ext4_direct_IO_exit, TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw, int ret), @@ -1585,7 +1728,89 @@ TRACE_EVENT(ext4_direct_IO_exit, __entry->rw, __entry->ret) ) -TRACE_EVENT(ext4_fallocate_enter, +LTTNG_TRACEPOINT_EVENT(ext4_fallocate_exit, + TP_PROTO(struct inode *inode, loff_t offset, + unsigned int max_blocks, int ret), + + TP_ARGS(inode, offset, max_blocks, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, blocks ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, offset) + tp_assign(blocks, max_blocks) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->blocks, + __entry->ret) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) + +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__fallocate_mode, + TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), + + TP_ARGS(inode, offset, len, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, offset ) + __field( loff_t, len ) + __field( int, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(offset, offset) + tp_assign(len, len) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d ino %lu offset %lld len %lld mode %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->offset, __entry->len, + show_falloc_mode(__entry->mode)) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_fallocate_enter, + + TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), + + TP_ARGS(inode, offset, len, mode) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_punch_hole, + + TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), + + TP_ARGS(inode, offset, len, mode) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__fallocate_mode, ext4_zero_range, + + TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), + + TP_ARGS(inode, offset, len, mode) +) + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */ + +LTTNG_TRACEPOINT_EVENT(ext4_fallocate_enter, TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), TP_ARGS(inode, offset, len, mode), @@ -1612,36 +1837,38 @@ TRACE_EVENT(ext4_fallocate_enter, __entry->len, __entry->mode) ) -TRACE_EVENT(ext4_fallocate_exit, - TP_PROTO(struct inode *inode, loff_t offset, - unsigned int max_blocks, int ret), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) - TP_ARGS(inode, offset, max_blocks, ret), +LTTNG_TRACEPOINT_EVENT(ext4_punch_hole, + TP_PROTO(struct inode *inode, loff_t offset, loff_t len), + + TP_ARGS(inode, offset, len), TP_STRUCT__entry( __field( dev_t, dev ) __field( ino_t, ino ) - __field( loff_t, pos ) - __field( unsigned int, blocks ) - __field( int, ret ) + __field( loff_t, offset ) + __field( loff_t, len ) ), TP_fast_assign( tp_assign(dev, inode->i_sb->s_dev) tp_assign(ino, inode->i_ino) - tp_assign(pos, offset) - tp_assign(blocks, max_blocks) - tp_assign(ret, ret) + tp_assign(offset, offset) + tp_assign(len, len) ), - TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d", + TP_printk("dev %d,%d ino %lu offset %lld len %lld", MAJOR(__entry->dev), MINOR(__entry->dev), (unsigned long) __entry->ino, - __entry->pos, __entry->blocks, - __entry->ret) + __entry->offset, __entry->len) ) -TRACE_EVENT(ext4_unlink_enter, +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) */ + +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */ + +LTTNG_TRACEPOINT_EVENT(ext4_unlink_enter, TP_PROTO(struct inode *parent, struct dentry *dentry), TP_ARGS(parent, dentry), @@ -1666,7 +1893,7 @@ TRACE_EVENT(ext4_unlink_enter, (unsigned long) __entry->parent) ) -TRACE_EVENT(ext4_unlink_exit, +LTTNG_TRACEPOINT_EVENT(ext4_unlink_exit, TP_PROTO(struct dentry *dentry, int ret), TP_ARGS(dentry, ret), @@ -1689,7 +1916,7 @@ TRACE_EVENT(ext4_unlink_exit, __entry->ret) ) -DECLARE_EVENT_CLASS(ext4__truncate, +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__truncate, TP_PROTO(struct inode *inode), TP_ARGS(inode), @@ -1711,14 +1938,14 @@ DECLARE_EVENT_CLASS(ext4__truncate, (unsigned long) __entry->ino, __entry->blocks) ) -DEFINE_EVENT(ext4__truncate, ext4_truncate_enter, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_enter, TP_PROTO(struct inode *inode), TP_ARGS(inode) ) -DEFINE_EVENT(ext4__truncate, ext4_truncate_exit, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__truncate, ext4_truncate_exit, TP_PROTO(struct inode *inode), @@ -1727,7 +1954,7 @@ DEFINE_EVENT(ext4__truncate, ext4_truncate_exit, #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) /* 'ux' is the uninitialized extent. */ -TRACE_EVENT(ext4_ext_convert_to_initialized_enter, +LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_enter, TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, struct ext4_extent *ux), @@ -1765,7 +1992,7 @@ TRACE_EVENT(ext4_ext_convert_to_initialized_enter, * 'ux' is the uninitialized extent. * 'ix' is the initialized extent to which blocks are transferred. */ -TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath, +LTTNG_TRACEPOINT_EVENT(ext4_ext_convert_to_initialized_fastpath, TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, struct ext4_extent *ux, struct ext4_extent *ix), @@ -1808,7 +2035,7 @@ TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath, ) #endif -DECLARE_EVENT_CLASS(ext4__map_blocks_enter, +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_enter, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len, unsigned int flags), @@ -1836,21 +2063,121 @@ DECLARE_EVENT_CLASS(ext4__map_blocks_enter, __entry->lblk, __entry->len, __entry->flags) ) -DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned len, unsigned flags), TP_ARGS(inode, lblk, len, flags) ) -DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_enter, ext4_ind_map_blocks_enter, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned len, unsigned flags), TP_ARGS(inode, lblk, len, flags) ) -DECLARE_EVENT_CLASS(ext4__map_blocks_exit, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map, + int ret), + + TP_ARGS(inode, flags, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, flags ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, mflags ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(flags, flags) + tp_assign(pblk, map->m_pblk) + tp_assign(lblk, map->m_lblk) + tp_assign(len, map->m_len) + tp_assign(mflags, map->m_flags) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu flags %s lblk %u pblk %llu len %u " + "mflags %s ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + show_map_flags(__entry->flags), __entry->lblk, __entry->pblk, + __entry->len, show_mflags(__entry->mflags), __entry->ret) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, unsigned flags, + struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, flags, map, ret) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, unsigned flags, + struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, flags, map, ret) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) + +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, map->m_pblk) + tp_assign(lblk, map->m_lblk) + tp_assign(len, map->m_len) + tp_assign(flags, map->m_flags) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->flags, __entry->ret) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, map, ret) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, map, ret) +) + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__map_blocks_exit, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, unsigned int len, int ret), @@ -1881,21 +2208,23 @@ DECLARE_EVENT_CLASS(ext4__map_blocks_exit, __entry->len, __entry->ret) ) -DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, unsigned len, int ret), TP_ARGS(inode, lblk, pblk, len, ret) ) -DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, unsigned len, int ret), TP_ARGS(inode, lblk, pblk, len, ret) ) -TRACE_EVENT(ext4_ext_load_extent, +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + +LTTNG_TRACEPOINT_EVENT(ext4_ext_load_extent, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk), TP_ARGS(inode, lblk, pblk), @@ -1920,7 +2249,7 @@ TRACE_EVENT(ext4_ext_load_extent, __entry->lblk, __entry->pblk) ) -TRACE_EVENT(ext4_load_inode, +LTTNG_TRACEPOINT_EVENT(ext4_load_inode, TP_PROTO(struct inode *inode), TP_ARGS(inode), @@ -1941,11 +2270,61 @@ TRACE_EVENT(ext4_load_inode, ) #endif -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) -TRACE_EVENT(ext4_journal_start, - TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) - TP_ARGS(sb, nblocks, IP), +LTTNG_TRACEPOINT_EVENT(ext4_journal_start, + TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks, + unsigned long IP), + + TP_ARGS(sb, blocks, rsv_blocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, blocks ) + __field( int, rsv_blocks ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(ip, IP) + tp_assign(blocks, blocks) + tp_assign(rsv_blocks, rsv_blocks) + ), + + TP_printk("dev %d,%d blocks, %d rsv_blocks, %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blocks, __entry->rsv_blocks, (void *)__entry->ip) +) + +LTTNG_TRACEPOINT_EVENT(ext4_journal_start_reserved, + TP_PROTO(struct super_block *sb, int blocks, unsigned long IP), + + TP_ARGS(sb, blocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, blocks ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(ip, IP) + tp_assign(blocks, blocks) + ), + + TP_printk("dev %d,%d blocks, %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blocks, (void *)__entry->ip) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) + +LTTNG_TRACEPOINT_EVENT(ext4_journal_start, + TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP), + + TP_ARGS(sb, nblocks, IP), TP_STRUCT__entry( __field( dev_t, dev ) @@ -1964,7 +2343,7 @@ TRACE_EVENT(ext4_journal_start, __entry->nblocks, (void *)__entry->ip) ) -DECLARE_EVENT_CLASS(ext4__trim, +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__trim, TP_PROTO(struct super_block *sb, ext4_group_t group, ext4_grpblk_t start, @@ -1993,7 +2372,7 @@ DECLARE_EVENT_CLASS(ext4__trim, __entry->group, __entry->start, __entry->len) ) -DEFINE_EVENT(ext4__trim, ext4_trim_extent, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_extent, TP_PROTO(struct super_block *sb, ext4_group_t group, @@ -2003,7 +2382,7 @@ DEFINE_EVENT(ext4__trim, ext4_trim_extent, TP_ARGS(sb, group, start, len) ) -DEFINE_EVENT(ext4__trim, ext4_trim_all_free, +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__trim, ext4_trim_all_free, TP_PROTO(struct super_block *sb, ext4_group_t group, @@ -2015,11 +2394,19 @@ DEFINE_EVENT(ext4__trim, ext4_trim_all_free, #endif #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) -TRACE_EVENT(ext4_ext_handle_uninitialized_extents, + +LTTNG_TRACEPOINT_EVENT(ext4_ext_handle_uninitialized_extents, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags, + unsigned int allocated, ext4_fsblk_t newblock), + + TP_ARGS(inode, map, flags, allocated, newblock), +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, unsigned int allocated, ext4_fsblk_t newblock), TP_ARGS(inode, map, allocated, newblock), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ TP_STRUCT__entry( __field( dev_t, dev ) @@ -2035,7 +2422,11 @@ TRACE_EVENT(ext4_ext_handle_uninitialized_extents, TP_fast_assign( tp_assign(dev, inode->i_sb->s_dev) tp_assign(ino, inode->i_ino) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) + tp_assign(flags, flags) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ tp_assign(flags, map->m_flags) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ tp_assign(lblk, map->m_lblk) tp_assign(pblk, map->m_pblk) tp_assign(len, map->m_len) @@ -2053,7 +2444,7 @@ TRACE_EVENT(ext4_ext_handle_uninitialized_extents, (unsigned long long) __entry->newblk) ) -TRACE_EVENT(ext4_get_implied_cluster_alloc_exit, +LTTNG_TRACEPOINT_EVENT(ext4_get_implied_cluster_alloc_exit, TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret), TP_ARGS(sb, map, ret), @@ -2082,7 +2473,7 @@ TRACE_EVENT(ext4_get_implied_cluster_alloc_exit, __entry->len, __entry->flags, __entry->ret) ) -TRACE_EVENT(ext4_ext_put_in_cache, +LTTNG_TRACEPOINT_EVENT(ext4_ext_put_in_cache, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len, ext4_fsblk_t start), @@ -2112,7 +2503,7 @@ TRACE_EVENT(ext4_ext_put_in_cache, (unsigned long long) __entry->start) ) -TRACE_EVENT(ext4_ext_in_cache, +LTTNG_TRACEPOINT_EVENT(ext4_ext_in_cache, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret), TP_ARGS(inode, lblk, ret), @@ -2139,7 +2530,7 @@ TRACE_EVENT(ext4_ext_in_cache, ) -TRACE_EVENT(ext4_find_delalloc_range, +LTTNG_TRACEPOINT_EVENT(ext4_find_delalloc_range, TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to, int reverse, int found, ext4_lblk_t found_blk), @@ -2174,7 +2565,7 @@ TRACE_EVENT(ext4_find_delalloc_range, (unsigned) __entry->found_blk) ) -TRACE_EVENT(ext4_get_reserved_cluster_alloc, +LTTNG_TRACEPOINT_EVENT(ext4_get_reserved_cluster_alloc, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len), TP_ARGS(inode, lblk, len), @@ -2200,7 +2591,7 @@ TRACE_EVENT(ext4_get_reserved_cluster_alloc, __entry->len) ) -TRACE_EVENT(ext4_ext_show_extent, +LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent, TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, unsigned short len), @@ -2230,7 +2621,52 @@ TRACE_EVENT(ext4_ext_show_extent, (unsigned short) __entry->len) ) -TRACE_EVENT(ext4_remove_blocks, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks, + TP_PROTO(struct inode *inode, struct ext4_extent *ex, + ext4_lblk_t from, ext4_fsblk_t to, + long long partial_cluster), + + TP_ARGS(inode, ex, from, to, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( long long, partial ) + __field( ext4_fsblk_t, ee_pblk ) + __field( ext4_lblk_t, ee_lblk ) + __field( unsigned short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(from, from) + tp_assign(to, to) + tp_assign(partial, partial_cluster) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_lblk, le32_to_cpu(ex->ee_block)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]" + "from %u to %u partial_cluster %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->from, + (unsigned) __entry->to, + (long long) __entry->partial) +) + +#else + +LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks, TP_PROTO(struct inode *inode, struct ext4_extent *ex, ext4_lblk_t from, ext4_fsblk_t to, ext4_fsblk_t partial_cluster), @@ -2271,7 +2707,51 @@ TRACE_EVENT(ext4_remove_blocks, (unsigned) __entry->partial) ) -TRACE_EVENT(ext4_ext_rm_leaf, +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + struct ext4_extent *ex, + long long partial_cluster), + + TP_ARGS(inode, start, ex, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( long long, partial ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, ee_lblk ) + __field( ext4_fsblk_t, ee_pblk ) + __field( short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(partial, partial_cluster) + tp_assign(start, start) + tp_assign(ee_lblk, le32_to_cpu(ex->ee_block)) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]" + "partial_cluster %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (long long) __entry->partial) +) + +#else + +LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf, TP_PROTO(struct inode *inode, ext4_lblk_t start, struct ext4_extent *ex, ext4_fsblk_t partial_cluster), @@ -2308,7 +2788,9 @@ TRACE_EVENT(ext4_ext_rm_leaf, (unsigned) __entry->partial) ) -TRACE_EVENT(ext4_ext_rm_idx, +#endif + +LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_idx, TP_PROTO(struct inode *inode, ext4_fsblk_t pblk), TP_ARGS(inode, pblk), @@ -2331,7 +2813,41 @@ TRACE_EVENT(ext4_ext_rm_idx, (unsigned long long) __entry->pblk) ) -TRACE_EVENT(ext4_ext_remove_space, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + ext4_lblk_t end, int depth), + + TP_ARGS(inode, start, end, depth), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, end ) + __field( int, depth ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(end, end) + tp_assign(depth, depth) + ), + + TP_printk("dev %d,%d ino %lu since %u end %u depth %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->end, + __entry->depth) +) + +#else + +LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space, TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth), TP_ARGS(inode, start, depth), @@ -2357,7 +2873,50 @@ TRACE_EVENT(ext4_ext_remove_space, __entry->depth) ) -TRACE_EVENT(ext4_ext_remove_space_done, +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done, + TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end, + int depth, long long partial, __le16 eh_entries), + + TP_ARGS(inode, start, end, depth, partial, eh_entries), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, end ) + __field( int, depth ) + __field( long long, partial ) + __field( unsigned short, eh_entries ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(end, end) + tp_assign(depth, depth) + tp_assign(partial, partial) + tp_assign(eh_entries, le16_to_cpu(eh_entries)) + ), + + TP_printk("dev %d,%d ino %lu since %u end %u depth %d partial %lld " + "remaining_entries %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->end, + __entry->depth, + (long long) __entry->partial, + (unsigned short) __entry->eh_entries) +) + +#else + +LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done, TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth, ext4_lblk_t partial, unsigned short eh_entries), @@ -2390,9 +2949,267 @@ TRACE_EVENT(ext4_ext_remove_space_done, (unsigned) __entry->partial, (unsigned short) __entry->eh_entries) ) + +#endif + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0)) + +LTTNG_TRACEPOINT_EVENT_CLASS(ext4__es_extent, + TP_PROTO(struct inode *inode, struct extent_status *es), + + TP_ARGS(inode, es), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es)) + ), + + TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, + __entry->pblk, show_extent_status(__entry->status)) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_insert_extent, + TP_PROTO(struct inode *inode, struct extent_status *es), + + TP_ARGS(inode, es) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE(ext4__es_extent, ext4_es_cache_extent, + TP_PROTO(struct inode *inode, struct extent_status *es), + + TP_ARGS(inode, es) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +LTTNG_TRACEPOINT_EVENT(ext4_es_insert_extent, + TP_PROTO(struct inode *inode, struct extent_status *es), + + TP_ARGS(inode, es), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es) >> 60) + ), + + TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, + __entry->pblk, show_extent_status(__entry->status)) +) + +LTTNG_TRACEPOINT_EVENT(ext4_es_remove_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len), + + TP_ARGS(inode, lblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, lblk ) + __field( loff_t, len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d ino %lu es [%lld/%lld)", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len) +) + +LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk), + + TP_ARGS(inode, lblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + ), + + TP_printk("dev %d,%d ino %lu lblk %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->lblk) +) + +LTTNG_TRACEPOINT_EVENT(ext4_es_find_delayed_extent_range_exit, + TP_PROTO(struct inode *inode, struct extent_status *es), + + TP_ARGS(inode, es), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es) >> 60) + ), + + TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, + __entry->pblk, show_extent_status(__entry->status)) +) + +LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk), + + TP_ARGS(inode, lblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + ), + + TP_printk("dev %d,%d ino %lu lblk %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->lblk) +) + +LTTNG_TRACEPOINT_EVENT(ext4_es_lookup_extent_exit, + TP_PROTO(struct inode *inode, struct extent_status *es, + int found), + + TP_ARGS(inode, es, found), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + __field( int, found ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es) >> 60) + tp_assign(found, found) + ), + + TP_printk("dev %d,%d ino %lu found %d [%u/%u) %llu %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->found, + __entry->lblk, __entry->len, + __entry->found ? __entry->pblk : 0, + show_extent_status(__entry->found ? __entry->status : 0)) +) + +LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_enter, + TP_PROTO(struct super_block *sb, int nr_to_scan, int cache_cnt), + + TP_ARGS(sb, nr_to_scan, cache_cnt), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, nr_to_scan ) + __field( int, cache_cnt ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(nr_to_scan, nr_to_scan) + tp_assign(cache_cnt, cache_cnt) + ), + + TP_printk("dev %d,%d nr_to_scan %d cache_cnt %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->nr_to_scan, __entry->cache_cnt) +) + +LTTNG_TRACEPOINT_EVENT(ext4_es_shrink_exit, + TP_PROTO(struct super_block *sb, int shrunk_nr, int cache_cnt), + + TP_ARGS(sb, shrunk_nr, cache_cnt), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, shrunk_nr ) + __field( int, cache_cnt ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(shrunk_nr, shrunk_nr) + tp_assign(cache_cnt, cache_cnt) + ), + + TP_printk("dev %d,%d shrunk_nr %d cache_cnt %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->shrunk_nr, __entry->cache_cnt) +) + #endif -#endif /* _TRACE_EXT4_H */ +#endif /* LTTNG_TRACE_EXT4_H */ /* This part must be outside protection */ #include "../../../probes/define_trace.h"