Renaming direct reclaim monitoring to memevent monitoring am: f9dfb20456 am: f806a7d6a4

Original change: https://android-review.googlesource.com/c/platform/system/memory/lmkd/+/3022599

Change-Id: I57f8129e563cc601970d75512bd6dbb82401dc74
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Carlos Galo 2024-04-03 19:02:58 +00:00 committed by Automerger Merge Worker
commit 270c38ddf7
1 changed files with 11 additions and 10 deletions

View File

@ -290,7 +290,7 @@ static struct event_handler_info vmpressure_hinfo[VMPRESS_LEVEL_COUNT];
/*
* 1 ctrl listen socket, 3 ctrl data socket, 3 memory pressure levels,
* 1 lmk events + 1 fd to wait for process death + 1 fd to receive kill failure notifications
* + 1 fd to receive direct reclaim state change notifications
* + 1 fd to receive memevent_listener notifications
*/
#define MAX_EPOLL_EVENTS (1 + MAX_DATA_CONN + VMPRESS_LEVEL_COUNT + 1 + 1 + 1 + 1)
static int epollfd;
@ -570,7 +570,7 @@ static long page_k; /* page size in kB */
static bool update_props();
static bool init_monitors();
static void destroy_monitors();
static bool init_direct_reclaim_monitoring();
static bool init_memevent_listener_monitoring();
static int clamp(int low, int high, int value) {
return std::max(std::min(value, high), low);
@ -1590,7 +1590,7 @@ static void ctrl_command_handler(int dsock_idx) {
* Initialize the memevent listener after boot is completed to prevent
* waiting, during boot-up, for BPF programs to be loaded.
*/
if (init_direct_reclaim_monitoring()) {
if (init_memevent_listener_monitoring()) {
ALOGI("Using memevents for direct reclaim detection");
} else {
ALOGI("Using vmstats for direct reclaim detection");
@ -3296,7 +3296,7 @@ static MemcgVersion memcg_version() {
return version;
}
static void direct_reclaim_state_change(int data __unused, uint32_t events __unused,
static void memevent_listener_notification(int data __unused, uint32_t events __unused,
struct polling_params* poll_params __unused) {
struct timespec curr_tm;
std::vector<mem_event_t> mem_events;
@ -3304,14 +3304,14 @@ static void direct_reclaim_state_change(int data __unused, uint32_t events __unu
if (clock_gettime(CLOCK_MONOTONIC_COARSE, &curr_tm) != 0) {
direct_reclaim_start_tm.tv_sec = 0;
direct_reclaim_start_tm.tv_nsec = 0;
ALOGE("Failed to get current time for direct reclaim state change.");
ALOGE("Failed to get current time for memevent listener notification.");
return;
}
if (!memevent_listener->getMemEvents(mem_events)) {
direct_reclaim_start_tm.tv_sec = 0;
direct_reclaim_start_tm.tv_nsec = 0;
ALOGE("Failed fetching direct reclaim events.");
ALOGE("Failed fetching memory listener events.");
return;
}
@ -3330,8 +3330,9 @@ static void direct_reclaim_state_change(int data __unused, uint32_t events __unu
}
}
static bool init_direct_reclaim_monitoring() {
static struct event_handler_info direct_reclaim_poll_hinfo = {0, direct_reclaim_state_change};
static bool init_memevent_listener_monitoring() {
static struct event_handler_info direct_reclaim_poll_hinfo = {0,
memevent_listener_notification};
if (memevent_listener) return true;
@ -3364,7 +3365,7 @@ static bool init_direct_reclaim_monitoring() {
epev.events = EPOLLIN;
epev.data.ptr = (void*)&direct_reclaim_poll_hinfo;
if (epoll_ctl(epollfd, EPOLL_CTL_ADD, memevent_listener_fd, &epev) < 0) {
ALOGE("Failed registering direct reclaim fd: %d; errno=%d", memevent_listener_fd, errno);
ALOGE("Failed registering memevent_listener fd: %d; errno=%d", memevent_listener_fd, errno);
memevent_listener.reset();
return false;
}