* keystone/mirror-android13-5.15-2023-01: (95 commits) ANDROID: GKI: update xiaomi symbol list ANDROID: loop: Add vendor hook to update cmd ANDROID: GKI: Update abi_gki_aarch64_qcom ANDROID: direct_io: Add a vendor hook to update OEM-specific field of struct bio ANDROID: GKI: update xiaomi symbol list ANDROID: GKI: Update abi_gki_aarch64_qcom symbols. ANDROID: GKI: Update abi_gki_aarch64_qcom ANDROID: uid_sys_stats: defer process_notifier work if uid_lock is contended FROMGIT: bpf: btf: limit logging of ignored BTF mismatches UPSTREAM: skbuff: Account for tail adjustment during pull operations ANDROID: Update the ABI symbol list and xml ANDROID: mm: Export find_vm_area ANDROID: GKI: update xiaomi symbol list ANDROID: vendor_hooks:vendor hook for control memory dirty rate FROMGIT: mm/cma.c: delete kmemleak objects when freeing CMA areas to buddy at boot BACKPORT: FROMGIT: mm/cma.c: make kmemleak aware of all CMA regions UPSTREAM: mm: kmemleak: alloc gray object for reserved region with direct map UPSTREAM: usb: dwc3: gadget: Don't delay End Transfer on delayed_status UPSTREAM: usb: dwc3: gadget: Do not clear ep delayed stop flag during ep disable UPSTREAM: usb: dwc3: gadget: Skip waiting for CMDACT cleared during endxfer ... Change-Id: I06fdfe157835609df1a7f8a6d8bf8b82a6e774d4
172 lines
6.1 KiB
C
172 lines
6.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifdef PROTECT_TRACE_INCLUDE_PATH
|
|
#undef PROTECT_TRACE_INCLUDE_PATH
|
|
|
|
#include <trace/hooks/save_incpath.h>
|
|
#include <trace/hooks/mm.h>
|
|
#include <trace/hooks/restore_incpath.h>
|
|
|
|
#else /* PROTECT_TRACE_INCLUDE_PATH */
|
|
|
|
#undef TRACE_SYSTEM
|
|
#define TRACE_SYSTEM mm
|
|
|
|
#define TRACE_INCLUDE_PATH trace/hooks
|
|
|
|
#if !defined(_TRACE_HOOK_MM_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
#define _TRACE_HOOK_MM_H
|
|
|
|
#include <trace/hooks/vendor_hooks.h>
|
|
#include <linux/rwsem.h>
|
|
|
|
#ifdef __GENKSYMS__
|
|
#include <linux/types.h>
|
|
#include <linux/mm.h>
|
|
#include <linux/oom.h>
|
|
#include <linux/rwsem.h>
|
|
#include <../mm/slab.h>
|
|
#endif
|
|
|
|
struct oom_control;
|
|
struct slabinfo;
|
|
struct track;
|
|
struct address_space;
|
|
|
|
DECLARE_RESTRICTED_HOOK(android_rvh_set_skip_swapcache_flags,
|
|
TP_PROTO(gfp_t *flags),
|
|
TP_ARGS(flags), 1);
|
|
DECLARE_RESTRICTED_HOOK(android_rvh_set_gfp_zone_flags,
|
|
TP_PROTO(gfp_t *flags),
|
|
TP_ARGS(flags), 1);
|
|
DECLARE_RESTRICTED_HOOK(android_rvh_update_readahead_gfp_mask,
|
|
TP_PROTO(struct address_space *mapping, gfp_t *flags),
|
|
TP_ARGS(mapping, flags), 2);
|
|
DECLARE_RESTRICTED_HOOK(android_rvh_set_readahead_gfp_mask,
|
|
TP_PROTO(gfp_t *flags),
|
|
TP_ARGS(flags), 1);
|
|
DECLARE_RESTRICTED_HOOK(android_rvh_rmqueue_bulk,
|
|
TP_PROTO(void *unused),
|
|
TP_ARGS(unused), 1);
|
|
DECLARE_HOOK(android_vh_meminfo_proc_show,
|
|
TP_PROTO(struct seq_file *m),
|
|
TP_ARGS(m));
|
|
DECLARE_HOOK(android_vh_exit_mm,
|
|
TP_PROTO(struct mm_struct *mm),
|
|
TP_ARGS(mm));
|
|
DECLARE_HOOK(android_vh_show_mem,
|
|
TP_PROTO(unsigned int filter, nodemask_t *nodemask),
|
|
TP_ARGS(filter, nodemask));
|
|
DECLARE_HOOK(android_vh_alloc_pages_slowpath,
|
|
TP_PROTO(gfp_t gfp_mask, unsigned int order, unsigned long delta),
|
|
TP_ARGS(gfp_mask, order, delta));
|
|
DECLARE_HOOK(android_vh_print_slabinfo_header,
|
|
TP_PROTO(struct seq_file *m),
|
|
TP_ARGS(m));
|
|
DECLARE_HOOK(android_vh_cache_show,
|
|
TP_PROTO(struct seq_file *m, struct slabinfo *sinfo, struct kmem_cache *s),
|
|
TP_ARGS(m, sinfo, s));
|
|
DECLARE_HOOK(android_vh_oom_check_panic,
|
|
TP_PROTO(struct oom_control *oc, int *ret),
|
|
TP_ARGS(oc, ret));
|
|
DECLARE_HOOK(android_vh_drain_all_pages_bypass,
|
|
TP_PROTO(gfp_t gfp_mask, unsigned int order, unsigned long alloc_flags,
|
|
int migratetype, unsigned long did_some_progress,
|
|
bool *bypass),
|
|
TP_ARGS(gfp_mask, order, alloc_flags, migratetype, did_some_progress, bypass));
|
|
DECLARE_HOOK(android_vh_cma_drain_all_pages_bypass,
|
|
TP_PROTO(unsigned int migratetype, bool *bypass),
|
|
TP_ARGS(migratetype, bypass));
|
|
DECLARE_HOOK(android_vh_pcplist_add_cma_pages_bypass,
|
|
TP_PROTO(int migratetype, bool *bypass),
|
|
TP_ARGS(migratetype, bypass));
|
|
DECLARE_HOOK(android_vh_mmap_region,
|
|
TP_PROTO(struct vm_area_struct *vma, unsigned long addr),
|
|
TP_ARGS(vma, addr));
|
|
DECLARE_HOOK(android_vh_try_to_unmap_one,
|
|
TP_PROTO(struct vm_area_struct *vma, struct page *page, unsigned long addr, bool ret),
|
|
TP_ARGS(vma, page, addr, ret));
|
|
DECLARE_HOOK(android_vh_cma_alloc_retry,
|
|
TP_PROTO(char *name, int *retry),
|
|
TP_ARGS(name, retry));
|
|
struct mem_cgroup;
|
|
DECLARE_HOOK(android_vh_mem_cgroup_alloc,
|
|
TP_PROTO(struct mem_cgroup *memcg),
|
|
TP_ARGS(memcg));
|
|
DECLARE_HOOK(android_vh_mem_cgroup_free,
|
|
TP_PROTO(struct mem_cgroup *memcg),
|
|
TP_ARGS(memcg));
|
|
DECLARE_HOOK(android_vh_mem_cgroup_id_remove,
|
|
TP_PROTO(struct mem_cgroup *memcg),
|
|
TP_ARGS(memcg));
|
|
struct cgroup_subsys_state;
|
|
DECLARE_HOOK(android_vh_mem_cgroup_css_online,
|
|
TP_PROTO(struct cgroup_subsys_state *css, struct mem_cgroup *memcg),
|
|
TP_ARGS(css, memcg));
|
|
DECLARE_HOOK(android_vh_mem_cgroup_css_offline,
|
|
TP_PROTO(struct cgroup_subsys_state *css, struct mem_cgroup *memcg),
|
|
TP_ARGS(css, memcg));
|
|
DECLARE_HOOK(android_vh_vmpressure,
|
|
TP_PROTO(struct mem_cgroup *memcg, bool *bypass),
|
|
TP_ARGS(memcg, bypass));
|
|
DECLARE_HOOK(android_vh_do_page_trylock,
|
|
TP_PROTO(struct page *page, struct rw_semaphore *sem,
|
|
bool *got_lock, bool *success),
|
|
TP_ARGS(page, sem, got_lock, success));
|
|
DECLARE_HOOK(android_vh_update_page_mapcount,
|
|
TP_PROTO(struct page *page, bool inc_size, bool compound,
|
|
bool *first_mapping, bool *success),
|
|
TP_ARGS(page, inc_size, compound, first_mapping, success));
|
|
DECLARE_HOOK(android_vh_add_page_to_lrulist,
|
|
TP_PROTO(struct page *page, bool compound, enum lru_list lru),
|
|
TP_ARGS(page, compound, lru));
|
|
DECLARE_HOOK(android_vh_del_page_from_lrulist,
|
|
TP_PROTO(struct page *page, bool compound, enum lru_list lru),
|
|
TP_ARGS(page, compound, lru));
|
|
DECLARE_HOOK(android_vh_show_mapcount_pages,
|
|
TP_PROTO(void *unused),
|
|
TP_ARGS(unused));
|
|
DECLARE_HOOK(android_vh_do_traversal_lruvec,
|
|
TP_PROTO(struct lruvec *lruvec),
|
|
TP_ARGS(lruvec));
|
|
DECLARE_HOOK(android_vh_page_should_be_protected,
|
|
TP_PROTO(struct page *page, bool *should_protect),
|
|
TP_ARGS(page, should_protect));
|
|
DECLARE_HOOK(android_vh_mark_page_accessed,
|
|
TP_PROTO(struct page *page),
|
|
TP_ARGS(page));
|
|
DECLARE_HOOK(android_vh_page_cache_forced_ra,
|
|
TP_PROTO(struct readahead_control *ractl, unsigned long req_count, bool *do_forced_ra),
|
|
TP_ARGS(ractl, req_count, do_forced_ra));
|
|
DECLARE_HOOK(android_vh_alloc_pages_reclaim_bypass,
|
|
TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags,
|
|
int migratetype, struct page **page),
|
|
TP_ARGS(gfp_mask, order, alloc_flags, migratetype, page));
|
|
DECLARE_HOOK(android_vh_alloc_pages_failure_bypass,
|
|
TP_PROTO(gfp_t gfp_mask, int order, int alloc_flags,
|
|
int migratetype, struct page **page),
|
|
TP_ARGS(gfp_mask, order, alloc_flags, migratetype, page));
|
|
DECLARE_HOOK(android_vh_save_track_hash,
|
|
TP_PROTO(bool alloc, struct track *p),
|
|
TP_ARGS(alloc, p));
|
|
DECLARE_HOOK(android_vh_rmqueue,
|
|
TP_PROTO(struct zone *preferred_zone, struct zone *zone,
|
|
unsigned int order, gfp_t gfp_flags,
|
|
unsigned int alloc_flags, int migratetype),
|
|
TP_ARGS(preferred_zone, zone, order,
|
|
gfp_flags, alloc_flags, migratetype));
|
|
DECLARE_HOOK(android_vh_kmalloc_slab,
|
|
TP_PROTO(unsigned int index, gfp_t flags, struct kmem_cache **s),
|
|
TP_ARGS(index, flags, s));
|
|
DECLARE_HOOK(android_vh_madvise_cold_or_pageout,
|
|
TP_PROTO(struct vm_area_struct *vma, bool *allow_shared),
|
|
TP_ARGS(vma, allow_shared));
|
|
DECLARE_RESTRICTED_HOOK(android_rvh_ctl_dirty_rate,
|
|
TP_PROTO(void *unused),
|
|
TP_ARGS(unused), 1);
|
|
#endif /* _TRACE_HOOK_MM_H */
|
|
|
|
/* This part must be outside protection */
|
|
#include <trace/define_trace.h>
|
|
|
|
#endif /* PROTECT_TRACE_INCLUDE_PATH */
|