Message ID | 20230825135918.4164671-11-willy@infradead.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Rearrange batched folio freeing | expand |
On 25/08/2023 14:59, Matthew Wilcox (Oracle) wrote: > Hugetlb folios still get special treatment, but normal large folios > can now be freed by free_unref_folios(). This should have a reasonable > performance impact, TBD. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Ryan Roberts <ryan.roberts@arm.com> > --- > mm/swap.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/mm/swap.c b/mm/swap.c > index 21c2df0f7928..8bd15402cd8f 100644 > --- a/mm/swap.c > +++ b/mm/swap.c > @@ -1000,12 +1000,13 @@ void folios_put(struct folio_batch *folios) > if (!folio_put_testzero(folio)) > continue; > > - if (folio_test_large(folio)) { > + /* hugetlb has its own memcg */ > + if (folio_test_hugetlb(folio)) { Ahh I see, you special case hugetlb here. You can disregard my comment about hugetlb in the previous patch. > if (lruvec) { > unlock_page_lruvec_irqrestore(lruvec, flags); > lruvec = NULL; > } > - __folio_put_large(folio); > + free_huge_folio(folio); > continue; > } >
On Thu, Aug 31, 2023 at 04:28:06PM +0100, Ryan Roberts wrote: > Ahh I see, you special case hugetlb here. You can disregard my comment about > hugetlb in the previous patch. Doh ;-)
diff --git a/mm/swap.c b/mm/swap.c index 21c2df0f7928..8bd15402cd8f 100644 --- a/mm/swap.c +++ b/mm/swap.c @@ -1000,12 +1000,13 @@ void folios_put(struct folio_batch *folios) if (!folio_put_testzero(folio)) continue; - if (folio_test_large(folio)) { + /* hugetlb has its own memcg */ + if (folio_test_hugetlb(folio)) { if (lruvec) { unlock_page_lruvec_irqrestore(lruvec, flags); lruvec = NULL; } - __folio_put_large(folio); + free_huge_folio(folio); continue; }
Hugetlb folios still get special treatment, but normal large folios can now be freed by free_unref_folios(). This should have a reasonable performance impact, TBD. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- mm/swap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)