References: https://bugs.freedesktop.org/show_bug.cgi?id=104009 Suggest-Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Suggest-Cc: Vlastimil Babka <vbabka@xxxxxxx> Suggest-Cc: Jerome Marchand <jmarchan@xxxxxxxxxx> Suggest-Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Suggest-Cc: Hugh Dickins <hughd@xxxxxxxxxx> Suggest-Cc: Dave Hansen <dave.hansen@xxxxxxxxx> Suggest-Cc: Mel Gorman <mgorman@xxxxxxx> Suggest-Cc: Rik van Riel <riel@xxxxxxxxxx> Suggest-Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Suggest-Cc: Michal Hocko <mhocko@xxxxxxx> Suggest-Cc: Christoph Lameter <cl@xxxxxxxxx> Suggest-Cc: David Rientjes <rientjes@xxxxxxxxxx> Suggest-Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/huge_memory.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 2f2f5e774902..e555a90ad079 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2791,10 +2791,13 @@ static unsigned long deferred_split_scan(struct shrinker *shrink, list_for_each_safe(pos, next, &list) { page = list_entry((void *)pos, struct page, mapping); - lock_page(page); + if (!trylock_page(page)) + continue; + /* split_huge_page() removes page from list on success */ if (!split_huge_page(page)) split++; + unlock_page(page); put_page(page); } -- 2.15.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx