From a31ea90fcbb57aac4d4e151d1896481d8110358b Mon Sep 17 00:00:00 2001 From: Yang Yang Date: Wed, 29 May 2024 16:17:00 +0800 Subject: [PATCH] ANDROID: vendor_hooks: add hook in f2fs_file_open() Add a hook to add OEM-specific flags to the inode, OEMs can utilize these specific OEM flags to identify if a file is frequently used and dynamically adjust the memory reclamation strategy during memory reclaim. Bug: 343628013 Bug: 413544055 Change-Id: I667e4de03e13822d25cb4e94a4ea065770e8f578 Signed-off-by: Yang Yang (cherry picked from commit 446570771ee30b592d83f57c3d132aa114c2b448) Signed-off-by: ying zuxin <11154159@vivo.com> --- drivers/android/vendor_hooks.c | 1 + fs/f2fs/file.c | 5 +++++ include/trace/hooks/fs.h | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 1e3afb2f1253..a2cc7d396463 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -482,6 +482,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_stack_hash); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_check); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_filemap_get_folio); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_f2fs_file_open); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_compaction_begin); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mm_compaction_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_vmscan_kswapd_wake); diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 1d9ff2f4bd92..279858ab8f12 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -35,6 +35,9 @@ #include #include +#undef CREATE_TRACE_POINTS +#include + static vm_fault_t f2fs_filemap_fault(struct vm_fault *vmf) { struct inode *inode = file_inode(vmf->vma->vm_file); @@ -605,6 +608,8 @@ static int f2fs_file_open(struct inode *inode, struct file *filp) filp->f_mode |= FMODE_NOWAIT; filp->f_mode |= FMODE_CAN_ODIRECT; + trace_android_vh_f2fs_file_open(inode, filp); + err = dquot_file_open(inode, filp); if (err) return err; diff --git a/include/trace/hooks/fs.h b/include/trace/hooks/fs.h index a313ee21339f..36f624c5e870 100644 --- a/include/trace/hooks/fs.h +++ b/include/trace/hooks/fs.h @@ -64,6 +64,11 @@ DECLARE_HOOK(android_vh_vfs_fsync_range, DECLARE_RESTRICTED_HOOK(android_rvh_do_fcntl, TP_PROTO(struct file *filp, unsigned int cmd, unsigned long arg, long *err), TP_ARGS(filp, cmd, arg, err), 1); + +DECLARE_HOOK(android_vh_f2fs_file_open, + TP_PROTO(struct inode *inode, struct file *filp), + TP_ARGS(inode, filp)); + #endif /* _TRACE_HOOK_FS_H */ /* This part must be outside protection */