On 2022/6/23 15:24, Muchun Song wrote: > On Thu, Jun 23, 2022 at 01:06:25AM +0800, Miaohe Lin wrote: >> The current comment is confusing because if global or memcg deferred list >> in the second tail page is occupied by compound_head, why we still use >> page[2].deferred_list here? I think it wants to say that Global or memcg >> deferred list in the first tail page is occupied by compound_mapcount and >> compound_pincount so we use the second tail page's deferred_list instead. >> >> Signed-off-by: Miaohe Lin <linmiaohe@xxxxxxxxxx> >> --- >> include/linux/huge_mm.h | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h >> index 12b297f9951d..2e8062b3417a 100644 >> --- a/include/linux/huge_mm.h >> +++ b/include/linux/huge_mm.h >> @@ -294,8 +294,8 @@ static inline bool thp_migration_supported(void) >> static inline struct list_head *page_deferred_list(struct page *page) >> { >> /* >> - * Global or memcg deferred list in the second tail pages is >> - * occupied by compound_head. >> + * Global or memcg deferred list in the first tail page is >> + * occupied by compound_mapcount and compound_pincount. >> */ > > The structure of "struct page" seems to have told us the information that > we resue the 2nd tail page to be used as deferred_list. I am not sure the Yes, it does. > value of those comments. Maybe better to remove them? IMHO above comment tries to tell us why deferred list in the second tail page is used instead of first tail page. But it should be fine to remove the above comments as they don't seem to provide much info (thought I'm not really sure). Thanks. > > Thanks. > >> return &page[2].deferred_list; >> } >> -- >> 2.23.0 >> >> > . >