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 EAD3EC83030 for ; Thu, 3 Jul 2025 06:56:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5DC466B012E; Thu, 3 Jul 2025 02:56:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 58C016B012F; Thu, 3 Jul 2025 02:56:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 47B3B6B0130; Thu, 3 Jul 2025 02:56:24 -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 35B386B012E for ; Thu, 3 Jul 2025 02:56:24 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 449FDC0628 for ; Thu, 3 Jul 2025 06:56:23 +0000 (UTC) X-FDA: 83622044646.10.D78823A Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf07.hostedemail.com (Postfix) with ESMTP id 76BA240004 for ; Thu, 3 Jul 2025 06:56:21 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VKf2chmQ; spf=pass (imf07.hostedemail.com: domain of aha310510@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=aha310510@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751525781; 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:references:dkim-signature; bh=ZigHOECn4qaJ1lW58l9LngcMkl41FGTMjqmol0gepA4=; b=72QsEhzMw97XEFLvvSs45xouSBGygTD11+pF6ozXADEdnUIZPihGwpiRQRWp6Cf2hCBTlS FZA4tIaGuBiPGKG5xHQ59TVvsal7eNJLYSJ4vnGeq4o4/2Xf6/PCrN8BEMQLfT/o58nfGW Hv5D1/9XDNQIY8WL14qBtYI2afh0cwg= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VKf2chmQ; spf=pass (imf07.hostedemail.com: domain of aha310510@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=aha310510@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751525781; a=rsa-sha256; cv=none; b=nWbC9REuOKvtBileCealhkwty96aLKqAjPG32cTWrNPmZDkOzFW9ESDaVytutpXo/MGdEM GkqHK2yq9f2odd0iwxDhf473+kkBwnEICH6KbULfVB0IZ5bLLG6Aqc1ug4NyB2dB2blNb2 Xrx9YBgvKCwTA8rIeEkj59A5GhppFKU= Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-236470b2dceso45589065ad.0 for ; Wed, 02 Jul 2025 23:56:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1751525780; x=1752130580; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=ZigHOECn4qaJ1lW58l9LngcMkl41FGTMjqmol0gepA4=; b=VKf2chmQ2TkkdO1xMmXKqW3zqUnaB8Hhdr7yWYIVhgYIURHLhJZVXz924UmliAuybX C6eWbu40pxIf7D3c2V69ZEvCSsY3573Oq6MDOWM23Eozk+1NkV3dgc73bVdaSdUAmoiW qpJ8NZ3fY+phrZKA82MiFQhstKacs9p5ep7CTnOpt9eIda7q++MrOmmSX0LB71dC1yrt 7DVLozJkB5hE5CgLyYobElQI8IyyBOHjgZX5AOi6Ry3BbGrFKUZsGS2YFbCz3cWQiCce kXRP+GwcMi1AlQwsTJVdhQJYR+ZydpH+5KNX2pQgXFn8fbSGRNAtOuX09DVC+JAFgnKj PPsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751525780; x=1752130580; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ZigHOECn4qaJ1lW58l9LngcMkl41FGTMjqmol0gepA4=; b=Q4NjNxCW5kXtzQL/VWoj03tHqPUtPY88K9t0Ulv5BQd1wQfU/gmSqCR4C8xcHCUlEO H9YK8+NwW3vhWOVjW5huYCgin5WiprEbHhhOEFRUpxSUbZxSICoUfWoU2VINxEB/PJ2z G7UJb+DVtgRY3i2keiLBsaytbUSpmlXBFGI47l2fldxBSGCtG3UKQUlVgq0JhpLjr4Xa FeNW0a6CimUz84hLOaA91Ej2/1fT6I0eFUU/DU2bSbNPF8YVuD4K2QKd+wpcu146yD2m r5oRRBRHOAy6xhi0m5YM2gHEqr+NINChX2M8s/6hmiG8/FUZ2j1rtAjl0AYqwTQRIVwc QP2A== X-Forwarded-Encrypted: i=1; AJvYcCVM59Pzxvhx5NSc1CatW5VZnb7c0PduvJRqgTOtXnupgzmRDgVgnS3bw4BbgvTsmncP2FbCrfSR4Q==@kvack.org X-Gm-Message-State: AOJu0Ywkv/eKMReptRjZLdqprXJUJo/KjNHMIRo6cFPK+BvFreixcLso cNQUYdkKydMFcFw6MJ/KQk9uhGfeAQ541Sqp1s7HTfyWMpijoNXi9n45 X-Gm-Gg: ASbGncvbzzM4iGHieJKxfiWfS3fWeI0P9lNXBXo4eCrheKAnmMg+DT5gLeXASyERfED f+dhCnEzaxdJrApSV6YpNONdG78NU34P7TaWkaRlpJDlRxjMxwbC7TI0cmKuNUi2LEEuaQBm90P ZubnDm2VLMwliE6TZX080j/weBfHT4SxoIHhU8bo2kt00i7tsfWe3qELpz6HqRLHyDtHd6+YFDN BN3rNMmMqeVhDa/jKBAns2Gq7eLM4xh8Y+ufGaEmhhBh6Tbaz7A6h4bf0bTaheu4BguwS3jtuhs /rVI7fkRo++O3APaG48yxy6E4yR0kDRvDcpbhExfNniazbnIx72TAOrDpOh9XSk4A/2AS6fYTQ= = X-Google-Smtp-Source: AGHT+IGBWMWVc1m9CMmXyTiauW22K9buQdCepkxXFX9TQAbo/jW/0Q44iOnRmWphSr67cKNoAf/HjQ== X-Received: by 2002:a17:903:1a70:b0:234:ba37:879e with SMTP id d9443c01a7336-23c6e5b0f47mr105442155ad.38.1751525780222; Wed, 02 Jul 2025 23:56:20 -0700 (PDT) Received: from localhost.localdomain ([118.46.108.16]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb39bfbesm159281565ad.109.2025.07.02.23.56.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 02 Jul 2025 23:56:19 -0700 (PDT) From: Jeongjun Park To: dennis@kernel.org, tj@kernel.org, cl@gentwo.org Cc: akpm@linux-foundation.org, roman.gushchin@linux.dev, rientjes@google.com, vbabka@suse.cz, shakeel.butt@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, syzbot+e5bd32b79413e86f389e@syzkaller.appspotmail.com, Jeongjun Park Subject: [PATCH v2] mm/percpu: prevent concurrency problem for pcpu_nr_populated read with spin lock Date: Thu, 3 Jul 2025 15:56:00 +0900 Message-ID: <20250703065600.132221-1-aha310510@gmail.com> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: k8iqytipg66uyrqssbatmcudmhzgz5qs X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 76BA240004 X-Rspam-User: X-HE-Tag: 1751525781-42593 X-HE-Meta: U2FsdGVkX1+EAC5L6lVVvsHWNEzLHiYihZiigNlI43c3IVhqvdbJgqt68qsX/WVaUq4NUUqnLiFcQNhpNWqQaOshS6xQClI4vjFozc9alUy3UjpjVnLsWaAJLkY4PKaerXUKi+tim5Qt3mO0TG7k3fAvWoItrwGruE0/cu2uspP0Z+YkSBq6rcAcpKI3ML9nwIjl7H6SmWiqIaJ/rXFXmrupse6j022qB4yJ5a6D4kRQN6xx26lkRkrHbLpRI+vY7a5Le3aZQB7v72YKY1ORqFZCfzjLdlJj3AqWRsP+Thi6RmxZ5fT3yXm6vIze2r1oBun1RKIayrHB4BMqxDEMGE60bBevr/5PvYqPUlFA9G0KegadnalYdGPlsIBx2VX+4ixI+gs4kRa7g84rLAuUizBckSj/R4ZYykSK4ROEpWVA9nS90/Z8FnPhIElKX8xCyjacL7kC8h91e+lDV/Wb1rVb7mm21olirq143kR0Koo5NTPt1jLbCCXq3AY85KBJSgCXRob9P4kg6Jn55Kciw1UdycNfWAVVeGE8LwnYg6HbZCa/eapQug4pBu3uuNUtvEmEBiwNrssLUL7ucwsfsJGcbw0dITXg33TkVwxA5zZo/Dct6BMYmMpySC1pTGrjGWxkeeM8G2dz+Mvgqe/S/m+jUpD3GzyRuRcUMkfdh2oEzGGx+htkbWwd1fhO4j0IY8Fn8Z8cGnXvAkfI40VrUNVNbpO9j3/An1dmQiohmeDuzoQ8cpc96DmlCmWrsooSQ4GhxYdu7iKI5SAlBKfTDTx5Qp+vmfgt4Yyh9nUjhvyuwi8ZuZckUD+HXOC64FNsSwCUpzMuFejV5IyY92CP/HdmAkWs3LJ6NCFzeauoRt820jku7Brm2YPld8RgwNlBI/GooFyu8wi8jtrvoe6rDhd19Urkz818KuXYQOLvReCTRKaKLPHQfe4gZzOLiT6AD/s50cX83GBBz4sKJHX q84iXLHn nGNHV6YGHJZYx3LuGGeowb0FCVUxWaT93dOhXVnThxs/ynt+bvMr5BR7QlPLCqfSaw9+JFimWibD/oRnE+BecjjmB2hn3Mjqml5+IKHemU0/g1swvV6TK0Z+q1s1XR/Fp4KSVdIBXWacRCtjOF8MJj2cvaWBLLSe7BarTbubnRC23zniGqFaETWqRH2nm+AVqzp8pWVjQubsoW21tqgB84XhiTD1QcOodjeMepD6MSg4d1g8fxZQo/yG7T6RxEMsx1iMTgGWpaDMSfgxxilJcrghCwG+gpw5dLrA8ECjuU4omxhq1x+6oT9hTMP7Obidwl+eZxWQDPUQ70Lr4q1ilVswlacrTp0NExjM/RsnQsK4bNVDh3/fxyaKt1L3qhwaca+IjMCc7Ch7KzUaYu0yql36JrkE5iz2dkpR96yrOX9UuiCaEaRXtBYTC0LQi7VKqVR/knT4SYjkTAAABNkGjUcZvuH8rh5J4cttVVl1HMvc9dRsse7oBKqtqXiXb2rcDr8rir9ND+YnD8m9m3hctsYdSfLcyLrz1DlhC9TD407QB1RBzvMkrMLA676AfeTjdUfaelUskxQ8wqZ5eyLXIbHkXRGJlX6/ZF/nqH87bXuMjfGTqopzNaAuVEVGvxxo2OaN+OiTnHMauPUgH8WXY2M085WHXR+uPOOmuR85TdcH1Fwg= 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: pcpu_nr_pages() reads pcpu_nr_populated without any protection, which causes a data race between read/write. However, since this is an intended race, we should add a data_race annotation instead of add a spin lock. Reported-by: syzbot+e5bd32b79413e86f389e@syzkaller.appspotmail.com Fixes: 7e8a6304d541 ("/proc/meminfo: add percpu populated pages count") Suggested-by: Shakeel Butt Signed-off-by: Jeongjun Park --- v2: Change it as suggested by Shakeel Butt - Link to v1: https://lore.kernel.org/all/20250702082749.141616-1-aha310510@gmail.com/ --- mm/percpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/percpu.c b/mm/percpu.c index b35494c8ede2..782cc148b39c 100644 --- a/mm/percpu.c +++ b/mm/percpu.c @@ -3355,7 +3355,7 @@ void __init setup_per_cpu_areas(void) */ unsigned long pcpu_nr_pages(void) { - return pcpu_nr_populated * pcpu_nr_units; + return data_race(READ_ONCE(pcpu_nr_populated) * pcpu_nr_units); } /* --