From patchwork Mon Feb 20 15:16:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yue Zhao X-Patchwork-Id: 13146622 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 EA150C636CC for ; Mon, 20 Feb 2023 15:16:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 538936B0071; Mon, 20 Feb 2023 10:16:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 50F356B0072; Mon, 20 Feb 2023 10:16:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3D6D46B0073; Mon, 20 Feb 2023 10:16:55 -0500 (EST) 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 2ACF26B0071 for ; Mon, 20 Feb 2023 10:16:55 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id EF7DAA082A for ; Mon, 20 Feb 2023 15:16:54 +0000 (UTC) X-FDA: 80488022748.15.D9F70CA Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by imf07.hostedemail.com (Postfix) with ESMTP id 287F940020 for ; Mon, 20 Feb 2023 15:16:52 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=j6cDxs5w; spf=pass (imf07.hostedemail.com: domain of findns94@gmail.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=findns94@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=1676906213; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references:dkim-signature; bh=Cqn4UGJ8kCDms9H9/KZqG5/8iucyQK2p5fp/dnG15U4=; b=Hm4aoIOBs/lzpkCWqt6PypIRKFpJM771X3FZ+lGYdgxrFGzjyCwKDcVA1AY72yuHF03wCp SBS/Fe8dOLrnuhoQZwS8X8sR/YEpSFHtlpttn6tNfCWYW6BHOlNfoBHRR+iFKD9q2i/6oU dpkvYXHZE3byJwGTQbg5bSrLvsZZDoo= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=j6cDxs5w; spf=pass (imf07.hostedemail.com: domain of findns94@gmail.com designates 209.85.160.173 as permitted sender) smtp.mailfrom=findns94@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676906213; a=rsa-sha256; cv=none; b=xmFJAqna4uzdOEOnvDmYQ1uaaSQScl1efSDkxtmT8+xZKIVad1oknyUsPm796t2CXXGLvR iIdM1ZhGzmJFx09Zw+RIywKVPyVZKjbyHzV616/3r2mbTJhWM2e7WeUS74LDlk3MPj7BGe LA4lyCHX7MgAjSUZNoiXc82cO8ONCcA= Received: by mail-qt1-f173.google.com with SMTP id g26so913324qts.7 for ; Mon, 20 Feb 2023 07:16:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Cqn4UGJ8kCDms9H9/KZqG5/8iucyQK2p5fp/dnG15U4=; b=j6cDxs5wY9U8hZTNmaA5a6G3X37iP6qPEHkLWjF3w7xw24mwLSVZpKI7rxdjw1DpZ1 yY3HX6QPcbT3Hd/LyxjYTjBA05guiSfsDuxWRGGTd8aownt9eC8n/LdIYeVDC2sgMrqB i6d+3SWBGt8xWt6JyP7sZYNA7Tfn5a/IpE3CJdqvtfCEjBFbjA4aEz14bA7gPajX+FsU 6S4ckl2T5nrl/y6w8/wgrsRceuNbaQXMGH/piHbPKDSHcxmFIqfdN2WMKCsIyshV0bsw GuuYFaBlwrGuwVmo907/NUQAabfHJiFSVy4cVLHfx36k014MeW+bYodgSSyeLrJ2wMos WIBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Cqn4UGJ8kCDms9H9/KZqG5/8iucyQK2p5fp/dnG15U4=; b=cogNlF8QCcaK0I6ufEg5I1gBz2MRP6/tdnpQawuHZvFavagsp187QMEPuMMjVFRmXa cOPA2YgHHQjN7omluc14J5JjQvWsLXATNkPqkIM6J4wWRrtYINjvih4Q7/CAbMsKP1nX j99/UUijTxBehAyf6JDzNin+oOlHi+0/Lo6eeGDx+ZEWTbKj1H2Cxhbsgvz+5BhBAx4+ 989eYjFa+fSEvu7vcJUY8alPEfuLnffAp17fCqOAkVCaw8E1x5k5vOVCgKvBPWe9KOtA X7B+fQTKmvgBqCIKQlziwQ43TQBrfGKdc82BgFL9tLZ1D0OQSL/kt6sCM6FI2cT1X9xE aGNQ== X-Gm-Message-State: AO0yUKUUzbOQBew6JOSUVcsdBxDLinF3XH7gIx83nzKan7705XWFI34V Vc5wB4NV2mtizHA2eLP16E+++bXf3TDm7SmeEAc= X-Google-Smtp-Source: AK7set+hAg5SJUcL3lnto1FlTkGqymX3B2++g3tb10cpff1CKBCBS89E1ytt/AWMSw8GP8DfPTzNAA== X-Received: by 2002:ac8:7dd5:0:b0:3b4:d5be:a2e0 with SMTP id c21-20020ac87dd5000000b003b4d5bea2e0mr94419qte.20.1676906212012; Mon, 20 Feb 2023 07:16:52 -0800 (PST) Received: from MSI-FindNS.localdomain ([107.191.40.138]) by smtp.gmail.com with ESMTPSA id d127-20020ae9ef85000000b0073ba92629e1sm7292448qkg.23.2023.02.20.07.16.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 07:16:51 -0800 (PST) From: Yue Zhao To: linux-mm@kvack.org Cc: akpm@linux-foundation.org, roman.gushchin@linux.dev, hannes@cmpxchg.org, mhocko@kernel.org, shakeelb@google.com, muchun.song@linux.dev, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Yue Zhao Subject: [PATCH] mm: change memcg->oom_group access with atomic operations Date: Mon, 20 Feb 2023 23:16:38 +0800 Message-Id: <20230220151638.1371-1-findns94@gmail.com> X-Mailer: git-send-email 2.17.1 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 287F940020 X-Stat-Signature: fq7xhonjfoxmzikjznuhh8tyfj83t385 X-HE-Tag: 1676906212-860006 X-HE-Meta: U2FsdGVkX1/ssqIMOARDHzMRUmiHnR4gmL/c6MVOyK66tGYr0saDNTtn+rji3KvzImAWDXtF6BqFN4biwuLpGDTXM8uACTkt8YItKFMqnLSO0z8AUJTQ0EXkm4YnkaVHHmYrNCByNIJja9HZkZ4mqGEk9d5jkQludmAYol/K2mDVpGLPC69GXND5FuRpIsJ1JWGXTfcVznKk75tlrRytgMPEJ/31KB5fGXzMCW+Ng11tBZorivEzbYD9xDiz93ek62gSsLL8M+bgqcxKZ0qf/pZR5YukGbJCLrGcpBUJCAF7UUmteGlDVJLWRkOYGC0GcP5aVRNuXNwWy+ZelSE9Cwgw09yFcf1tdVdXEOQm1nmXQnCeDmC9r5MyDrFe+glhQGnxiebLzKiWO4xcU3AFY/hj9aAyHrhJa293CC39QegyFqU0JQ6FdJtyA84ogcyexp4osteJrwLDuUnqG/djk4ygs6s2A0BA963cLt7PHEryKJKizUD+2wbvdHx1zQg9/XEmMYltj17Mw3goac4Yex1sqYROS+kdz0KAVEjt3BPed004kHVDOi/NXGY2P5U8DiFhN7/fqICmI//xXlkybuQRJIrnkzKyXvgb4FgV5j7CueOQEfc1VYzO18BzhSLq9G+54PHQEPhzTT2KH6TYAvDF33xPFMGgfZv0BZUvMzqYKt3CQcEqeR9wzamTc4d8QIufRu5oi3eJzJGfogyETAmVoRXWOxJP4eecSJl+TWz4whJEdXtjATlhrBMQ5AJzPw6XIBLzTbLVr3dvuS0ytKYsmTVC6H/tUtp9pGILKIguyuAF53H1eibbGIroGRFeRIDHQycuYSlnyETcrTW4d8ZhxrxxAfP8V57SpAJY6LWy6uXrgN/SkfE7wmPO8fGGxELA40DIE0h29l8sTsIjfzWOVX8vJQYxvmk+tReLqVIQG95YP12q/koIBT2wQQeFl8u+XFlUrVPoSBXMlIq 86YTSud+ n+Kt0fLMnMWvotYAvPkpjyyWhBZYcz6ik/nLzh1YNTqLVrKE1U1uni9Atnk3WCUlJ7EdoxBsXD5WU3CTUPTQdYRHvXtjMUS3wKQv+bO4e7G2T6iBTR1K4bQoGiQ/WxQIcUZsvFfFdA6e9hyBUivEVNeGBVXKPJoj8MjkqsoPQOGeIRtKj/tiR9X8sCF5hKd18Evz1TgKnCmeMxOIdvq1dH2v6IQXFhyYyrhjrpBRhsUOlZycInzik+R8njSonDX5rZrEPI11HQ71LvDe1uWppbjuQ3+MzSmuFcuqCD7+WS8PztQiejDhTaVnwE9E1ajAJfiirnIcjxWenGOPoq2HWfCE5qfI+Q10pcCwhgiJOraiagha/Zmk6bVwVUeg+68rk1Ty2LYHp77QBKFW55ZjrwNPasd3tkOVQx1zRfpK+TGu7lqFf6rZbTrHdBhBuVZmeKlLV9ji8YMhzqMvEirVItrnm3A== 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: The knob for cgroup v2 memory controller: memory.oom.group will be read and written simultaneously by user space programs, thus we'd better change memcg->oom_group access with atomic operations to avoid concurrency problems. Signed-off-by: Yue Zhao --- mm/memcontrol.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 73afff8062f9..e4695fb80bda 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -2057,7 +2057,7 @@ struct mem_cgroup *mem_cgroup_get_oom_group(struct task_struct *victim, * highest-level memory cgroup with oom.group set. */ for (; memcg; memcg = parent_mem_cgroup(memcg)) { - if (memcg->oom_group) + if (READ_ONCE(memcg->oom_group)) oom_group = memcg; if (memcg == oom_domain) @@ -6569,7 +6569,7 @@ static int memory_oom_group_show(struct seq_file *m, void *v) { struct mem_cgroup *memcg = mem_cgroup_from_seq(m); - seq_printf(m, "%d\n", memcg->oom_group); + seq_printf(m, "%d\n", READ_ONCE(memcg->oom_group)); return 0; } @@ -6591,7 +6591,7 @@ static ssize_t memory_oom_group_write(struct kernfs_open_file *of, if (oom_group != 0 && oom_group != 1) return -EINVAL; - memcg->oom_group = oom_group; + WRITE_ONCE(memcg->oom_group, oom_group); return nbytes; }