Renaming direct reclaim monitoring to memevent monitoring am: f9dfb20456

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

Change-Id: I77d2a7370cf0cf2d48ad6544cfb6ca3b8da332f9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Carlos Galo 2024-04-03 18:45:11 +00:00 committed by Automerger Merge Worker
commit f806a7d6a4
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 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 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) #define MAX_EPOLL_EVENTS (1 + MAX_DATA_CONN + VMPRESS_LEVEL_COUNT + 1 + 1 + 1 + 1)
static int epollfd; static int epollfd;
@ -570,7 +570,7 @@ static long page_k; /* page size in kB */
static bool update_props(); static bool update_props();
static bool init_monitors(); static bool init_monitors();
static void destroy_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) { static int clamp(int low, int high, int value) {
return std::max(std::min(value, high), low); 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 * Initialize the memevent listener after boot is completed to prevent
* waiting, during boot-up, for BPF programs to be loaded. * 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"); ALOGI("Using memevents for direct reclaim detection");
} else { } else {
ALOGI("Using vmstats for direct reclaim detection"); ALOGI("Using vmstats for direct reclaim detection");
@ -3296,7 +3296,7 @@ static MemcgVersion memcg_version() {
return 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 polling_params* poll_params __unused) {
struct timespec curr_tm; struct timespec curr_tm;
std::vector<mem_event_t> mem_events; 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) { if (clock_gettime(CLOCK_MONOTONIC_COARSE, &curr_tm) != 0) {
direct_reclaim_start_tm.tv_sec = 0; direct_reclaim_start_tm.tv_sec = 0;
direct_reclaim_start_tm.tv_nsec = 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; return;
} }
if (!memevent_listener->getMemEvents(mem_events)) { if (!memevent_listener->getMemEvents(mem_events)) {
direct_reclaim_start_tm.tv_sec = 0; direct_reclaim_start_tm.tv_sec = 0;
direct_reclaim_start_tm.tv_nsec = 0; direct_reclaim_start_tm.tv_nsec = 0;
ALOGE("Failed fetching direct reclaim events."); ALOGE("Failed fetching memory listener events.");
return; 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 bool init_memevent_listener_monitoring() {
static struct event_handler_info direct_reclaim_poll_hinfo = {0, direct_reclaim_state_change}; static struct event_handler_info direct_reclaim_poll_hinfo = {0,
memevent_listener_notification};
if (memevent_listener) return true; if (memevent_listener) return true;
@ -3364,7 +3365,7 @@ static bool init_direct_reclaim_monitoring() {
epev.events = EPOLLIN; epev.events = EPOLLIN;
epev.data.ptr = (void*)&direct_reclaim_poll_hinfo; epev.data.ptr = (void*)&direct_reclaim_poll_hinfo;
if (epoll_ctl(epollfd, EPOLL_CTL_ADD, memevent_listener_fd, &epev) < 0) { 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(); memevent_listener.reset();
return false; return false;
} }