.. | .. |
---|
1128 | 1128 | LIST_HEAD(free_pages); |
---|
1129 | 1129 | unsigned int nr_reclaimed = 0; |
---|
1130 | 1130 | unsigned int pgactivate = 0; |
---|
| 1131 | + bool page_trylock_result; |
---|
1131 | 1132 | |
---|
1132 | 1133 | memset(stat, 0, sizeof(*stat)); |
---|
1133 | 1134 | cond_resched(); |
---|
.. | .. |
---|
1527 | 1528 | count_memcg_page_event(page, PGACTIVATE); |
---|
1528 | 1529 | } |
---|
1529 | 1530 | 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); |
---|
1530 | 1543 | unlock_page(page); |
---|
1531 | 1544 | keep: |
---|
1532 | 1545 | list_add(&page->lru, &ret_pages); |
---|