ANDROID: mm: add vendor hooks for file folio reclaim.

Add hooks for file folio reclaim. the vendor hook keep reclaimed file folios
and help direct && kswapd reclaim.

Fix Conflicts:
	drivers/android/vendor_hooks.c
	include/trace/hooks/mm.h
	include/trace/hooks/vmscan.h
	mm/vmscan.c

remove the change of mm/memcontrol.c because
https://android-review.googlesource.com/c/kernel/common/+/3603374

Bug: 407947362
Bug: 449066551
Bug: 451083029
Change-Id: I4364ae2d269e4b4b88c12823ebf66abaa4650585
Signed-off-by: Hailong Liu <hailong.liu@oppo.com>
(cherry picked from commit 43bf81d175f5480a5537205f92b632ec8e5f1787)
(cherry picked from commit 6bae5d457e35a9e3ebefdf45e8e9e8f957fd6c84)
This commit is contained in:
Hailong Liu
2025-04-07 09:34:11 +08:00
parent cb5b1d91a0
commit 9e8a1bb6fb
7 changed files with 66 additions and 2 deletions
+13
View File
@@ -20,6 +20,10 @@ struct compact_control;
DECLARE_RESTRICTED_HOOK(android_rvh_shmem_get_folio,
TP_PROTO(struct shmem_inode_info *info, struct folio **folio, int order),
TP_ARGS(info, folio, order), 3);
DECLARE_RESTRICTED_HOOK(android_rvh_perform_reclaim,
TP_PROTO(int order, gfp_t gfp_mask, nodemask_t *nodemask,
unsigned long *progress, bool *skip),
TP_ARGS(order, gfp_mask, nodemask, progress, skip), 4);
DECLARE_HOOK(android_vh_shmem_mod_shmem,
TP_PROTO(struct address_space *mapping, long nr_pages),
TP_ARGS(mapping, nr_pages));
@@ -318,6 +322,15 @@ DECLARE_HOOK(android_vh_alloc_pages_slowpath_end,
unsigned long pages_reclaimed, int retry_loop_count),
TP_ARGS(gfp_mask, order, alloc_start, stime, did_some_progress,
pages_reclaimed, retry_loop_count));
DECLARE_HOOK(android_vh_filemap_pages,
TP_PROTO(struct folio *folio),
TP_ARGS(folio));
DECLARE_HOOK(android_vh_lru_gen_add_folio_skip,
TP_PROTO(struct lruvec *lruvec, struct folio *folio, bool *skip),
TP_ARGS(lruvec, folio, skip));
DECLARE_HOOK(android_vh_lru_gen_del_folio_skip,
TP_PROTO(struct lruvec *lruvec, struct folio *folio, bool *skip),
TP_ARGS(lruvec, folio, skip));
DECLARE_HOOK(android_vh_add_lazyfree_bypass,
TP_PROTO(struct lruvec *lruvec, struct folio *folio, bool *bypass),
TP_ARGS(lruvec, folio, bypass));
+13
View File
@@ -15,6 +15,9 @@ struct lruvec;
DECLARE_RESTRICTED_HOOK(android_rvh_set_balance_anon_file_reclaim,
TP_PROTO(bool *balance_anon_file_reclaim),
TP_ARGS(balance_anon_file_reclaim), 1);
DECLARE_RESTRICTED_HOOK(android_rvh_kswapd_shrink_node,
TP_PROTO(unsigned long *nr_reclaimed),
TP_ARGS(nr_reclaimed), 1);
DECLARE_HOOK(android_vh_check_folio_look_around_ref,
TP_PROTO(struct folio *folio, int *skip),
TP_ARGS(folio, skip));
@@ -31,6 +34,16 @@ DECLARE_HOOK(android_vh_inode_lru_isolate,
DECLARE_HOOK(android_vh_invalidate_mapping_pagevec,
TP_PROTO(struct address_space *mapping, bool *skip),
TP_ARGS(mapping, skip));
DECLARE_HOOK(android_vh_keep_reclaimed_folio,
TP_PROTO(struct folio *folio, int refcount, bool *keep),
TP_ARGS(folio, refcount, keep));
DECLARE_HOOK(android_vh_clear_reclaimed_folio,
TP_PROTO(struct folio *folio, bool reclaimed),
TP_ARGS(folio, reclaimed));
DECLARE_HOOK(android_vh_evict_folios_bypass,
TP_PROTO(struct folio *folio, bool *bypass),
TP_ARGS(folio, bypass));
DECLARE_HOOK(android_vh_modify_scan_control,
TP_PROTO(u64 *ext, unsigned long *nr_to_reclaim,
struct mem_cgroup *target_mem_cgroup,