ANDROID: vendor_hooks: add hooks for extra memory

Add vendor hooks for extra memory. If there is extra memory, this can
be accounted like other memory stats. One of the usecases could be
cleancache. If some of ram memory is used for cleancache, its free,
cache, and total size could be added through these vendor hooks.

Bug: 283896254

Change-Id: Iad7330310528581f09842f45860f05dc84823f41
Signed-off-by: Jaewon Kim <jaewon31.kim@samsung.com>
This commit is contained in:
Jaewon Kim 2023-05-25 11:53:41 +09:00 committed by Suren Baghdasaryan
parent c3ee18fefa
commit a390414140
4 changed files with 16 additions and 0 deletions

View file

@ -118,6 +118,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_irqs_disable);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_irqs_enable);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_attach);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_online);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_meminfo_cache_adjust);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_si_mem_available_adjust);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_si_meminfo_adjust);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_oops_enter);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_oops_exit);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ftrace_size_check);

View file

@ -16,6 +16,7 @@
#ifdef CONFIG_CMA
#include <linux/cma.h>
#endif
#include <trace/hooks/mm.h>
#include <asm/page.h>
#include "internal.h"
#include <trace/hooks/mm.h>
@ -46,6 +47,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
cached = global_node_page_state(NR_FILE_PAGES) -
total_swapcache_pages() - i.bufferram;
trace_android_vh_meminfo_cache_adjust(&cached);
if (cached < 0)
cached = 0;

View file

@ -89,6 +89,15 @@ DECLARE_HOOK(android_vh_show_smap,
TP_PROTO(struct seq_file *m, unsigned long writeback,
unsigned long same, unsigned long huge),
TP_ARGS(m, writeback, same, huge));
DECLARE_HOOK(android_vh_meminfo_cache_adjust,
TP_PROTO(unsigned long *cached),
TP_ARGS(cached));
DECLARE_HOOK(android_vh_si_mem_available_adjust,
TP_PROTO(unsigned long *available),
TP_ARGS(available));
DECLARE_HOOK(android_vh_si_meminfo_adjust,
TP_PROTO(unsigned long *totalram, unsigned long *freeram),
TP_ARGS(totalram, freeram));
DECLARE_RESTRICTED_HOOK(android_rvh_ctl_dirty_rate,
TP_PROTO(void *unused),

View file

@ -6065,6 +6065,7 @@ long si_mem_available(void)
reclaimable = global_node_page_state_pages(NR_SLAB_RECLAIMABLE_B) +
global_node_page_state(NR_KERNEL_MISC_RECLAIMABLE);
available += reclaimable - min(reclaimable / 2, wmark_low);
trace_android_vh_si_mem_available_adjust(&available);
if (available < 0)
available = 0;
@ -6081,6 +6082,7 @@ void si_meminfo(struct sysinfo *val)
val->totalhigh = totalhigh_pages();
val->freehigh = nr_free_highpages();
val->mem_unit = PAGE_SIZE;
trace_android_vh_si_meminfo_adjust(&val->totalram, &val->freeram);
}
EXPORT_SYMBOL(si_meminfo);