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>
(cherry picked from commit d6889cf8f3a7dc0821aa8a272e7549fd2bee9e67)
This commit is contained in:
Jaewon Kim
2023-05-25 11:53:41 +09:00
committed by Todd Kjos
parent 0457ed368f
commit 4e4cbc1f28
4 changed files with 19 additions and 0 deletions
+3
View File
@@ -101,6 +101,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_ufs_fill_prdt);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_prepare_command);
EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_update_sysfs);
+2
View File
@@ -18,6 +18,7 @@
#include <linux/cma.h>
#endif
#include <linux/zswap.h>
#include <trace/hooks/mm.h>
#include <asm/page.h>
#include "internal.h"
@@ -47,6 +48,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;
+9
View File
@@ -81,6 +81,15 @@ DECLARE_HOOK(android_vh_process_madvise_begin,
DECLARE_HOOK(android_vh_process_madvise_iter,
TP_PROTO(struct task_struct *task, int behavior, ssize_t *ret),
TP_ARGS(task, behavior, ret));
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_HOOK(android_vh_test_clear_look_around_ref,
TP_PROTO(struct page *page),
TP_ARGS(page));
+5
View File
@@ -15,6 +15,9 @@
#include <linux/swap.h>
#include <linux/vmstat.h>
#undef CREATE_TRACE_POINTS
#include <trace/hooks/mm.h>
#include "internal.h"
#include "swap.h"
@@ -65,6 +68,7 @@ long si_mem_available(void)
global_node_page_state(NR_KERNEL_MISC_RECLAIMABLE);
reclaimable -= min(reclaimable / 2, wmark_low);
available += reclaimable;
trace_android_vh_si_mem_available_adjust(&available);
if (available < 0)
available = 0;
@@ -81,6 +85,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);