On 09/07/23 14:55, Muchun Song wrote: > > > On 2023/9/6 05:44, Mike Kravetz wrote: > > From: Joao Martins <joao.m.martins@xxxxxxxxxx> > > > > Now that a list of pages is deduplicated at once, the TLB > > flush can be batched for all vmemmap pages that got remapped. > > > > Add a flags field and pass whether it's a bulk allocation or > > just a single page to decide to remap. > > > > The TLB flush is global as we don't have guarantees from caller > > that the set of folios is contiguous, or to add complexity in > > composing a list of kVAs to flush. > > > > Modified by Mike Kravetz to perform TLB flush on single folio if an > > error is encountered. > > > > Signed-off-by: Joao Martins <joao.m.martins@xxxxxxxxxx> > > Signed-off-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx> > > --- > > mm/hugetlb_vmemmap.c | 38 ++++++++++++++++++++++++++++++-------- > > 1 file changed, 30 insertions(+), 8 deletions(-) > > > > diff --git a/mm/hugetlb_vmemmap.c b/mm/hugetlb_vmemmap.c > > @@ -638,7 +658,7 @@ void hugetlb_vmemmap_optimize(const struct hstate *h, struct page *head) > > { > > LIST_HEAD(vmemmap_pages); > > - __hugetlb_vmemmap_optimize(h, head, &vmemmap_pages); > > + __hugetlb_vmemmap_optimize(h, head, &vmemmap_pages, 0UL); > > UL suffix could be dropped. Right? Yes, it can be dropped. > > > free_vmemmap_page_list(&vmemmap_pages); > > } -- Mike Kravetz