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 653E4CA0EC5 for ; Fri, 30 Aug 2024 10:04:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EEBA26B0093; Fri, 30 Aug 2024 06:04:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E9BCF6B00E7; Fri, 30 Aug 2024 06:04:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D8A836B00F0; Fri, 30 Aug 2024 06:04:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id B8B266B0093 for ; Fri, 30 Aug 2024 06:04:17 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 6E9E1141714 for ; Fri, 30 Aug 2024 10:04:17 +0000 (UTC) X-FDA: 82508476554.18.AB296D2 Received: from mail-il1-f174.google.com (mail-il1-f174.google.com [209.85.166.174]) by imf13.hostedemail.com (Postfix) with ESMTP id AAAF620014 for ; Fri, 30 Aug 2024 10:04:15 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=v3EoHKrT; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of hughd@google.com designates 209.85.166.174 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1725012234; a=rsa-sha256; cv=none; b=fhSGeHETYGLamrxoMDXsPkBOI+6CNVzaQUM4stef1SMGhFWvWNBB5BbmWU44RW7ZRUavHO w3LLgZ5Dc1qC+S2uDmqCS3yMuJJxlcTGOSGRjYWdActWBEkes4c+vw8haOEvKBBWVeaftq faa1LmVO9NlQp+nfTxuNx0KcponFKDI= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=v3EoHKrT; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf13.hostedemail.com: domain of hughd@google.com designates 209.85.166.174 as permitted sender) smtp.mailfrom=hughd@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1725012234; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=3lZ9Hn/+qhJZklOxutGWnGoGesi1GdFiMvyIIRsd9s4=; b=fLRpZqjUzHGJzoNDIiZwn4pmHezj3hsk3G9WrlO2yiwkZ/f0uPMBBIFUxc3iq/vCFdYbHJ K6A9f1RD6Mf4YKHGDH3ArIP/f5qBne7toido1Y0qQYKFqzw+pBq8SrQ5alpfzipgT5TU/e AI2wDT6UnabPElLuvCGkOmmNtECL0NI= Received: by mail-il1-f174.google.com with SMTP id e9e14a558f8ab-39d47a9ffd5so5885895ab.2 for ; Fri, 30 Aug 2024 03:04:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1725012254; x=1725617054; darn=kvack.org; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=3lZ9Hn/+qhJZklOxutGWnGoGesi1GdFiMvyIIRsd9s4=; b=v3EoHKrTxcgdC0zGIC4Z0/lSvs5wNkg4e6AP/PdDQJbFsjPLvv0523YlqpfOeGmwCr 5J6Z+ye8Iq62ZyhpGPPYwMLD/bPoBa3Bp8wbOk1FkXZahuKApr82jIRCCnKtq4OcQ+gK E6DWOxVMpkGtLmqAImxNyXSw/VnS2Ln8At8ddqwz5Y+Eutfm5mMVxaN3afP7xbqmAhZJ wUdXFemKh6V6TsKk/0JuH5Hh1N/hsMPdBn9fmJvhcL7euD1szcZteA84tJQ2ZCAdPRQv 58gYDazaTH7+aonniJ8gNdCjpK763JxVJTTtm1HUnDFONUEr8K09aJctkNLHnrBAgLYP ALtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725012254; x=1725617054; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=3lZ9Hn/+qhJZklOxutGWnGoGesi1GdFiMvyIIRsd9s4=; b=a7CEzbhso9w45Tvt76OHUOnLmJtWcrZvD/ESOtFAKmm9qNunUBLu/pyDMAXgzMnf6b uT5zZwt3Pe9D7NS6hq2+aPu4IlKDFqkv42TmwbE4YlKOrsH5ZDVxUre1tHtEPzQUjfOS C5HXRIecjtViztaQz/ZmnNMxHw63sQ/9PQMED+k+aJU9kgDdPYmaeDJKtWlPEswDVMKu 2d57sSC/6XdzzjE9T13HFiocMysvn5dpTGHUGhlzL/dIhMHRvbJeq0aaKLyXuojtDPCJ r6tU5UPCzCGUKNJREucYvP3dbiCmqPQ0zs3HYaNoNy1GkcmJe5o3QdN7BCNxZ2MdcAb1 LUcQ== X-Gm-Message-State: AOJu0YyPAhEDNoiQnIl6T0iKs6Phc3203sF1YlLJk6h1O94KwDWByZj2 JNqdKaGo7+uY2LZs0qHMUlbAi4uSZDddOaSon/D7j1A3rfez6fGITVc4xMcnTw== X-Google-Smtp-Source: AGHT+IFHoSWzOOyn/+aRzsSVpFBM0RLJuqHCe/Z7Zw6PGRR+A0tTUlzRXDP9DWiAX4B3kTu48B1vIQ== X-Received: by 2002:a05:6e02:178f:b0:39d:47cf:2c7f with SMTP id e9e14a558f8ab-39f3788c68bmr64439415ab.24.1725012254489; Fri, 30 Aug 2024 03:04:14 -0700 (PDT) Received: from darker.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7d22e774c6fsm2618822a12.35.2024.08.30.03.04.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Aug 2024 03:04:13 -0700 (PDT) Date: Fri, 30 Aug 2024 03:04:01 -0700 (PDT) From: Hugh Dickins To: Andrew Morton , Kinsey Ho cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, Yosry Ahmed , Roman Gushchin , Johannes Weiner , Michal Hocko , Shakeel Butt , Muchun Song , Tejun Heo , Zefan Li , mkoutny@suse.com, baolin.wang@linux.alibaba.com, tjmercier@google.com, hughd@google.com Subject: Re: [PATCH mm-unstable v3 4/5] mm: restart if multiple traversals raced In-Reply-To: <20240827230753.2073580-5-kinseyho@google.com> Message-ID: <56d42242-37fe-b94f-d3cb-00673f1e5efb@google.com> References: <20240827230753.2073580-1-kinseyho@google.com> <20240827230753.2073580-5-kinseyho@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspam-User: X-Rspamd-Queue-Id: AAAF620014 X-Rspamd-Server: rspam01 X-Stat-Signature: nyqzn4n3rrpts6tigjdfsmxdoo51fm65 X-HE-Tag: 1725012255-303947 X-HE-Meta: U2FsdGVkX19IztCvmGS6QUoinkZXqUf4nDVrsz52Uuh64oLDBsE5KyjKWvRhTKDrEvdhRQOF+trVUC9kY++V2o5suHgiOStrUOeHRe2xh6KXD5i6/OsVSrZtTy/7cW9c4G6Npq41uuxAjyBs22X53Hw/Rj0XwkoxnjbDxXLl6zZoqaD6on8RKOiCH3K89WIT+EDb4K+3pYVJWtKcWm6ofMquotBno2xcO9LpxpqpZnSGYJldi/LAF5MZ37fWTpv2UVkiKxRCxlV+Zg8SXJEBJdzzwf4hh7QTF6glKNN8V7alZpI5PDMtp2hX8irqvc+Y3W5WLFfhOkkTp4TqXKLNaOx6dOkI6PD2UbdoJWaUNW5lqJCT9KIoK0x2xM8SPEOT5MEVDOv7DyR2nbpTwbl0j78tAIUVL4fgDq9QbOCcEYMr2nXNE145rfn735vTwrWGzTtz7hxLAwMikfQ5Ib3HMQ4A2TTZGV8FymEFSjBsQ9qFWYeD6ak3iwk2hxWhOxYO9dO3/VjsmwI5owj8qObVkO5kKkS/d71aK+LEkgQYnIDFaC/pYzdB7alqdfXZKBj05letS+Cg9GWlxBtwfPh9sk7MLPRN22LNXWEi2ZCyYlhKqJugeWofFMiEIDOvY3HRzJOSOjMukpWTFmB2mJZodT0bTNVFEpNeMxn9ll46ttMyxOhoLmBiGD9SCU8rF2vY6RbgoDhU/kHSDWABl390J01LyP9jw+0I5wjFG08gQjJbDlCKfY0HvgM35Fp4EZCSAfRG6hfOQV1nraN4qfvUI4kZ2T13jBqE9X8ycf3sw2ZljnBV235t4MWy3DMQFGRGmv3d6WHpeoRkPce8Bw0d7Q0emc/WUt8UCRLqCpDHTOF9z+UcgYht6hsUaLOsid7njLzqmqWjGB1McU+lgadlMUdVAcmWtpqy3C0pBavsRroWA7eUP10RhXDd0Cz68YLNl9EF7pknaQfuPoVEDc0 g6cVdFgt rzLvfZIWWMqOpANwM/aDbW9GZ6JhOXiaFo99KakNFgl3iPZFpSKDIy2r4yY9EaSiLf1K+XmjXGxjjKBZ9Ze4k4KKdWCJK3G8Cg7MnbMYDEu+gGjHxGHv1+tHd2fQ6cQq/7HXmA0MVASNHV2NEGrhtX1PL2CAOQdaOH/4yyH3NWzSiFoYFmphCOc6zVz5Z9mllDROBGpqoFaagcj9haduxNqzEvs+llRpSIqRiobFyp1/EY6smUeswak26vGb72ZHAng5r4vQWHpYNOJtVbhi00gqBoUYcbZLm0dAe92mBkbHMGHL3Mjmlj9w1+m+Faz+xvYTcTKoSqrNsI96nRTMO/NYvWflwEmjPKVsk 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: On Tue, 27 Aug 2024, Kinsey Ho wrote: > Currently, if multiple reclaimers raced on the same position, the > reclaimers which detect the race will still reclaim from the same memcg. > Instead, the reclaimers which detect the race should move on to the next > memcg in the hierarchy. > > So, in the case where multiple traversals race, jump back to the start > of the mem_cgroup_iter() function to find the next memcg in the > hierarchy to reclaim from. > > Signed-off-by: Kinsey Ho mm-unstable commit 954dd0848c61 needs the fix below to be merged in; but the commit after it (the 5/5) then renames "memcg" to "next", so that one has to be adjusted too. [PATCH] mm: restart if multiple traversals raced: fix mem_cgroup_iter() reset memcg to NULL before the goto restart, so that goto out_unlock does not then return an ungotten memcg, causing oopses on stale memcg in many places (often in memcg_rstat_updated()). Signed-off-by: Hugh Dickins --- mm/memcontrol.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 6f66ac0ad4f0..dd82dd1e1f0a 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1049,6 +1049,7 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root, if (cmpxchg(&iter->position, pos, memcg) != pos) { if (css && css != &root->css) css_put(css); + memcg = NULL; goto restart; } -- 2.35.3