Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f8857cc2 authored by Colin Cross's avatar Colin Cross
Browse files

lmkd: kill a process if zoneinfo can't be read

Opening /proc/zoneinfo may return -ENOMEM under memory pressure,
assume something needs to be killed if that happens.

Bug: 16236289
Change-Id: I25aab09f4c3f2b9e176eaaeca94fd6bd790dad4e
parent 16b0946d
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -660,8 +660,10 @@ static void mp_event(uint32_t events __unused) {
    if (time(NULL) - kill_lasttime < KILL_TIMEOUT)
    if (time(NULL) - kill_lasttime < KILL_TIMEOUT)
        return;
        return;


    if (zoneinfo_parse(&mi) < 0)
    while (zoneinfo_parse(&mi) < 0) {
        return;
        // Failed to read /proc/zoneinfo, assume ENOMEM and kill something
        find_and_kill_process(0, 0, true);
    }


    other_free = mi.nr_free_pages - mi.totalreserve_pages;
    other_free = mi.nr_free_pages - mi.totalreserve_pages;
    other_file = mi.nr_file_pages - mi.nr_shmem;
    other_file = mi.nr_file_pages - mi.nr_shmem;