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:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user