lkml.org 
[lkml]   [2022]   [Sep]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 08/16] mm/page_alloc: add missing is_migrate_isolate() check in set_page_guard()
From
On 09.09.22 11:24, Miaohe Lin wrote:
> In MIGRATE_ISOLATE case, zone freepage state shouldn't be modified as
> caller will take care of it. Add missing is_migrate_isolate() here to
> avoid possible unbalanced freepage state.
>
> Signed-off-by: Miaohe Lin <linmiaohe@huawei.com>
> ---
> mm/page_alloc.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index a35ef385d906..94baf33da865 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -873,7 +873,8 @@ static inline bool set_page_guard(struct zone *zone, struct page *page,
> INIT_LIST_HEAD(&page->buddy_list);
> set_page_private(page, order);
> /* Guard pages are not available for any usage */
> - __mod_zone_freepage_state(zone, -(1 << order), migratetype);
> + if (!is_migrate_isolate(migratetype))
> + __mod_zone_freepage_state(zone, -(1 << order), migratetype);
>
> return true;
> }

Do we have a fixes: tag for this one?

Can it even happen that the pageblock is isolated when we end up in this
function? IIUC, we'd have an allocation in an isolated pageblock, which
would be wrong already?

--
Thanks,

David / dhildenb

\
 
 \ /
  Last update: 2022-09-09 13:31    [W:1.152 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site