@@ -1164,7 +1148,6 @@ static int migrate_folio_unmap(new_folio_t get_new_folio,
        int rc = -EAGAIN;
        int old_page_state = 0;
        struct anon_vma *anon_vma = NULL;
-       bool is_lru = data_race(!__folio_test_movable(src));
        bool locked = false;
        bool dst_locked = false;
@@ -1265,7 +1248,7 @@ static int migrate_folio_unmap(new_folio_t get_new_folio,
                goto out;
        dst_locked = true;
- if (unlikely(!is_lru)) {
+       if (unlikely(page_has_movable_ops(&dst->page))) {

While doing more testing, I found a weird bug where we end up having balloon pages isolated forever, and never putback/migrated. So neither the balloon can deflate them nor the migration migrate them.

This line here must be

if (unlikely(page_has_movable_ops(&src->page))) {

But I am not sure yet if that's the issue I am chasing :)

--
Cheers,

David / dhildenb


Reply via email to