hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/mm/vmscan.c
....@@ -1128,6 +1128,7 @@
11281128 LIST_HEAD(free_pages);
11291129 unsigned int nr_reclaimed = 0;
11301130 unsigned int pgactivate = 0;
1131
+ bool page_trylock_result;
11311132
11321133 memset(stat, 0, sizeof(*stat));
11331134 cond_resched();
....@@ -1527,6 +1528,18 @@
15271528 count_memcg_page_event(page, PGACTIVATE);
15281529 }
15291530 keep_locked:
1531
+ /*
1532
+ * The page with trylock-bit will be added ret_pages and
1533
+ * handled in trace_android_vh_handle_failed_page_trylock.
1534
+ * In the progress[unlock_page, handled], the page carried
1535
+ * with trylock-bit will cause some error-issues in other
1536
+ * scene, so clear trylock-bit here.
1537
+ * trace_android_vh_page_trylock_get_result will clear
1538
+ * trylock-bit and return if page tyrlock failed in
1539
+ * reclaim-process. Here we just want to clear trylock-bit
1540
+ * so that ignore page_trylock_result.
1541
+ */
1542
+ trace_android_vh_page_trylock_get_result(page, &page_trylock_result);
15301543 unlock_page(page);
15311544 keep:
15321545 list_add(&page->lru, &ret_pages);