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 C31E8C369C2 for ; Tue, 22 Apr 2025 12:10:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D3BA96B0005; Tue, 22 Apr 2025 08:10:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CC2B16B0007; Tue, 22 Apr 2025 08:10:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B3CCE6B0008; Tue, 22 Apr 2025 08:10:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 94B606B0005 for ; Tue, 22 Apr 2025 08:10:57 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 369AC120D70 for ; Tue, 22 Apr 2025 12:10:58 +0000 (UTC) X-FDA: 83361563796.25.30B5FD9 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by imf16.hostedemail.com (Postfix) with ESMTP id D189A18001C for ; Tue, 22 Apr 2025 12:10:51 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of zhangtianyang@loongson.cn designates 114.242.206.163 as permitted sender) smtp.mailfrom=zhangtianyang@loongson.cn ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745323856; a=rsa-sha256; cv=none; b=H/CPsaJ43sI+ngEkoD+L/NENBxDLLGoYmVHLYsu7CqBPUqiUT/9a6e0beKLkSb777/gn2W l9bwdLA2St8x5fbxmq8lVPPHuIWsbNQbH+t9QucVxZU22aNa9cwiw51wC5rcW2SAyVmaXM IYPOSU95Qkfyco9Gjj2GcJTFLhsLdzk= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=none; dmarc=none; spf=pass (imf16.hostedemail.com: domain of zhangtianyang@loongson.cn designates 114.242.206.163 as permitted sender) smtp.mailfrom=zhangtianyang@loongson.cn ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745323856; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AAcyg3CCU6ijR56cE3skmyf3p6K/TSnvg453sJB3tYg=; b=7EFlsefNllg5jLSMfVd2iX16rj5rizsXyoxD/pbbfdi1umCqIZYxU5f6eFvfwkDOU4MZ3w 56cSM6tSI0RUcZXKRLLH638TswkEidfcfNOCaORJyOwMiSXHVzTIgDCiRcCVYJG/ykkK3T 39TmfKHXIQ5fuGCEPTxP4ofjh+l4IJU= Received: from loongson.cn (unknown [10.20.42.24]) by gateway (Coremail) with SMTP id _____8DxjXJGhwdomATEAA--.62416S3; Tue, 22 Apr 2025 20:10:46 +0800 (CST) Received: from [10.20.42.24] (unknown [10.20.42.24]) by front1 (Coremail) with SMTP id qMiowMBx3MRDhwdoA_GPAA--.28378S3; Tue, 22 Apr 2025 20:10:45 +0800 (CST) Subject: Re: [PATCH] mm/page_alloc.c: Avoid infinite retries caused by cpuset race To: Harry Yoo Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , Zi Yan References: <20250416082405.20988-1-zhangtianyang@loongson.cn> From: Tianyang Zhang Message-ID: <025e3f51-2ab5-bc58-5475-b57103169a82@loongson.cn> Date: Tue, 22 Apr 2025 20:10:06 +0800 User-Agent: Mozilla/5.0 (X11; Linux mips64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=gbk; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-CM-TRANSID:qMiowMBx3MRDhwdoA_GPAA--.28378S3 X-CM-SenderInfo: x2kd0wxwld05hdqjqz5rrqw2lrqou0/ X-Coremail-Antispam: 1Uk129KBj93XoW7ZryrCw1fWw4DAr45Cr13ZFc_yoW8ur1Upa yxJF13Kws3JF18Grs2v3409ryUZw4DJrW3Jr1UJryUA3s3G3yIkr47WrZ09FWDCrnxJw15 tF4Yy348WF4FvagCm3ZEXasCq-sJn29KB7ZKAUJUUUU8529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUvjb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1Y6r17M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Xr0_Ar1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVW0oVCq3wA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_ GcCE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2xF0cIa020Ex4CE44I27wAqx4 xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE14v2 6r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvEwIxGrwCYjI0SjxkI62AI1cAE67 vIY487MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAF wI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc4 0Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AK xVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr 1lIxAIcVC2z280aVCY1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjxU70PfDUUU U X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: D189A18001C X-Stat-Signature: 4rnae6ntrfxucu6o9e4opjejkwj5ahgw X-Rspam-User: X-HE-Tag: 1745323851-760966 X-HE-Meta: U2FsdGVkX18F67pmanP1+YnkKuxbRXSGtAzv2/Xs1hRJp0j7PcCeCPlCaG+/E0SDxsrDOQFzfEsATmDp75w+djaEdBKJvJfihs5hsmp6S2UsCqkcBQ8PYiIgxKV2f/R8GnVrWs4iMNlo+xXl0IQJVXjtfCBMFe6YTn2PvVfe+fArWdBHNESSqlRK0Mk18a52HUnFF7ymwUa6q8K+Jq5BRfiu3a8b+6QvkLB3WfZSB/H27cobzJkxmjmtJwuyoPXHzRmg+TLDLZdcefsg4BZDeUONHIGSPzwT0OTN2g8hcfQly56U55Fnia/6vUd03Nab8P/KAh/oaU4cfFACqUvvWFfgpacjdG0gH+dbE5L/fvXeAFvFH3EXfP5HN5djEanJzN0WhV8SaT/HBTDtwviL89VPRguYa8I31+IJGZbcwRht7NACbBcnYzVGaV94AfJeVlDiYDFT8ajinkCAKbz4d0hB28ZD5p2A+avvs2uz/0hCb03QQUxebD4WhPWlzK+GCEmPobg7DlkstP3RPCEFq1sFBPnMPKdhL3SA92L+rSCpj/I7QEGFABZSYsNAA+DY9oL78NngcSrBrFqPaEM0VBjBb9HRKhjJZ+6C/ZvQXRR7RDYJLpeI/PPtbTQ1A0b5UJWf/Val+wJAcZvCSrmVbbRh7Ksquaf+VLxdxgB2bvaG67OZ0i4neenjMiT2UWEl2UtjVzRsLr6e1C3Gq5MNfvAlIZunjzrr+QAtL9V4D8gcGQ2umE9tmNalOShJR6UNtJ+F2Pcg3tF5e6Lkq3RRPn8HYYcDVbbbl6kpurrWR+Nsik1JqW00gXUMRfCcCdhKRvniO8Fh2XVLtFSMcj915dCt+Ha1GWH2VHqdGGuFy9iq3gTL/DfnfsGLvHntFZzVJUEKjpRuJgQ0ren+kMtVRjm6PidNxThMj6JTVxqndyZlXVVI4d8T+7NYo6g5L9kGmTHIrnuoTlFGloEofjY 4gFUzJ0K Bga23cxD7FYr79mC0DliPmV910pX3Er7+V5qAUTRjSJJvo1CslTSlBstSfMXbbkcAxuOKo2GLv9UuaNYsX5c3kh9Fa286dm/JIfEaM32suDpmg0G1tXzrO0MahQ== 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: List-Subscribe: List-Unsubscribe: Hi. ÔÚ 2025/4/21 ÏÂÎç6:00, Harry Yoo дµÀ: > On Wed, Apr 16, 2025 at 04:24:05PM +0800, Tianyang Zhang wrote: >> __alloc_pages_slowpath has no change detection for ac->nodemask >> in the part of retry path, while cpuset can modify it in parallel. >> For some processes that set mempolicy as MPOL_BIND, this results >> ac->nodemask changes, and then the should_reclaim_retry will >> judge based on the latest nodemask and jump to retry, while the >> get_page_from_freelist only traverses the zonelist from >> ac->preferred_zoneref, which selected by a expired nodemask >> and may cause infinite retries in some cases >> >> cpu 64: >> __alloc_pages_slowpath { >> /* ..... */ >> retry: >> /* ac->nodemask = 0x1, ac->preferred->zone->nid = 1 */ >> if (alloc_flags & ALLOC_KSWAPD) >> wake_all_kswapds(order, gfp_mask, ac); >> /* cpu 1: >> cpuset_write_resmask >> update_nodemask >> update_nodemasks_hier >> update_tasks_nodemask >> mpol_rebind_task >> mpol_rebind_policy >> mpol_rebind_nodemask >> // mempolicy->nodes has been modified, >> // which ac->nodemask point to >> >> */ >> /* ac->nodemask = 0x3, ac->preferred->zone->nid = 1 */ >> if (should_reclaim_retry(gfp_mask, order, ac, alloc_flags, >> did_some_progress > 0, &no_progress_loops)) >> goto retry; >> } >> >> Simultaneously starting multiple cpuset01 from LTP can quickly >> reproduce this issue on a multi node server when the maximum >> memory pressure is reached and the swap is enabled >> >> Signed-off-by: Tianyang Zhang >> --- > What commit does it fix and should it be backported to -stable? > > There's a new 'MEMORY MANAGEMENT - PAGE ALLOCATOR' entry (only in > Andrew's mm.git repository now). > > Let's Cc the page allocator folks here! We first identified this issue in 6.6.52-stable , and through root cause analysis, it appears the problem may have existed for a significant period. However It is recommended that the fix should be backported to at least Linux kernel versions after 6.6-stable