lmkd: avoid division by zero because of file_base_lru am: c3108416e7 am: b1294d486f

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

Change-Id: Ic74cc56e98ff9851cd30dfaa9906781b69834aae
This commit is contained in:
Martin Liu 2020-09-03 16:51:58 +00:00 committed by Automerger Merge Worker
commit d2d14448f3
1 changed files with 3 additions and 2 deletions

View File

@ -2422,7 +2422,8 @@ static void mp_event_psi(int data, uint32_t events, struct polling_params *poll_
if (since_thrashing_reset_ms > THRASHING_RESET_INTERVAL_MS) {
long windows_passed;
/* Calculate prev_thrash_growth if we crossed THRASHING_RESET_INTERVAL_MS */
prev_thrash_growth = (vs.field.workingset_refault - init_ws_refault) * 100 / base_file_lru;
prev_thrash_growth = (vs.field.workingset_refault - init_ws_refault) * 100
/ (base_file_lru + 1);
windows_passed = (since_thrashing_reset_ms / THRASHING_RESET_INTERVAL_MS);
/*
* Decay prev_thrashing unless over-the-limit thrashing was registered in the window we
@ -2440,7 +2441,7 @@ static void mp_event_psi(int data, uint32_t events, struct polling_params *poll_
thrashing_limit = thrashing_limit_pct;
} else {
/* Calculate what % of the file-backed pagecache refaulted so far */
thrashing = (vs.field.workingset_refault - init_ws_refault) * 100 / base_file_lru;
thrashing = (vs.field.workingset_refault - init_ws_refault) * 100 / (base_file_lru + 1);
}
/* Add previous cycle's decayed thrashing amount */
thrashing += prev_thrash_growth;