On 11/24/21 02:30, Baolin Wang wrote: > > > On 2021/11/24 2:46, Mike Kravetz wrote: >> On 11/7/21 01:57, Baolin Wang wrote: >>> @@ -1511,18 +1517,20 @@ int migrate_pages(struct list_head *from, new_page_t get_new_page, >>> case -ENOSYS: >>> /* THP migration is unsupported */ >>> if (is_thp) { >>> - if (!try_split_thp(page, &page2, from)) { >>> + nr_thp_failed++; >>> + if (!try_split_thp(page, &page2, &thp_split_pages)) { >> >> Does thp_split_pages need to be initialized before this call? > > The declaration "LIST_HEAD(thp_split_pages);" already did list initialization, right? Correct. My bad! I keep forgetting, #define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(name) -- Mike Kravetz