xref: /OK3568_Linux_fs/kernel/include/trace/hooks/mm.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifdef PROTECT_TRACE_INCLUDE_PATH
3*4882a593Smuzhiyun #undef PROTECT_TRACE_INCLUDE_PATH
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include <trace/hooks/save_incpath.h>
6*4882a593Smuzhiyun #include <trace/hooks/mm.h>
7*4882a593Smuzhiyun #include <trace/hooks/restore_incpath.h>
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #else /* PROTECT_TRACE_INCLUDE_PATH */
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #undef TRACE_SYSTEM
12*4882a593Smuzhiyun #define TRACE_SYSTEM mm
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #define TRACE_INCLUDE_PATH trace/hooks
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #if !defined(_TRACE_HOOK_MM_H) || defined(TRACE_HEADER_MULTI_READ)
17*4882a593Smuzhiyun #define _TRACE_HOOK_MM_H
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #include <linux/types.h>
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun #include <linux/mm.h>
22*4882a593Smuzhiyun #include <linux/oom.h>
23*4882a593Smuzhiyun #include <linux/tracepoint.h>
24*4882a593Smuzhiyun #include <trace/hooks/vendor_hooks.h>
25*4882a593Smuzhiyun #include <linux/rwsem.h>
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun #ifdef __GENKSYMS__
28*4882a593Smuzhiyun struct slabinfo;
29*4882a593Smuzhiyun struct cgroup_subsys_state;
30*4882a593Smuzhiyun struct device;
31*4882a593Smuzhiyun struct mem_cgroup;
32*4882a593Smuzhiyun struct readahead_control;
33*4882a593Smuzhiyun #else
34*4882a593Smuzhiyun /* struct slabinfo */
35*4882a593Smuzhiyun #include <../mm/slab.h>
36*4882a593Smuzhiyun /* struct cgroup_subsys_state */
37*4882a593Smuzhiyun #include <linux/cgroup-defs.h>
38*4882a593Smuzhiyun /* struct device */
39*4882a593Smuzhiyun #include <linux/device.h>
40*4882a593Smuzhiyun /* struct mem_cgroup */
41*4882a593Smuzhiyun #include <linux/memcontrol.h>
42*4882a593Smuzhiyun /* struct readahead_control */
43*4882a593Smuzhiyun #include <linux/pagemap.h>
44*4882a593Smuzhiyun #endif /* __GENKSYMS__ */
45*4882a593Smuzhiyun struct cma;
46*4882a593Smuzhiyun struct swap_slots_cache;
47*4882a593Smuzhiyun struct page_vma_mapped_walk;
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun DECLARE_RESTRICTED_HOOK(android_rvh_set_skip_swapcache_flags,
50*4882a593Smuzhiyun 			TP_PROTO(gfp_t *flags),
51*4882a593Smuzhiyun 			TP_ARGS(flags), 1);
52*4882a593Smuzhiyun DECLARE_RESTRICTED_HOOK(android_rvh_set_gfp_zone_flags,
53*4882a593Smuzhiyun 			TP_PROTO(gfp_t *flags),
54*4882a593Smuzhiyun 			TP_ARGS(flags), 1);
55*4882a593Smuzhiyun DECLARE_RESTRICTED_HOOK(android_rvh_set_readahead_gfp_mask,
56*4882a593Smuzhiyun 			TP_PROTO(gfp_t *flags),
57*4882a593Smuzhiyun 			TP_ARGS(flags), 1);
58*4882a593Smuzhiyun DECLARE_HOOK(android_vh_cma_alloc_start,
59*4882a593Smuzhiyun 	TP_PROTO(s64 *ts),
60*4882a593Smuzhiyun 	TP_ARGS(ts));
61*4882a593Smuzhiyun DECLARE_HOOK(android_vh_cma_alloc_finish,
62*4882a593Smuzhiyun 	TP_PROTO(struct cma *cma, struct page *page, unsigned long count,
63*4882a593Smuzhiyun 		 unsigned int align, gfp_t gfp_mask, s64 ts),
64*4882a593Smuzhiyun 	TP_ARGS(cma, page, count, align, gfp_mask, ts));
65*4882a593Smuzhiyun DECLARE_HOOK(android_vh_rmqueue,
66*4882a593Smuzhiyun 	TP_PROTO(struct zone *preferred_zone, struct zone *zone,
67*4882a593Smuzhiyun 		unsigned int order, gfp_t gfp_flags,
68*4882a593Smuzhiyun 		unsigned int alloc_flags, int migratetype),
69*4882a593Smuzhiyun 	TP_ARGS(preferred_zone, zone, order,
70*4882a593Smuzhiyun 		gfp_flags, alloc_flags, migratetype));
71*4882a593Smuzhiyun DECLARE_HOOK(android_vh_pagecache_get_page,
72*4882a593Smuzhiyun 	TP_PROTO(struct address_space *mapping, pgoff_t index,
73*4882a593Smuzhiyun 		int fgp_flags, gfp_t gfp_mask, struct page *page),
74*4882a593Smuzhiyun 	TP_ARGS(mapping, index, fgp_flags, gfp_mask, page));
75*4882a593Smuzhiyun DECLARE_HOOK(android_vh_filemap_fault_get_page,
76*4882a593Smuzhiyun 	TP_PROTO(struct vm_fault *vmf, struct page **page, bool *retry),
77*4882a593Smuzhiyun 	TP_ARGS(vmf, page, retry));
78*4882a593Smuzhiyun DECLARE_HOOK(android_vh_filemap_fault_cache_page,
79*4882a593Smuzhiyun 	TP_PROTO(struct vm_fault *vmf, struct page *page),
80*4882a593Smuzhiyun 	TP_ARGS(vmf, page));
81*4882a593Smuzhiyun DECLARE_HOOK(android_vh_meminfo_proc_show,
82*4882a593Smuzhiyun 	TP_PROTO(struct seq_file *m),
83*4882a593Smuzhiyun 	TP_ARGS(m));
84*4882a593Smuzhiyun DECLARE_HOOK(android_vh_exit_mm,
85*4882a593Smuzhiyun 	TP_PROTO(struct mm_struct *mm),
86*4882a593Smuzhiyun 	TP_ARGS(mm));
87*4882a593Smuzhiyun DECLARE_HOOK(android_vh_get_from_fragment_pool,
88*4882a593Smuzhiyun 	TP_PROTO(struct mm_struct *mm, struct vm_unmapped_area_info *info,
89*4882a593Smuzhiyun 		unsigned long *addr),
90*4882a593Smuzhiyun 	TP_ARGS(mm, info, addr));
91*4882a593Smuzhiyun DECLARE_HOOK(android_vh_exclude_reserved_zone,
92*4882a593Smuzhiyun 	TP_PROTO(struct mm_struct *mm, struct vm_unmapped_area_info *info),
93*4882a593Smuzhiyun 	TP_ARGS(mm, info));
94*4882a593Smuzhiyun DECLARE_HOOK(android_vh_include_reserved_zone,
95*4882a593Smuzhiyun 	TP_PROTO(struct mm_struct *mm, struct vm_unmapped_area_info *info,
96*4882a593Smuzhiyun 		unsigned long *addr),
97*4882a593Smuzhiyun 	TP_ARGS(mm, info, addr));
98*4882a593Smuzhiyun DECLARE_HOOK(android_vh_show_mem,
99*4882a593Smuzhiyun 	TP_PROTO(unsigned int filter, nodemask_t *nodemask),
100*4882a593Smuzhiyun 	TP_ARGS(filter, nodemask));
101*4882a593Smuzhiyun DECLARE_HOOK(android_vh_alloc_pages_slowpath_begin,
102*4882a593Smuzhiyun 	     TP_PROTO(gfp_t gfp_mask, unsigned int order, unsigned long *pdata),
103*4882a593Smuzhiyun 	     TP_ARGS(gfp_mask, order, pdata));
104*4882a593Smuzhiyun DECLARE_HOOK(android_vh_alloc_pages_slowpath_end,
105*4882a593Smuzhiyun 	     TP_PROTO(gfp_t gfp_mask, unsigned int order, unsigned long data),
106*4882a593Smuzhiyun 	     TP_ARGS(gfp_mask, order, data));
107*4882a593Smuzhiyun struct dirty_throttle_control;
108*4882a593Smuzhiyun DECLARE_HOOK(android_vh_mm_dirty_limits,
109*4882a593Smuzhiyun 	TP_PROTO(struct dirty_throttle_control *const gdtc, bool strictlimit,
110*4882a593Smuzhiyun 		unsigned long dirty, unsigned long bg_thresh,
111*4882a593Smuzhiyun 		unsigned long nr_reclaimable, unsigned long pages_dirtied),
112*4882a593Smuzhiyun 	TP_ARGS(gdtc, strictlimit, dirty, bg_thresh,
113*4882a593Smuzhiyun 		nr_reclaimable, pages_dirtied));
114*4882a593Smuzhiyun DECLARE_HOOK(android_vh_oom_check_panic,
115*4882a593Smuzhiyun 	TP_PROTO(struct oom_control *oc, int *ret),
116*4882a593Smuzhiyun 	TP_ARGS(oc, ret));
117*4882a593Smuzhiyun DECLARE_HOOK(android_vh_save_vmalloc_stack,
118*4882a593Smuzhiyun 	TP_PROTO(unsigned long flags, struct vm_struct *vm),
119*4882a593Smuzhiyun 	TP_ARGS(flags, vm));
120*4882a593Smuzhiyun DECLARE_HOOK(android_vh_show_stack_hash,
121*4882a593Smuzhiyun 	TP_PROTO(struct seq_file *m, struct vm_struct *v),
122*4882a593Smuzhiyun 	TP_ARGS(m, v));
123*4882a593Smuzhiyun DECLARE_HOOK(android_vh_save_track_hash,
124*4882a593Smuzhiyun 	TP_PROTO(bool alloc, unsigned long p),
125*4882a593Smuzhiyun 	TP_ARGS(alloc, p));
126*4882a593Smuzhiyun DECLARE_HOOK(android_vh_vmpressure,
127*4882a593Smuzhiyun 	TP_PROTO(struct mem_cgroup *memcg, bool *bypass),
128*4882a593Smuzhiyun 	TP_ARGS(memcg, bypass));
129*4882a593Smuzhiyun DECLARE_HOOK(android_vh_mem_cgroup_alloc,
130*4882a593Smuzhiyun 	TP_PROTO(struct mem_cgroup *memcg),
131*4882a593Smuzhiyun 	TP_ARGS(memcg));
132*4882a593Smuzhiyun DECLARE_HOOK(android_vh_mem_cgroup_free,
133*4882a593Smuzhiyun 	TP_PROTO(struct mem_cgroup *memcg),
134*4882a593Smuzhiyun 	TP_ARGS(memcg));
135*4882a593Smuzhiyun DECLARE_HOOK(android_vh_mem_cgroup_id_remove,
136*4882a593Smuzhiyun 	TP_PROTO(struct mem_cgroup *memcg),
137*4882a593Smuzhiyun 	TP_ARGS(memcg));
138*4882a593Smuzhiyun DECLARE_HOOK(android_vh_mem_cgroup_css_online,
139*4882a593Smuzhiyun 	TP_PROTO(struct cgroup_subsys_state *css, struct mem_cgroup *memcg),
140*4882a593Smuzhiyun 	TP_ARGS(css, memcg));
141*4882a593Smuzhiyun DECLARE_HOOK(android_vh_mem_cgroup_css_offline,
142*4882a593Smuzhiyun 	TP_PROTO(struct cgroup_subsys_state *css, struct mem_cgroup *memcg),
143*4882a593Smuzhiyun 	TP_ARGS(css, memcg));
144*4882a593Smuzhiyun DECLARE_HOOK(android_vh_kmalloc_slab,
145*4882a593Smuzhiyun 	TP_PROTO(unsigned int index, gfp_t flags, struct kmem_cache **s),
146*4882a593Smuzhiyun 	TP_ARGS(index, flags, s));
147*4882a593Smuzhiyun DECLARE_HOOK(android_vh_mmap_region,
148*4882a593Smuzhiyun 	TP_PROTO(struct vm_area_struct *vma, unsigned long addr),
149*4882a593Smuzhiyun 	TP_ARGS(vma, addr));
150*4882a593Smuzhiyun DECLARE_HOOK(android_vh_try_to_unmap_one,
151*4882a593Smuzhiyun 	TP_PROTO(struct vm_area_struct *vma, struct page *page, unsigned long addr, bool ret),
152*4882a593Smuzhiyun 	TP_ARGS(vma, page, addr, ret));
153*4882a593Smuzhiyun DECLARE_HOOK(android_vh_do_page_trylock,
154*4882a593Smuzhiyun 	TP_PROTO(struct page *page, struct rw_semaphore *sem,
155*4882a593Smuzhiyun 		bool *got_lock, bool *success),
156*4882a593Smuzhiyun 	TP_ARGS(page, sem, got_lock, success));
157*4882a593Smuzhiyun DECLARE_HOOK(android_vh_drain_all_pages_bypass,
158*4882a593Smuzhiyun 	TP_PROTO(gfp_t gfp_mask, unsigned int order, unsigned long alloc_flags,
159*4882a593Smuzhiyun 		int migratetype, unsigned long did_some_progress,
160*4882a593Smuzhiyun 		bool *bypass),
161*4882a593Smuzhiyun 	TP_ARGS(gfp_mask, order, alloc_flags, migratetype, did_some_progress, bypass));
162*4882a593Smuzhiyun DECLARE_HOOK(android_vh_update_page_mapcount,
163*4882a593Smuzhiyun 	TP_PROTO(struct page *page, bool inc_size, bool compound,
164*4882a593Smuzhiyun 			bool *first_mapping, bool *success),
165*4882a593Smuzhiyun 	TP_ARGS(page, inc_size, compound, first_mapping, success));
166*4882a593Smuzhiyun DECLARE_HOOK(android_vh_add_page_to_lrulist,
167*4882a593Smuzhiyun 	TP_PROTO(struct page *page, bool compound, enum lru_list lru),
168*4882a593Smuzhiyun 	TP_ARGS(page, compound, lru));
169*4882a593Smuzhiyun DECLARE_HOOK(android_vh_del_page_from_lrulist,
170*4882a593Smuzhiyun 	TP_PROTO(struct page *page, bool compound, enum lru_list lru),
171*4882a593Smuzhiyun 	TP_ARGS(page, compound, lru));
172*4882a593Smuzhiyun DECLARE_HOOK(android_vh_show_mapcount_pages,
173*4882a593Smuzhiyun 	TP_PROTO(void *unused),
174*4882a593Smuzhiyun 	TP_ARGS(unused));
175*4882a593Smuzhiyun DECLARE_HOOK(android_vh_do_traversal_lruvec,
176*4882a593Smuzhiyun 	TP_PROTO(struct lruvec *lruvec),
177*4882a593Smuzhiyun 	TP_ARGS(lruvec));
178*4882a593Smuzhiyun DECLARE_HOOK(android_vh_page_should_be_protected,
179*4882a593Smuzhiyun 	TP_PROTO(struct page *page, bool *should_protect),
180*4882a593Smuzhiyun 	TP_ARGS(page, should_protect));
181*4882a593Smuzhiyun DECLARE_HOOK(android_vh_mark_page_accessed,
182*4882a593Smuzhiyun 	TP_PROTO(struct page *page),
183*4882a593Smuzhiyun 	TP_ARGS(page));
184*4882a593Smuzhiyun DECLARE_HOOK(android_vh_cma_drain_all_pages_bypass,
185*4882a593Smuzhiyun 	TP_PROTO(unsigned int migratetype, bool *bypass),
186*4882a593Smuzhiyun 	TP_ARGS(migratetype, bypass));
187*4882a593Smuzhiyun DECLARE_HOOK(android_vh_pcplist_add_cma_pages_bypass,
188*4882a593Smuzhiyun 	TP_PROTO(int migratetype, bool *bypass),
189*4882a593Smuzhiyun 	TP_ARGS(migratetype, bypass));
190*4882a593Smuzhiyun DECLARE_HOOK(android_vh_subpage_dma_contig_alloc,
191*4882a593Smuzhiyun 	TP_PROTO(bool *allow_subpage_alloc, struct device *dev, size_t *size),
192*4882a593Smuzhiyun 	TP_ARGS(allow_subpage_alloc, dev, size));
193*4882a593Smuzhiyun DECLARE_HOOK(android_vh_ra_tuning_max_page,
194*4882a593Smuzhiyun 	TP_PROTO(struct readahead_control *ractl, unsigned long *max_page),
195*4882a593Smuzhiyun 	TP_ARGS(ractl, max_page));
196*4882a593Smuzhiyun DECLARE_RESTRICTED_HOOK(android_rvh_handle_pte_fault_end,
197*4882a593Smuzhiyun 	TP_PROTO(struct vm_fault *vmf, unsigned long highest_memmap_pfn),
198*4882a593Smuzhiyun 	TP_ARGS(vmf, highest_memmap_pfn), 1);
199*4882a593Smuzhiyun DECLARE_HOOK(android_vh_handle_pte_fault_end,
200*4882a593Smuzhiyun 	TP_PROTO(struct vm_fault *vmf, unsigned long highest_memmap_pfn),
201*4882a593Smuzhiyun 	TP_ARGS(vmf, highest_memmap_pfn));
202*4882a593Smuzhiyun DECLARE_HOOK(android_vh_cow_user_page,
203*4882a593Smuzhiyun 	TP_PROTO(struct vm_fault *vmf, struct page *page),
204*4882a593Smuzhiyun 	TP_ARGS(vmf, page));
205*4882a593Smuzhiyun DECLARE_HOOK(android_vh_swapin_add_anon_rmap,
206*4882a593Smuzhiyun 	TP_PROTO(struct vm_fault *vmf, struct page *page),
207*4882a593Smuzhiyun 	TP_ARGS(vmf, page));
208*4882a593Smuzhiyun DECLARE_HOOK(android_vh_waiting_for_page_migration,
209*4882a593Smuzhiyun 	TP_PROTO(struct page *page),
210*4882a593Smuzhiyun 	TP_ARGS(page));
211*4882a593Smuzhiyun DECLARE_HOOK(android_vh_migrate_page_states,
212*4882a593Smuzhiyun 	TP_PROTO(struct page *page, struct page *newpage),
213*4882a593Smuzhiyun 	TP_ARGS(page, newpage));
214*4882a593Smuzhiyun DECLARE_HOOK(android_vh_page_referenced_one_end,
215*4882a593Smuzhiyun 	TP_PROTO(struct vm_area_struct *vma, struct page *page, int referenced),
216*4882a593Smuzhiyun 	TP_ARGS(vma, page, referenced));
217*4882a593Smuzhiyun DECLARE_HOOK(android_vh_count_pswpin,
218*4882a593Smuzhiyun 	TP_PROTO(struct swap_info_struct *sis),
219*4882a593Smuzhiyun 	TP_ARGS(sis));
220*4882a593Smuzhiyun DECLARE_HOOK(android_vh_count_pswpout,
221*4882a593Smuzhiyun 	TP_PROTO(struct swap_info_struct *sis),
222*4882a593Smuzhiyun 	TP_ARGS(sis));
223*4882a593Smuzhiyun DECLARE_HOOK(android_vh_count_swpout_vm_event,
224*4882a593Smuzhiyun 	TP_PROTO(struct swap_info_struct *sis, struct page *page, bool *skip),
225*4882a593Smuzhiyun 	TP_ARGS(sis, page, skip));
226*4882a593Smuzhiyun DECLARE_HOOK(android_vh_swap_slot_cache_active,
227*4882a593Smuzhiyun 	TP_PROTO(bool swap_slot_cache_active),
228*4882a593Smuzhiyun 	TP_ARGS(swap_slot_cache_active));
229*4882a593Smuzhiyun DECLARE_RESTRICTED_HOOK(android_rvh_drain_slots_cache_cpu,
230*4882a593Smuzhiyun 	TP_PROTO(struct swap_slots_cache *cache, unsigned int type,
231*4882a593Smuzhiyun 		bool free_slots, bool *skip),
232*4882a593Smuzhiyun 	TP_ARGS(cache, type, free_slots, skip), 1);
233*4882a593Smuzhiyun DECLARE_HOOK(android_vh_drain_slots_cache_cpu,
234*4882a593Smuzhiyun 	TP_PROTO(struct swap_slots_cache *cache, unsigned int type,
235*4882a593Smuzhiyun 		bool free_slots, bool *skip),
236*4882a593Smuzhiyun 	TP_ARGS(cache, type, free_slots, skip));
237*4882a593Smuzhiyun DECLARE_RESTRICTED_HOOK(android_rvh_alloc_swap_slot_cache,
238*4882a593Smuzhiyun 	TP_PROTO(struct swap_slots_cache *cache, int *ret, bool *skip),
239*4882a593Smuzhiyun 	TP_ARGS(cache, ret, skip), 1);
240*4882a593Smuzhiyun DECLARE_HOOK(android_vh_alloc_swap_slot_cache,
241*4882a593Smuzhiyun 	TP_PROTO(struct swap_slots_cache *cache, int *ret, bool *skip),
242*4882a593Smuzhiyun 	TP_ARGS(cache, ret, skip));
243*4882a593Smuzhiyun DECLARE_RESTRICTED_HOOK(android_rvh_free_swap_slot,
244*4882a593Smuzhiyun 	TP_PROTO(swp_entry_t entry, struct swap_slots_cache *cache, bool *skip),
245*4882a593Smuzhiyun 	TP_ARGS(entry, cache, skip), 1);
246*4882a593Smuzhiyun DECLARE_HOOK(android_vh_free_swap_slot,
247*4882a593Smuzhiyun 	TP_PROTO(swp_entry_t entry, struct swap_slots_cache *cache, bool *skip),
248*4882a593Smuzhiyun 	TP_ARGS(entry, cache, skip));
249*4882a593Smuzhiyun DECLARE_RESTRICTED_HOOK(android_rvh_get_swap_page,
250*4882a593Smuzhiyun 	TP_PROTO(struct page *page, swp_entry_t *entry,
251*4882a593Smuzhiyun 		struct swap_slots_cache *cache, bool *found),
252*4882a593Smuzhiyun 	TP_ARGS(page, entry, cache, found), 1);
253*4882a593Smuzhiyun DECLARE_HOOK(android_vh_get_swap_page,
254*4882a593Smuzhiyun 	TP_PROTO(struct page *page, swp_entry_t *entry,
255*4882a593Smuzhiyun 		struct swap_slots_cache *cache, bool *found),
256*4882a593Smuzhiyun 	TP_ARGS(page, entry, cache, found));
257*4882a593Smuzhiyun DECLARE_HOOK(android_vh_madvise_cold_or_pageout,
258*4882a593Smuzhiyun 	TP_PROTO(struct vm_area_struct *vma, bool *allow_shared),
259*4882a593Smuzhiyun 	TP_ARGS(vma, allow_shared));
260*4882a593Smuzhiyun DECLARE_HOOK(android_vh_page_isolated_for_reclaim,
261*4882a593Smuzhiyun 	TP_PROTO(struct mm_struct *mm, struct page *page),
262*4882a593Smuzhiyun 	TP_ARGS(mm, page));
263*4882a593Smuzhiyun DECLARE_HOOK(android_vh_account_swap_pages,
264*4882a593Smuzhiyun 	TP_PROTO(struct swap_info_struct *si, bool *skip),
265*4882a593Smuzhiyun 	TP_ARGS(si, skip));
266*4882a593Smuzhiyun DECLARE_HOOK(android_vh_unuse_swap_page,
267*4882a593Smuzhiyun 	TP_PROTO(struct swap_info_struct *si, struct page *page),
268*4882a593Smuzhiyun 	TP_ARGS(si, page));
269*4882a593Smuzhiyun DECLARE_HOOK(android_vh_init_swap_info_struct,
270*4882a593Smuzhiyun 	TP_PROTO(struct swap_info_struct *p, struct plist_head *swap_avail_heads),
271*4882a593Smuzhiyun 	TP_ARGS(p, swap_avail_heads));
272*4882a593Smuzhiyun DECLARE_HOOK(android_vh_si_swapinfo,
273*4882a593Smuzhiyun 	TP_PROTO(struct swap_info_struct *si, bool *skip),
274*4882a593Smuzhiyun 	TP_ARGS(si, skip));
275*4882a593Smuzhiyun DECLARE_RESTRICTED_HOOK(android_rvh_alloc_si,
276*4882a593Smuzhiyun 	TP_PROTO(struct swap_info_struct **p, bool *skip),
277*4882a593Smuzhiyun 	TP_ARGS(p, skip), 1);
278*4882a593Smuzhiyun DECLARE_HOOK(android_vh_alloc_si,
279*4882a593Smuzhiyun 	TP_PROTO(struct swap_info_struct **p, bool *skip),
280*4882a593Smuzhiyun 	TP_ARGS(p, skip));
281*4882a593Smuzhiyun DECLARE_HOOK(android_vh_free_pages,
282*4882a593Smuzhiyun 	TP_PROTO(struct page *page, unsigned int order),
283*4882a593Smuzhiyun 	TP_ARGS(page, order));
284*4882a593Smuzhiyun DECLARE_HOOK(android_vh_set_shmem_page_flag,
285*4882a593Smuzhiyun 	TP_PROTO(struct page *page),
286*4882a593Smuzhiyun 	TP_ARGS(page));
287*4882a593Smuzhiyun DECLARE_HOOK(android_vh_remove_vmalloc_stack,
288*4882a593Smuzhiyun 	TP_PROTO(struct vm_struct *vm),
289*4882a593Smuzhiyun 	TP_ARGS(vm));
290*4882a593Smuzhiyun DECLARE_HOOK(android_vh_alloc_pages_reclaim_bypass,
291*4882a593Smuzhiyun 	TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags,
292*4882a593Smuzhiyun 	int migratetype, struct page **page),
293*4882a593Smuzhiyun 	TP_ARGS(gfp_mask, order, alloc_flags, migratetype, page));
294*4882a593Smuzhiyun DECLARE_HOOK(android_vh_alloc_pages_failure_bypass,
295*4882a593Smuzhiyun 	TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags,
296*4882a593Smuzhiyun 	int migratetype, struct page **page),
297*4882a593Smuzhiyun 	TP_ARGS(gfp_mask, order, alloc_flags, migratetype, page));
298*4882a593Smuzhiyun DECLARE_HOOK(android_vh_test_clear_look_around_ref,
299*4882a593Smuzhiyun 	TP_PROTO(struct page *page),
300*4882a593Smuzhiyun 	TP_ARGS(page));
301*4882a593Smuzhiyun DECLARE_HOOK(android_vh_look_around_migrate_page,
302*4882a593Smuzhiyun 	TP_PROTO(struct page *old_page, struct page *new_page),
303*4882a593Smuzhiyun 	TP_ARGS(old_page, new_page));
304*4882a593Smuzhiyun DECLARE_HOOK(android_vh_look_around,
305*4882a593Smuzhiyun 	TP_PROTO(struct page_vma_mapped_walk *pvmw, struct page *page,
306*4882a593Smuzhiyun 		struct vm_area_struct *vma, int *referenced),
307*4882a593Smuzhiyun 	TP_ARGS(pvmw, page, vma, referenced));
308*4882a593Smuzhiyun /* macro versions of hooks are no longer required */
309*4882a593Smuzhiyun 
310*4882a593Smuzhiyun #endif /* _TRACE_HOOK_MM_H */
311*4882a593Smuzhiyun 
312*4882a593Smuzhiyun /* This part must be outside protection */
313*4882a593Smuzhiyun #include <trace/define_trace.h>
314*4882a593Smuzhiyun 
315*4882a593Smuzhiyun #endif /* PROTECT_TRACE_INCLUDE_PATH */
316