ANDROID: vendor hook to control bh_lru and lru_cache_disable

Add vendor hook for bh_lru and lru_cache_disable

Bug: 238728493
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: I81bfad317cf6e8633186ebb3238644306d7a102d
Signed-off-by: Richard Chang <richardycc@google.com>
(cherry picked from commit 74e2ea264cd1895c493b9008b62bfea98dacf3f6)
This commit is contained in:
Minchan Kim
2022-10-20 16:03:35 -07:00
committed by Richard Chang
parent 243f54dd3a
commit ba005d6032
5 changed files with 43 additions and 2 deletions

View File

@@ -51,6 +51,8 @@
#include "internal.h"
#include <trace/hooks/buffer.h>
static int fsync_buffers_list(spinlock_t *lock, struct list_head *list);
static int submit_bh_wbc(int op, int op_flags, struct buffer_head *bh,
enum rw_hint hint, struct writeback_control *wbc);
@@ -1233,6 +1235,7 @@ static void bh_lru_install(struct buffer_head *bh)
struct buffer_head *evictee = bh;
struct bh_lru *b;
int i;
bool skip = false;
check_irqs_on();
bh_lru_lock();
@@ -1248,6 +1251,12 @@ static void bh_lru_install(struct buffer_head *bh)
return;
}
trace_android_vh_bh_lru_install(bh->b_page, &skip);
if (skip) {
bh_lru_unlock();
return;
}
b = this_cpu_ptr(&bh_lrus);
for (i = 0; i < BH_LRU_SIZE; i++) {
swap(evictee, b->bhs[i]);