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:
commit
f806a7d6a4
19
lmkd.cpp
19
lmkd.cpp
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue