lkml.org 
[lkml]   [2022]   [May]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 4/6] mm/page_alloc: Remove unnecessary page == NULL check in rmqueue
    From
    On 5/12/22 10:50, Mel Gorman wrote:
    > The VM_BUG_ON check for a valid page can be avoided with a simple
    > change in the flow. The ZONE_BOOSTED_WATERMARK is unlikely in general
    > and even more unlikely if the page allocation failed so mark the
    > branch unlikely.

    Hm, so that makes a DEBUG_VM config avoid the check. On the other hand,
    it puts it on the path returning from rmqueue_pcplist() for all configs,
    and that should be the fast path. So unless things further change in the
    following patches, it doesn't seem that useful?

    > Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
    > Tested-by: Minchan Kim <minchan@kernel.org>
    > Acked-by: Minchan Kim <minchan@kernel.org>
    > ---
    > mm/page_alloc.c | 9 +++++----
    > 1 file changed, 5 insertions(+), 4 deletions(-)
    >
    > diff --git a/mm/page_alloc.c b/mm/page_alloc.c
    > index 1c4c54503a5d..b543333dce8f 100644
    > --- a/mm/page_alloc.c
    > +++ b/mm/page_alloc.c
    > @@ -3765,17 +3765,18 @@ struct page *rmqueue(struct zone *preferred_zone,
    >
    > page = rmqueue_buddy(preferred_zone, zone, order, alloc_flags,
    > migratetype);
    > - if (unlikely(!page))
    > - return NULL;
    >
    > out:
    > /* Separate test+clear to avoid unnecessary atomics */
    > - if (test_bit(ZONE_BOOSTED_WATERMARK, &zone->flags)) {
    > + if (unlikely(test_bit(ZONE_BOOSTED_WATERMARK, &zone->flags))) {
    > clear_bit(ZONE_BOOSTED_WATERMARK, &zone->flags);
    > wakeup_kswapd(zone, 0, 0, zone_idx(zone));
    > }
    >
    > - VM_BUG_ON_PAGE(page && bad_range(zone, page), page);
    > + if (unlikely(!page))
    > + return NULL;
    > +
    > + VM_BUG_ON_PAGE(bad_range(zone, page), page);
    > return page;
    > }
    >

    \
     
     \ /
      Last update: 2022-05-19 12:57    [W:4.114 / U:0.264 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site