diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 9a8d317b83f2..05bdf75a8710 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -176,6 +176,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_kvmalloc_node_use_vmalloc); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_should_alloc_pages_retry); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_unreserve_highatomic_bypass); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_rmqueue_bulk_bypass); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ra_tuning_max_page); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_insert); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_delete); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_selinux_avc_node_replace); diff --git a/include/trace/hooks/mm.h b/include/trace/hooks/mm.h index 8af085c167d5..7e2d7769cfc7 100644 --- a/include/trace/hooks/mm.h +++ b/include/trace/hooks/mm.h @@ -141,6 +141,9 @@ DECLARE_HOOK(android_vh_rmqueue_bulk_bypass, TP_PROTO(unsigned int order, struct per_cpu_pages *pcp, int migratetype, struct list_head *list), TP_ARGS(order, pcp, migratetype, list)); +DECLARE_HOOK(android_vh_ra_tuning_max_page, + TP_PROTO(struct readahead_control *ractl, unsigned long *max_page), + TP_ARGS(ractl, max_page)); struct mem_cgroup; DECLARE_HOOK(android_vh_mem_cgroup_alloc, TP_PROTO(struct mem_cgroup *memcg), diff --git a/mm/readahead.c b/mm/readahead.c index 844e8134ba96..a8620cac2d83 100644 --- a/mm/readahead.c +++ b/mm/readahead.c @@ -591,6 +591,8 @@ static void ondemand_readahead(struct readahead_control *ractl, if (req_size > max_pages && bdi->io_pages > max_pages) max_pages = min(req_size, bdi->io_pages); + trace_android_vh_ra_tuning_max_page(ractl, &max_pages); + /* * start of file */