diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 3364a94d1c63..e716d9f253d9 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -517,6 +517,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_init_adjust_zone_wmark); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_lock_folio_drop_mmap_start); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_lock_folio_drop_mmap_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_filemap_update_page); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_f2fs_ra_op_flags); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_hibernated_do_mem_alloc); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_hibernate_save_cmp_len); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_percpu_rwsem_down_read); diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index e573cc30dc55..06b29afba9f2 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -27,6 +27,7 @@ #include "segment.h" #include "iostat.h" #include +#include #define NUM_PREALLOC_POST_READ_CTXS 128 @@ -2069,7 +2070,10 @@ static inline loff_t f2fs_readpage_limit(struct inode *inode) static inline blk_opf_t f2fs_ra_op_flags(struct readahead_control *rac) { - return rac ? REQ_RAHEAD : 0; + blk_opf_t op_flag = rac ? REQ_RAHEAD : 0; + + trace_android_vh_f2fs_ra_op_flags(&op_flag, rac); + return op_flag; } static int f2fs_read_single_page(struct inode *inode, struct folio *folio, diff --git a/include/trace/hooks/blk.h b/include/trace/hooks/blk.h index 17f8ce4bf183..5bf95019bbaa 100644 --- a/include/trace/hooks/blk.h +++ b/include/trace/hooks/blk.h @@ -35,6 +35,13 @@ DECLARE_HOOK(android_vh_blk_mq_kick_requeue_list, TP_PROTO(struct request_queue *q, unsigned long delay, bool *skip), TP_ARGS(q, delay, skip)); +struct readahead_control; +typedef __u32 __bitwise blk_opf_t; + +DECLARE_HOOK(android_vh_f2fs_ra_op_flags, + TP_PROTO(blk_opf_t *op_flag, struct readahead_control *rac), + TP_ARGS(op_flag, rac)); + #endif /* _TRACE_HOOK_BLK_H */ /* This part must be outside protection */ #include