On Tue, Mar 07, 2023 at 04:36:51PM -0800, James Houghton wrote: > > > if (likely(!compound)) { > > > + if (unlikely(folio_test_hugetlb(folio))) > > > + VM_BUG_ON_PAGE(HPageVmemmapOptimized(&folio->page), > > > + page); How about moving folio_test_hugetlb() into the BUG_ON()? VM_BUG_ON_PAGE(folio_test_hugetlb(folio) && HPageVmemmapOptimized(&folio->page), page); Note that BUG_ON() already contains an "unlikely". > > > first = atomic_inc_and_test(&page->_mapcount); > > > nr = first; > > > if (first && folio_test_large(folio)) { > > > nr = atomic_inc_return_relaxed(mapped); > > > nr = (nr < COMPOUND_MAPPED); > > > } > > > - } else if (folio_test_pmd_mappable(folio)) { > > > - /* That test is redundant: it's for safety or to optimize out */ > > > > I 'think' removing this check is OK. It would seem that the caller > > knows if the folio is mappable. If we want a similar test, we might be > > able to use something like: > > > > arch_hugetlb_valid_size(folio_size(folio)) > > > > Ack. I think leaving the check(s) removed is fine. Would it still be good to keep that as another BUG_ON()? -- Peter Xu