Hi all, While working on a second round of patches to introduce memory hotplug / hot remove to arm64 (original attempt at [1]), and trying to rebase them on 4.14, I stumbled in some problematic behaviour during page migration when offlining for hot remove, whereas target pages for migration where found in a bad state.
I believe that this behaviour may be originating from commit 8135d8926c08 ("mm: memory_hotplug: memory hotremove supports thp migration") and it is triggered when migrating pages for builds that have no ARCH_ENABLE_THP_MIGRATION but have thp support on (arm64, in my case). Specifically, my understanding is that prep_transhuge_page should not be called in linux/migrate.h:new_page_nodemask if !thp_migration_supported because, in that case, new_page would not be a thp. A tiny patch follows, showing what I mean. Please, let me know if my understanding is bogus. Best regards, Andrea [1] https://lkml.org/lkml/2017/4/11/536 Andrea Reale (1): mm/migrate: do not call prep_transhuge_page if !thp_migration_supported include/linux/migrate.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.7.4