@@ -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