On Wed, Jan 24, 2024 at 07:20:53AM +0000, Haiqiang Gong (龚海强) wrote:
quoted
I don't understand. You say that the memory isn't movable, but then you
say that it's migrated in. So it was movable, but it's no longer
movable after being moved once?
Sorry for not expressing clearly
When doing memory migration, the kernel will determine whether the current
page can be moved based on the refcount and mapcount of the current page.
This memory can be moved during kernel compaction. At this time, refcount
is less than or equal to mapcount.
After this memory is kcompacted and placed in the cma buffer, under
certain special conditions, the refcount may be greater than the mapcount
(ex:the current page is being used by fs), and then migrate will fail.
But that's always true. Any page that is currently in use might have
its refcount temporarily incremented. There's nothing special about
pages that belong to a file. You've basically just prevented all
filesystem memory from being migrated to the CMA area, and that's wrong.
What's special about this page? Or were you just unlucky?
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel