On Tue, Dec 27, 2022 at 12:02:52PM -0500, James Houghton wrote: > On Thu, Dec 22, 2022 at 9:30 AM Peter Xu <peterx@xxxxxxxxxx> wrote: > > > > On Wed, Dec 21, 2022 at 08:24:45PM -0500, James Houghton wrote: > > > Not sure what the best name for this flag is either. MADV_ENABLE_HGM > > > sounds ok. MADV_HUGETLB_HGM or MADV_HUGETLB_SMALL_PAGES could work > > > too. No need to figure it out now. > > > > One more option to consider is MADV_SPLIT (hopefully to be more generic). > > > > We already decided to reuse thp MADV_COLLAPSE, we can also introduce > > MADV_SPLIT and leave thp for later if it can be anything helpful (I > > remember we used to discuss this for thp split). > > > > For hugetlb one SPLIT should enable hgm advise bit on the vma forever. > > MADV_SPLIT sounds okay to me -- we'll see how it turns out when I send > v1. However, there's an interesting API question regarding what > address userfaultfd provides. We previously required > UFFD_FEATURE_EXACT_ADDRESS when you specified > UFFD_FEATURE_MINOR_HUGETLBFS_HGM so that there was no ambiguity. Now, > we can do: > > 1. When MADV_SPLIT is given, userfaultfd will now round addresses to > PAGE_SIZE instead of huge_page_size(hstate), and > UFFD_FEATURE_EXACT_ADDRESS is not needed. > 2. Don't change anything. A user must know to provide > UFFD_FEATURE_EXACT_ADDRESS to get the real address, otherwise they get > an (unusable) hugepage-aligned address. > > I think #1 sounds fine; let me know if you disagree. Sounds good to me, thanks! -- Peter Xu