Message ID | 20241206095951.98007-3-david@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/page_alloc: rework conditional splitting >= pageblock_order pages when freeing | expand |
On 6 Dec 2024, at 4:59, David Hildenbrand wrote: > Let's fixup the comment, documenting how free_one_page_maybe_split() > comes into play. > > Signed-off-by: David Hildenbrand <david@redhat.com> > --- > mm/page_isolation.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/mm/page_isolation.c b/mm/page_isolation.c > index c608e9d728655..63fddf283e681 100644 > --- a/mm/page_isolation.c > +++ b/mm/page_isolation.c > @@ -298,11 +298,10 @@ __first_valid_page(unsigned long pfn, unsigned long nr_pages) > * pagelbocks. > * [ MAX_PAGE_ORDER ] > * [ pageblock0 | pageblock1 ] > - * When either pageblock is isolated, if it is a free page, the page is not > - * split into separate migratetype lists, which is supposed to; if it is an > - * in-use page and freed later, __free_one_page() does not split the free page > - * either. The function handles this by splitting the free page or migrating > - * the in-use page then splitting the free page. > + * When either pageblock is isolated, if it is an in-use page and freed later, > + * __free_one_page_maybe_split() will split the free page if required. If the > + * page is already free, this function handles this by splitting the free page > + * through move_freepages_block_isolate()->__free_one_page_maybe_split(). > */ > static int isolate_single_pageblock(unsigned long boundary_pfn, int flags, > bool isolate_before, bool skip_isolation, int migratetype) LGTM. Reviewed-by: Zi Yan <ziy@nvidia.com> Best Regards, Yan, Zi
On 12/6/24 10:59, David Hildenbrand wrote: > Let's fixup the comment, documenting how free_one_page_maybe_split() > comes into play. > > Signed-off-by: David Hildenbrand <david@redhat.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> > --- > mm/page_isolation.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/mm/page_isolation.c b/mm/page_isolation.c > index c608e9d728655..63fddf283e681 100644 > --- a/mm/page_isolation.c > +++ b/mm/page_isolation.c > @@ -298,11 +298,10 @@ __first_valid_page(unsigned long pfn, unsigned long nr_pages) > * pagelbocks. > * [ MAX_PAGE_ORDER ] > * [ pageblock0 | pageblock1 ] > - * When either pageblock is isolated, if it is a free page, the page is not > - * split into separate migratetype lists, which is supposed to; if it is an > - * in-use page and freed later, __free_one_page() does not split the free page > - * either. The function handles this by splitting the free page or migrating > - * the in-use page then splitting the free page. > + * When either pageblock is isolated, if it is an in-use page and freed later, > + * __free_one_page_maybe_split() will split the free page if required. If the > + * page is already free, this function handles this by splitting the free page > + * through move_freepages_block_isolate()->__free_one_page_maybe_split(). > */ > static int isolate_single_pageblock(unsigned long boundary_pfn, int flags, > bool isolate_before, bool skip_isolation, int migratetype)
diff --git a/mm/page_isolation.c b/mm/page_isolation.c index c608e9d728655..63fddf283e681 100644 --- a/mm/page_isolation.c +++ b/mm/page_isolation.c @@ -298,11 +298,10 @@ __first_valid_page(unsigned long pfn, unsigned long nr_pages) * pagelbocks. * [ MAX_PAGE_ORDER ] * [ pageblock0 | pageblock1 ] - * When either pageblock is isolated, if it is a free page, the page is not - * split into separate migratetype lists, which is supposed to; if it is an - * in-use page and freed later, __free_one_page() does not split the free page - * either. The function handles this by splitting the free page or migrating - * the in-use page then splitting the free page. + * When either pageblock is isolated, if it is an in-use page and freed later, + * __free_one_page_maybe_split() will split the free page if required. If the + * page is already free, this function handles this by splitting the free page + * through move_freepages_block_isolate()->__free_one_page_maybe_split(). */ static int isolate_single_pageblock(unsigned long boundary_pfn, int flags, bool isolate_before, bool skip_isolation, int migratetype)
Let's fixup the comment, documenting how free_one_page_maybe_split() comes into play. Signed-off-by: David Hildenbrand <david@redhat.com> --- mm/page_isolation.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-)