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 7EB8EC47077 for ; Thu, 11 Jan 2024 13:41:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F3FA76B009A; Thu, 11 Jan 2024 08:41:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id EC9016B009D; Thu, 11 Jan 2024 08:41:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D688B6B009E; Thu, 11 Jan 2024 08:41:30 -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 C8AF16B009A for ; Thu, 11 Jan 2024 08:41:30 -0500 (EST) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 905211C10BA for ; Thu, 11 Jan 2024 13:41:30 +0000 (UTC) X-FDA: 81667142340.27.6A326FB Received: from mail-qk1-f181.google.com (mail-qk1-f181.google.com [209.85.222.181]) by imf26.hostedemail.com (Postfix) with ESMTP id C6378140020 for ; Thu, 11 Jan 2024 13:41:27 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=cnJdk98D; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf26.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.181 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1704980488; 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=OrNtFKBOME8koezo+hwmifmOEhoB9oiYKEx7YwjL4r0=; b=4JTAVpleV6M899GrLf1ODnZt2Y5iyemoCIW3wPA+EkXpvXO84lulcsfmubqu2etjRWVELl L96NyTcnKHMiL6cAmo4+5OFqwQ/RGRwJvCGZPxAaqxvWRAoiEZFA7ipUEipM+4EJ5qNGpy +nn5wkOf0PXKH5F7BX67aoD95gru77M= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=cnJdk98D; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf26.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.181 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704980488; a=rsa-sha256; cv=none; b=0/fjZgD9XpA/0lXuPdAfLrvVsPnhRvWpjGC7LpLsZZ5xcRLkVsqGQ8rnzuDusa1HuU7cPK /KkiBk94HKH+fxdz3BNY6AqT9N9pGDp7lKUAddot/DvJUdvQeOyMw6L/OweeA1SFBn5n5v R61yQmGvScHJJyWaaoy9aS60XSibgrI= Received: by mail-qk1-f181.google.com with SMTP id af79cd13be357-78324e302d4so288412985a.1 for ; Thu, 11 Jan 2024 05:41:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1704980487; x=1705585287; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=OrNtFKBOME8koezo+hwmifmOEhoB9oiYKEx7YwjL4r0=; b=cnJdk98DgivPF91kkJG0llBSn4LnmAmk2M0PCucjSceuVCQLPVbSD3o0/dX9uI1GKR vtgNt2lTU9Uxzxn4wjhtjZtuOeS7rZi0D83lc4Yaep1uG/p7Mg8I1JLZDWTy67MlgGPx am37+RhU5ENYAa1957YqlC/6SinEMB2rly9tac8mKj6S1NhH8PjL3QMh5y4oyp8jwJfZ PD8AF3DVkx66Z7ACV4tGM2W3Wh3Jk7No1t96Fo/lI9F+q0emhzXohfq04t9FODA6r97K wgeMKOs1/i0lOxE1cVef6z+7CeR/mAP3yYTbozpo1iC+D5KbCH3W5SppzWlLinXlYqk4 2vOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704980487; x=1705585287; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=OrNtFKBOME8koezo+hwmifmOEhoB9oiYKEx7YwjL4r0=; b=qt56y8wNFnXrgCwpOS/lj98evf57KGTnkQiPfzhzqZRwe0PLQsWhhxlDHsuF6l+fDG 4iT0P4t+tTOXq6AYHdRvIgHxFTVir6uHrxenGxmewFeQnHgCTbP/m5i3qh9SNMQfdWk8 him1P38y0iMk9U0x2iHflCY2r+aPfeIxFqvqOmRsR1DEyXbR0eL9d4flkKceCIgLgbLJ eYS9M810DoAUKqzkcIifXl6QlyGgQWHqEsLnIAYPpzAO3mdnMYN3ffC0+kGLCB185dxc u7+MeGQKsufmtspZMTitN0L5ALyvcLUsKEVPsvAM5wYLYlH1XXPGrEegouHpZQp83tpW KHDA== X-Gm-Message-State: AOJu0Yzxqkx26kKR74zAedBAy0/BpPt15nt7Nc+y/5IQoMVIv7bLjPtB zzABYVgH8rmH4KpJvXmCzE0lgP8hLvvjYA== X-Google-Smtp-Source: AGHT+IHP/0R6MwUAt5y6EpV/5jC07uWw3Cph7B1QeRfXaXAn8J6x9jo5Bti06WxZXF+eIILMOH5DPg== X-Received: by 2002:a05:620a:8082:b0:781:62f6:6786 with SMTP id ef2-20020a05620a808200b0078162f66786mr1335682qkb.127.1704980486804; Thu, 11 Jan 2024 05:41:26 -0800 (PST) Received: from localhost (2603-7000-0c01-2716-da5e-d3ff-fee7-26e7.res6.spectrum.com. [2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with ESMTPSA id ay13-20020a05620a178d00b0078318dac889sm345703qkb.19.2024.01.11.05.41.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jan 2024 05:41:26 -0800 (PST) Date: Thu, 11 Jan 2024 08:41:25 -0500 From: Johannes Weiner To: Zhiguo Jiang Cc: Andrew Morton , David Hildenbrand , Matthew Wilcox , Chris Li , Michal Hocko , Kefeng Wang , Dan Schatzberg , Yosry Ahmed , Yue Zhao , Hugh Dickins , linux-kernel@vger.kernel.org, linux-mm@kvack.org, opensource.kernel@vivo.com Subject: Re: [PATCH v1 1/2] mm:vmscan: fix workingset eviction memcg issue Message-ID: <20240111134125.GA390292@cmpxchg.org> References: <20240111122451.682-1-justinjiang@vivo.com> <20240111122451.682-2-justinjiang@vivo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240111122451.682-2-justinjiang@vivo.com> X-Rspamd-Queue-Id: C6378140020 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: ug7pcq89ew38o1eyyqumkc1f6frrmdb4 X-HE-Tag: 1704980487-244756 X-HE-Meta: U2FsdGVkX18lOB30uo6UPjU3S+FfO4cT54Usm/v+gveEVrXy4N3q/nVKP1ihX7pK38AibD4d0gcxHwLZjKrWZi4d3eHJ//Ha/iFke4vTmfm0P3nk0mg9ejKYoTNCEBvFuNSurQMKrsBljn0lgOZfDaHIB93ffCtzq+OzW7yznFnlOMVV4MeUnEtnSwi3rp0ANX94oWGdIaFUxnkCyD58cA9oXVWu5Y8ettOs/ef1TbJLqs0AfWQ/M8uGrtkK888479giE7duaRiC8WcfVboPKRhvuCnMMTvfUipAtqeMwgCxwQ4u5MqvZDEWYqNXuiNWHvfXn7RYaf8dEYosWiX2KCkYjNzQ1VvZeKEHYCYUuxl4X1iQDbTXmW4735dsh6OQif6B+7Q96lhPeD05o+8RDoyO5nWt80HYiVjT+0i4AJ6Vd+2ykd5UC5Z2mARTzNk1UILayNnoUAj1K+fEUX1P1h6R5YlTDKdQo1voj/vpoRmn4H/Gx43IZISUyb0JXMMrc+0LskzY33qrx4zs8FnS6e0Cx9GPwwcFZNSdc4p/dKmZ8oi/MbC5cg0XkhkhXUs+NZJqRX8HViiVOe1XHDRefU1mOQt0m8nBYQw7jkrZQ5lmuOBNW71eimgIqnc5kq4Xk5+JDTKiRqj2V3b8a2XhijrQhsvgz0Wsj8vixYb1nCo2Z6JkOohlQhZwvPR3KiscDmmPgDWNV2IV4nTK7va6dB+F4//+tNL+aiZHFaL7fRi8lNDC1Jpx01t2KtNbdHK2UoK0vVkz3mFlm4Y82U9AhVn/7GwvbuAnTLI/n7BtrhYDewI1afIi0P0va6hU+PF9lhd+/YiEmZVG21WAKm0zD3vGDyYs/s64fb1PrU7Q5tPntFzYkZugHxaLjK8YcsOMO+hUjrBWIDzpOHlkNXmJfLZJLaKkmgcJV1GKh3Jwc+RBxRnR1pPwQ/eX8qLrARbpGz58v2D9j4E6HbiGxYK sYOWLpMn hSESDX2yG5+U/s77YBFN1tIiz+aLGSdHJszBRTEqRQfjyQcrxVXVsmq0ok/YA2r2ryaQlbQ9wuf47ORMjt0it1dGIARJTExnrSVUqcrVQkGV8ZnE6rwnOK9xMOnmXogieGbiJbOH5pSsiPQO93yClwkQXLTChqjvDXRyzaQbekgu5NbqQjK2gNUeQzmlMqHQU/IyMTSaDzKNXTw7r801qcQjLtKZt0eXl/uhJu4VousQqAbENh2D9Zi16LZSf+7HtSP/P2tBdNFzuBpGRPXnjsb+rp7uXH4++jnID/zC4rz//ntiHInKYr1HZfJ3rXiKsE/KlOSEjdmQyz+KXUFrxB9bB7vIBBWcx2igNGqnpdGD4bxZ5kNK4Pt8ZJMU3hgPQxdAEWKWNSiIjaUZxsfIx3g82FJxKPc1IFxRowwmIRa03xCMriRrB+wViaLBKeIP9UJOUgojpTVq+vaHc5QF/U/TnDPA1eDn5F6CLpD5BUAe0lLtS5oulYzKUf6OpjAVEAhD0iGBZGjiJ6qYksqwhmerjO3egE+xjueVyHMvtDmH0U1EZjYQlg0dlXqvyWMoRZKqgT+doelhnrZBY3fNJg7y7w1V8LRe6tbUSz0KKjI2nYSe16H5nUukGV0wyOGFsyC4U 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 Thu, Jan 11, 2024 at 08:24:50PM +0800, Zhiguo Jiang wrote: > The parameter of target_memcg is NULL in workingset_eviction(), and > the lruvec obtained by mem_cgroup_lruvec(target_memcg, pgdat) is always > root_mem_cgroup->lruvec, rather than the lruvec of mem_cgroup where > folio is actually located. WTF? No! /* * The memory cgroup that hit its limit and as a result is the * primary target of this reclaim invocation. */ struct mem_cgroup *target_mem_cgroup; The cgroup that is stored in the eviction cookie is the one whose limit triggered the reclaim cycle. This is often several levels above the cgroups that own the pages. Subsequent refaults need to be evaluated at the eviction level: /* * The activation decision for this folio is made at the level * where the eviction occurred, as that is where the LRU order * during folio reclaim is being determined. * * However, the cgroup that will own the folio is the one that * is actually experiencing the refault event. */ > Fix target_memcg to the memcg obtained by folio_memcg(folio). > > Signed-off-by: Zhiguo Jiang Nacked-by: Johannes Weiner Please take more time to read into the code you're proposing to change. You made it sound like a trivial simplification, but this totally screws up aging and pressure detection in containers.