From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8D515C433F5 for ; Wed, 30 Mar 2022 00:14:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1BAC38D0002; Tue, 29 Mar 2022 20:14:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 169918D0001; Tue, 29 Mar 2022 20:14:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 00AA18D0002; Tue, 29 Mar 2022 20:14:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.25]) by kanga.kvack.org (Postfix) with ESMTP id E8E048D0001 for ; Tue, 29 Mar 2022 20:14:30 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B45D320532 for ; Wed, 30 Mar 2022 00:14:30 +0000 (UTC) X-FDA: 79299131100.04.E270559 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by imf25.hostedemail.com (Postfix) with ESMTP id 3AF97A0006 for ; Wed, 30 Mar 2022 00:14:30 +0000 (UTC) Received: by mail-ed1-f41.google.com with SMTP id h4so14749722edr.3 for ; Tue, 29 Mar 2022 17:14:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:reply-to:references:mime-version :content-disposition:in-reply-to:user-agent; bh=6BYILNTIPfnQ80tiRFzGN+1Svgk8JVvXymct2OKtnuQ=; b=UCDZcK2fFmQwYa7X6zFZApqicwxlkir//PRkL9ogxK42ls2ScTKTrLGQrT0Bm11kXr EAStHTYWOEPXBIxErv6aSydMHy/iIXxnvgSh2Knrync2dq8cwxIH2TNfPiFwEhF+65NB fg00t2THz619b2X/8q1EbsExjQdDEBVsn0LtPJ8TDOFL+2P+6MpekFE6gomkXF8Tf6vu DdBnzkZojCOJAPEx1k2YvrV1AfevfG+oIz9Yw/jZCumaBms7hOU6UGlGHh7D0WC+t0Rn f/Qit8I0PKz59uWJUHmbsLSZptuKEutMp8DOxXzaBjpSewjXZPf92VLVT9czDq/2HTNc TfnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:reply-to :references:mime-version:content-disposition:in-reply-to:user-agent; bh=6BYILNTIPfnQ80tiRFzGN+1Svgk8JVvXymct2OKtnuQ=; b=BRZK4BxYmZ4QxWZWFnXuYinGd0V5rFQLon83sUfUuGP7yDUNjwUd5Q2Wh2DmzGSBCV XF+6idBTOihDLVIfyLuzuKz+AyQTPQEPi28lLMe4K86WbTbmqyLf3XHzwECxqW3dtmpd X7q1mr5v6GWh/3yg8fD1rT1cgA+5TNSIfs8aZT/PGXl6pJIiJwGjFjmdWWiH9AUoUvD8 plx9cb3Kkwmuvjra3dWkbiqmFSGSIC+6kNnTxo0sCMDl+KnDpgecTjkSvd6QNv/IM1IS 0UJFXwoBfqiEyNN75hRIz+Y56Kajr/dcKmb78+WC4Wgt0MlpSvx5hcmZxOIVknDzVrmM mT4w== X-Gm-Message-State: AOAM532UkOfCOfASPDYbX+nbUQ7XyYo0X3PbVG88BtJZwv+ELc18Wzxs idzhsnL6vfV/pkSq/yK6q+8= X-Google-Smtp-Source: ABdhPJz9aCt/A4bBe49Yt5ddgqIB3dQ7BNE5/ZWLj5COT1cMKcvdtK91xxYUDqpfaZdAFyVaCr4ZiQ== X-Received: by 2002:a05:6402:40cb:b0:419:42de:65b6 with SMTP id z11-20020a05640240cb00b0041942de65b6mr7845399edb.66.1648599268830; Tue, 29 Mar 2022 17:14:28 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id z13-20020a17090674cd00b006df78d85eabsm7663465ejl.111.2022.03.29.17.14.28 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 29 Mar 2022 17:14:28 -0700 (PDT) Date: Wed, 30 Mar 2022 00:14:27 +0000 From: Wei Yang To: "Huang, Ying" Cc: Wei Yang , akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, mgorman@techsingularity.net Subject: Re: [PATCH 2/2] mm/vmscan: make sure wakeup_kswapd with managed zone Message-ID: <20220330001427.a745zl3qej2fajmf@master> Reply-To: Wei Yang References: <20220327024101.10378-1-richard.weiyang@gmail.com> <20220327024101.10378-2-richard.weiyang@gmail.com> <8735j2opd9.fsf@yhuang6-desk2.ccr.corp.intel.com> <20220329004146.2xdswvrm2qu7f47x@master> <875ynxh9lg.fsf@yhuang6-desk2.ccr.corp.intel.com> <20220329015230.hneciyfxoxtvfytl@master> <871qylfr8f.fsf@yhuang6-desk2.ccr.corp.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <871qylfr8f.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: NeoMutt/20170113 (1.7.2) X-Stat-Signature: 9pbk7o5fbyy76w9wzgzquojowdwaeae4 Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=UCDZcK2f; spf=pass (imf25.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.41 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 3AF97A0006 X-HE-Tag: 1648599270-28207 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Mar 29, 2022 at 10:05:20AM +0800, Huang, Ying wrote: >Wei Yang writes: > >> On Tue, Mar 29, 2022 at 08:43:23AM +0800, Huang, Ying wrote: >> [...] >>>>>> --- a/mm/migrate.c >>>>>> +++ b/mm/migrate.c >>>>>> @@ -2046,7 +2046,7 @@ static int numamigrate_isolate_page(pg_data_t *pgdat, struct page *page) >>>>>> if (!(sysctl_numa_balancing_mode & NUMA_BALANCING_MEMORY_TIERING)) >>>>>> return 0; >>>>>> for (z = pgdat->nr_zones - 1; z >= 0; z--) { >>>>>> - if (populated_zone(pgdat->node_zones + z)) >>>>>> + if (managed_zone(pgdat->node_zones + z)) >>>>> >>>>>This looks good to me! Thanks! It seems that we can replace >>>>>populated_zone() in migrate_balanced_pgdat() too. Right? >>>>> >>>> >>>> Yes, you are right. I didn't spot this. >>>> >>>> While this patch comes from the clue of wakeup_kswapd(), I am not sure it is >>>> nice to put it in this patch together. >>>> >>>> Which way you prefer to include this: merge the change into this one, or a >>>> separate one? >>> >>>Either is OK for me. >>> >> >> After reading the code, I am willing to do a little simplification. Does this >> look good to you? >> >> From 85c8a5cd708ada3e9f5b0409413407b7be1bc446 Mon Sep 17 00:00:00 2001 >> From: Wei Yang >> Date: Tue, 29 Mar 2022 09:24:36 +0800 >> Subject: [PATCH] mm/migrate.c: return valid zone for wakeup_kswapd from >> migrate_balanced_pgdat() >> >> To wakeup kswapd, we need to iterate pgdat->node_zones and get the >> proper zone. While this work has already been done in >> migrate_balanced_pgdat(). >> >> Let's return the valid zone directly instead of do the iteration again. >> >> Signed-off-by: Wei Yang >> --- >> mm/migrate.c | 21 ++++++++------------- >> 1 file changed, 8 insertions(+), 13 deletions(-) >> >> diff --git a/mm/migrate.c b/mm/migrate.c >> index 5adc55b5347c..b086bd781956 100644 >> --- a/mm/migrate.c >> +++ b/mm/migrate.c >> @@ -1973,7 +1973,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages, >> * Returns true if this is a safe migration target node for misplaced NUMA >> * pages. Currently it only checks the watermarks which is crude. >> */ >> -static bool migrate_balanced_pgdat(struct pglist_data *pgdat, >> +static struct zone *migrate_balanced_pgdat(struct pglist_data *pgdat, >> unsigned long nr_migrate_pages) >> { >> int z; >> @@ -1985,14 +1985,13 @@ static bool migrate_balanced_pgdat(struct pglist_data *pgdat, >> continue; >> >> /* Avoid waking kswapd by allocating pages_to_migrate pages. */ >> - if (!zone_watermark_ok(zone, 0, >> + if (zone_watermark_ok(zone, 0, >> high_wmark_pages(zone) + >> nr_migrate_pages, >> ZONE_MOVABLE, 0)) >> - continue; >> - return true; >> + return zone; >> } >> - return false; >> + return NULL; >> } >> >> static struct page *alloc_misplaced_dst_page(struct page *page, >> @@ -2032,6 +2031,7 @@ static int numamigrate_isolate_page(pg_data_t *pgdat, struct page *page) >> int page_lru; >> int nr_pages = thp_nr_pages(page); >> int order = compound_order(page); >> + struct zone *zone; >> >> VM_BUG_ON_PAGE(order && !PageTransHuge(page), page); >> >> @@ -2040,16 +2040,11 @@ static int numamigrate_isolate_page(pg_data_t *pgdat, struct page *page) >> return 0; >> >> /* Avoid migrating to a node that is nearly full */ >> - if (!migrate_balanced_pgdat(pgdat, nr_pages)) { >> - int z; >> - >> + if ((zone = migrate_balanced_pgdat(pgdat, nr_pages))) { > >I think that this reverses the original semantics. Originally, we give >up and wake up kswapd if there's no enough free pages on the target >node. But now, you give up and wake up if there's enough free pages. > You are right, I misunderstand it. Sorry -- Wei Yang Help you, Help me