From patchwork Thu Oct 19 10:43:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qi Zheng X-Patchwork-Id: 13428635 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 09D59CDB465 for ; Thu, 19 Oct 2023 10:45:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 97D038D019C; Thu, 19 Oct 2023 06:45:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 92EE88D0199; Thu, 19 Oct 2023 06:45:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 81C2A8D019C; Thu, 19 Oct 2023 06:45:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 7065F8D0199 for ; Thu, 19 Oct 2023 06:45:00 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 3E8148124C for ; Thu, 19 Oct 2023 10:45:00 +0000 (UTC) X-FDA: 81361878360.26.BF9326B Received: from mail-oi1-f177.google.com (mail-oi1-f177.google.com [209.85.167.177]) by imf16.hostedemail.com (Postfix) with ESMTP id 6C5A7180010 for ; Thu, 19 Oct 2023 10:44:58 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=KSjWSEo5; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf16.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.167.177 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1697712298; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=nmm0RwYxrj0JXQDj8pQ3b9oBOktC5ndB3VrLZPSOC60=; b=qwCVxrLlYh9dA86zxC4BNxX8Lz829J8gVfB79rTf5wft6JW5DYhMURWZxrbLpejZNNvtzk KXb+5LqVh9BdFNNM3xODPR5ta8Jbl8SPA244DvE79bzMVaNAjyrQQG5L7RqUe1kjWwV7oN GG6vw7Hzsr/lf29K//lvfhpkQx+QO0w= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=KSjWSEo5; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf16.hostedemail.com: domain of zhengqi.arch@bytedance.com designates 209.85.167.177 as permitted sender) smtp.mailfrom=zhengqi.arch@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1697712298; a=rsa-sha256; cv=none; b=SI8Pe/J8V4xfXVVpGC9bPaqLJd9XzM1Pr+49EVgGncQfG3gK2ojH45SLv0nk6DO8lF+MHF hZvtWCWVPoDLd5nJYwfk1vq4gIiOTzRd91s+SGZwUTR1WNDzGhdZvYs6dvOFEOeA/PqVLb dDYepT+e8c8Dh3GMsKIaXXuk3+JtDfY= Received: by mail-oi1-f177.google.com with SMTP id 5614622812f47-3ae450158ffso611003b6e.0 for ; Thu, 19 Oct 2023 03:44:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1697712297; x=1698317097; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nmm0RwYxrj0JXQDj8pQ3b9oBOktC5ndB3VrLZPSOC60=; b=KSjWSEo5Rg1mQyrYl2AC1yblzbwuk3tHj4v4jrzUc+v4/jjfqQpKXr8UkFLnjn0ESg Rwy8TeYOHztPbQnKBnDSN4jysmqWACsaghZAjSw4DnVKxZnzTPX+So8jGcBZEM7+r0MT sTd5mX+3OolZ39NFNL9DywD8YoMqvTmDBDfqYxE8lue6jRPJv4zKI2yDWNQpKWYDzm6q b87jcp4AUS1DsOkuFhLPLGoS53KBqip+cp1txE1ZsG+9YeOt1zLptkCjvjiwrRX4VLxH NUp7vdGMiRlGLaegLbkOO7pcyOQw0i4MiWP53ElcL+Vg2/1qov/SblKZDx+Cg855123B w8Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697712297; x=1698317097; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nmm0RwYxrj0JXQDj8pQ3b9oBOktC5ndB3VrLZPSOC60=; b=YV2hs9FgKEHt5C7OpXGJx3L85jh6Fv51Jpgru8xSKC5HF22nKQ8SePuhmiQ3mnlPM3 iVIMEj1cX42rYd9aaPXGd9l3W7up5mzPaTYS2ZDGrJVJCa2PpIsazFeM+hEKW8s/UMga YRbfmd/j7impJfLZkwrvj+FOLgZPfVpj3xlLXlob6yWMVSBMOtTsKaVeCkZX7JlUeMTA zErX30WeGXcr676TlihymKF6uDwu2kIqLclBMEqVrOWnspdligr9ZgWBAMMuhwKlN2f/ D7cM3IU6thwrl+eNTtMR7/Bp1Q6yjyaK1B+ES3m8R2qAsyqwanyqbSY8DRdsMQwWQmY7 i8Ug== X-Gm-Message-State: AOJu0Yzq8WOBWC+4mv+uSIKi4TzAAKCNY32vGRUZjPmoFamM7Fm1u7v9 AeYywnUQ7sBUjBto2Y9J9zPlYg== X-Google-Smtp-Source: AGHT+IFiDIkhYOzfGoN681/kFFpCAAwqzqvfB3lbPDSQsZxI7AXL5sm4hMppeyEfPHO7n8o8xy1wWw== X-Received: by 2002:a05:6358:d107:b0:168:a3a4:6dc2 with SMTP id jy7-20020a056358d10700b00168a3a46dc2mr1433432rwb.3.1697712297441; Thu, 19 Oct 2023 03:44:57 -0700 (PDT) Received: from C02DW0BEMD6R.bytedance.net ([203.208.167.147]) by smtp.gmail.com with ESMTPSA id y13-20020aa79e0d000000b006bdfb718e17sm4812290pfq.124.2023.10.19.03.44.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 03:44:57 -0700 (PDT) From: Qi Zheng To: akpm@linux-foundation.org, rppt@kernel.org, david@redhat.com, vbabka@suse.cz, mhocko@suse.com Cc: willy@infradead.org, mgorman@techsingularity.net, mingo@kernel.org, aneesh.kumar@linux.ibm.com, ying.huang@intel.com, hannes@cmpxchg.org, osalvador@suse.de, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Qi Zheng Subject: [PATCH v3 2/2] mm: memory_hotplug: drop memoryless node from fallback lists Date: Thu, 19 Oct 2023 18:43:55 +0800 Message-Id: <9f1dbe7ee1301c7163b2770e32954ff5e3ecf2c4.1697711415.git.zhengqi.arch@bytedance.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) In-Reply-To: References: MIME-Version: 1.0 X-Rspamd-Queue-Id: 6C5A7180010 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 6z6ea6hzkuw31n94r6tz8uoa3dm78rom X-HE-Tag: 1697712298-963206 X-HE-Meta: U2FsdGVkX18yes4WYvfNTQBzftF+45mNDpHdmoWGLiDt37sxS/FLVYhtaE0buTpuTdnCt0cosCjA1JySJzpYP+iQ+F+qQrzf2MgcDb+f1N/smdCb//FWEdBZeHVNhN8mJHSyRO86JHiydqotjGNdSpfu2TbDgLSu4kPziyNMN8cOLDJH7uO5tTvcXPECrQTfujdgUNVA0n0WwQUUTiMbyUTAHx+tQUlOarh2aPrbxl0FQmzuZs7AU7jrf9Sn33Q9ywQbpqz8HWVu9OypQEwYvU+Kk3Wmlxxdjb6G+iLS6YnBBNFVsTxCOg/p4TI366sXqheQ2XPf2SeSI7TKic/3fMWeDodXcvHCGr4AWz5LT3PDSPvu1oC40E/cfASx+CIVhSQD33bbI9oUhqU9DE4pkciX9qQqhREXd7b9PPiTJ0r2QIPRqjdPGb37r3SUr49xwZ9i2BB7AuT8ZdW0nLqD55+6/2jLv5iF195z5tQagqPZ4RuJRKYc6jVV/VUQz665U3xxP0tfJcVeg9Tf9SFix4D/8RiYrZ1VH9kLC0RKpT2tIgRLi7b8rkT3dcqWPh81qcSxow2oqDUgRZ7vnMweg1qs6UxDMYKzgYrND4JzZrL5IwIjv+lzhBrK09M8C7Nh9POv3QyT/Z38TYvzBnuZm8uoeRMxD10e5x26GC46f1BvzVBgHpfE2Pumz/nh4ahSt1OSGRJkwkZsm5y7nTG1AASelHBxckjMV7kf56Z7jtEZB0jxoxEnbcZLHIMtrU/mIO0bpLT8Rs9lxWpiDOMLkW861C35IY8LJVpP+HLXfdrHC7yEO3MaXEfbdzsAt7zFNNLORg2GMIL9wPM8t1V4amfPgYQXNUaH3nv/WQKwf0g1Ppvf5Cjt2XqEeJ4SgdtIXw22SLMP5/Pb8OrHdiw8KWWQ7/AtJ+6JX3Foez2TSA3kAERBvbhAM+nMNsCkEClVq+OihtLHLn2wNgtmxq7 sFbl7iIQ LZEIu8P1xgt0vtoXU3bZ4IgmRUfuQrAVB0zEmCxxuMaSDEsm2fDRvxLf3+46VQhFZsjPZPwkRpKhzTrtPcRZpatBS+auaiJkc5Q1AeRv46UjxUn0/xrOrWTixqWhVcnKsebeesKlnyG4NexyhIu5E7o68Zrm/tTxf1XdoA5jgE64kqvjBXch1u4oIHlvUlR6EcdbYReFrVCh8Bmb4Qu+I+jdhT6vXgZ055hvvh03n4xw2at1xCMpURGZpmEZT+QvDWYnXOvyBJMFUYOe9PHKLLr+sgMS3oOXp2vc77J4yhwGsmZ4WUa6Y6Lkgy0zAwn2gI8iVwDOLtk5G5Ng2FGu/giz/M3QBKGUgIYFB9IV/35+eVNAKNQon8DFeBom4g0sUABpFU60279VF8DL2twarx28r1iOPQdYr/YYVSwcqt3SK2i767VCkix7NVxndnGHHTg0uXQ8K94Vr32U/eQ32cihiC7BAXjI8ZsfTfCZ32fDEFL8= 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: In offline_pages(), if a node becomes memoryless, we will clear its N_MEMORY state by calling node_states_clear_node(). But we do this after rebuilding the zonelists by calling build_all_zonelists(), which will cause this memoryless node to still be in the fallback list of other nodes. This will incur some runtime overhead. To drop memoryless node from fallback lists in this case, just call node_states_clear_node() before calling build_all_zonelists(). Signed-off-by: Qi Zheng Acked-by: David Hildenbrand Acked-by: Ingo Molnar --- mm/memory_hotplug.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index d4a364fdaf8f..f019f7d6272c 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c @@ -2036,12 +2036,16 @@ int __ref offline_pages(unsigned long start_pfn, unsigned long nr_pages, /* reinitialise watermarks and update pcp limits */ init_per_zone_wmark_min(); + /* + * Make sure to mark the node as memory-less before rebuilding the zone + * list. Otherwise this node would still appear in the fallback lists. + */ + node_states_clear_node(node, &arg); if (!populated_zone(zone)) { zone_pcp_reset(zone); build_all_zonelists(NULL); } - node_states_clear_node(node, &arg); if (arg.status_change_nid >= 0) { kcompactd_stop(node); kswapd_stop(node);