On Tue, Sep 08, 2020 at 08:48:21AM +0000, yaoaili [么爱利] wrote: > Does the if (PageCompound(p) && compound_head(p) != orig_head) check cover the case you mentioned? This check covers when the page p is included into the compound page with *different* size from thp (for example, included into slab pages or hugepages in other size). If p was originally in a 2MB thp before split and then is now included in another 2MB thp after the page lock, compound_head(p) is equal to orig_head, so it passes over this check. Thanks, Naoya Horiguchi