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 8A43BC77B6C for ; Thu, 13 Apr 2023 11:26:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 04CF96B0072; Thu, 13 Apr 2023 07:26:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F3F0D6B0074; Thu, 13 Apr 2023 07:26:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E558B900002; Thu, 13 Apr 2023 07:26:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D67BE6B0072 for ; Thu, 13 Apr 2023 07:26:21 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 8A6AFA0348 for ; Thu, 13 Apr 2023 11:26:21 +0000 (UTC) X-FDA: 80676139362.29.E947AFB Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by imf02.hostedemail.com (Postfix) with ESMTP id BB65580004 for ; Thu, 13 Apr 2023 11:26:19 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=5X4Hzoh0; spf=pass (imf02.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681385179; a=rsa-sha256; cv=none; b=Ba47c07N3L8N2+V88lOaB8qE/3cpOdfwDs89fLNvGoIg/r4yCYP4mpRKR85feqfWES3Au4 Jp5kYvge2eaF+oota8wEidGGhP7q+xyCWOyV2Y1ZbB/ki7Rbu9gOtbXK/RZvSEefTLgL5w GARqT/U06jmhL9WfVINksj9C810wx1s= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=5X4Hzoh0; spf=pass (imf02.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681385179; 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:dkim-signature; bh=/msDqown+gsJEVmOfzlTbyMpOATpYD/kAuVh4jdSmEQ=; b=lUUZpDInzj0RkZQK6O/lu27JL+tP4iD7d4K7ffj9ypNzOs/hHtP6g0VIK6YMnl5WxXzEoH utkAGFvq9hU5KqvPYx/v3Y9FNG129/8A+pix4K6cHHfwLKmA/h8+6HXcLNFDvT7WFQ+qtH Hv/eSj16dKj69N9VOlF0MPcxsjyBXR4= Received: by mail-ej1-f42.google.com with SMTP id q23so27071683ejz.3 for ; Thu, 13 Apr 2023 04:26:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1681385178; x=1683977178; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/msDqown+gsJEVmOfzlTbyMpOATpYD/kAuVh4jdSmEQ=; b=5X4Hzoh0yu7xqdwwMJzwItqZb349+O2XmbtGc4wZmScFAqWvlR41kAHd/G5vSmTdDF TwSmjXYnk9aPqmBudu5HRQ7zA/ir998f3C3tqlhsSrkLHO55EPx0PfVVmMpqYWWkOJpb imDolCRSJyxiT9KHMkA7gTmjWXGiEGjBwi8klJF2gTlMsBjFY/21FgAgdWU8XajThuUA lwN8zY2rSBiCbMYkGiBVOd5ryjonht9HXZclfR96nSJog5pVB2LQaE8JGIpPAk6Z/xS8 f0qjtt+zifDG3ra3wpDJdgipm+7YwCPJqZAbXKu2sAgEpn5ndWNmktL/wZgIKOUXGXaU CRxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681385178; x=1683977178; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/msDqown+gsJEVmOfzlTbyMpOATpYD/kAuVh4jdSmEQ=; b=LXBhAvChfPCxASiqqQygJgukYoHa7LOxE2EVUYRZ8j9gQQ70xmUdp6CrgJkOG4M0fG DDQ2RaBvfHE5AhOV6eG00aPoRv1BEUWb9AKbehCV07H4SrkDyZt7mdWHo/H2ui7+6a9z 6boyMfFz7h9A1klPqFqH2S18bhpkXjjNVvYgndvKvnPJ8hEdHqSrHWZXkptLWpida+8a 04n8NtlBH8m4aW+SJvI21ru1vp6HfylREcHsx1HT7m3qL/GLrruFo5S068tgML+uf9Ji JMSp6c47zoEG3XWxGbYX5VJ1jLrfw7mwbBNgvkiPtqxndk5cLYR5qjwrzYEEDW/lES8e ic9g== X-Gm-Message-State: AAQBX9ckbYDOzfcx1VKockmFEaJHl2hbZr4dW6YY21F7sR+5rFtKeoFq 9N5oKkFoJgRCeYnsxRF9InJypmqmgkSelDzme7+eeg== X-Google-Smtp-Source: AKy350YRtD2zTQ9+KiMShjAtzx5fwXvp2NVZX/rprSwV/8Ili7SCqCDXg2Nd5gR33WR1gOzoPiUyEAxmvMQmLGcaIa8= X-Received: by 2002:a17:906:2c1a:b0:94e:8e6f:4f1c with SMTP id e26-20020a1709062c1a00b0094e8e6f4f1cmr1086817ejh.15.1681385178080; Thu, 13 Apr 2023 04:26:18 -0700 (PDT) MIME-Version: 1.0 References: <20230413104034.1086717-1-yosryahmed@google.com> <20230413104034.1086717-2-yosryahmed@google.com> <0340c57b-dcec-42ba-eb6e-dd5599722ea4@redhat.com> In-Reply-To: <0340c57b-dcec-42ba-eb6e-dd5599722ea4@redhat.com> From: Yosry Ahmed Date: Thu, 13 Apr 2023 04:25:41 -0700 Message-ID: Subject: Re: [PATCH v6 1/3] mm: vmscan: ignore non-LRU-based reclaim in memcg reclaim To: David Hildenbrand Cc: Andrew Morton , Alexander Viro , "Darrick J. Wong" , Christoph Lameter , David Rientjes , Joonsoo Kim , Vlastimil Babka , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, "Matthew Wilcox (Oracle)" , Miaohe Lin , Johannes Weiner , Peter Xu , NeilBrown , Shakeel Butt , Michal Hocko , Yu Zhao , Dave Chinner , Tim Chen , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-xfs@vger.kernel.org, linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: BB65580004 X-Rspamd-Server: rspam01 X-Stat-Signature: nerhwyyahdn4nmoqqzrsepagjfehx3b7 X-HE-Tag: 1681385179-91129 X-HE-Meta: U2FsdGVkX19hrnL4SFII441ezzuT6CST3ZIAfeqhjb3EciZuFJX9PNcxnVcOkt3TRMpO3iqbGD2k0bIQLgoow7MuOtOi93jGlXDIcWTwbBQFiYKFG0ZqDAqafSm5TG6JLeZOMyqb6wAMzn6SALHcO0mIounhUzsL5gpBBJcoi6LjuK8LUdt2tnOkoILgBHdnMHO74pMDQU2yNdprYQ6B+ZgfudzhANzPtjsEZmVmn7dTew+s7KtcH3SVSdokE4/NkY8Slax8Wss1NNLE7ELPf2s/K+v18gcrIQOYNq9xATOVPZhoUi+YYLjoh02W3aLVdAh1re473B9gYQTbyGEI1Ovcpqh6smbPnRADfPnoY4fDHNvcakb0SUy5eDYXxZ/JuwIV3gAApF9s/+1Xd15k8dng3ZPs9dpDWMFyswlCVzp8yPjwK2Anud1FuFeEAnFGiEETHuQmnlGi+CZ+o2sNw5U6Psnh6Bj+U8VdBJK70gMwoMZ1kp41ZCP9QYDqrS1xFfJCSZHcJV7bjEU0fFxSs/xObXZBwYH/CshpG4/TUi6o61sgwwcqA++hicSnpgLPfSdnMRn5WHX/jTZtq5XV2SilP34C20jPK7eU2a3Ib3hC/pbajH9qF2iezNF+bmeqEnxvumtgKy/G5+DgVSy2erIdYHrww2NZ0/F/3KrZ3aFLYZalpOBWzQH3gIrA75uKuRp0l3ikqeKpv3X5UEYOIWTPmapnjHjlT/ZKvaZOjbk3jcJ7N4hZ7G4LVzf4HgMBcFik3sKGtySf5doYuB2Eg//t4DYD4Y1H5ilh318eWrS9ffIBcv1hr4P3bui9ZvHat3RamSenp9jJA1hWsSNFvVcLeEcFtyXJjtNQdDtzAx1pF5mCquvI7/X+L61ybFWH08xQH9qwd1xg10tJp0tXT3aCeFbAlkYJN6prVB6OpHjDYeRFpjXNU0mGI1piLyFjt7P+t2/zdwtU2g6cv0k +QVUWh+w NTnNuvOmX98fNyJM9UHfCdtNPqqoAOe1scrpk80DWlr/uemWpdAi1bp98GgU+9/+z65XPFMleuN5HxuwtJxKgTmQNvHKWjVKKb7qF7uCs1Z2R9BOcoFs7lnlzjLlcs/pkeyYaofMTrb/jlMFOlJFcW3HMIENlN66KjrYpCpH9GhB+8sKZZEUUkwCVOMTmtQ+aSeXDwBs/+uCylNx8xP08nqZ2WoFyD0dcVqKCGS4iW7RfDrzCVEYB01bg0cRYxmucg2cglPYXh/rZh3ojyg5s4maOpnc/6uhrEXx+FEUBn5xANjbOYEqWAFpVGLSDVPWGsDivWBgpEsTx/CCLJeLsbJIPlqsJISAxBmNy2ag9bdvRV3I= 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: On Thu, Apr 13, 2023 at 4:16=E2=80=AFAM David Hildenbrand wrote: > > On 13.04.23 12:40, Yosry Ahmed wrote: > > We keep track of different types of reclaimed pages through > > reclaim_state->reclaimed_slab, and we add them to the reported number > > of reclaimed pages. For non-memcg reclaim, this makes sense. For memcg > > reclaim, we have no clue if those pages are charged to the memcg under > > reclaim. > > > > Slab pages are shared by different memcgs, so a freed slab page may hav= e > > only been partially charged to the memcg under reclaim. The same goes = for > > clean file pages from pruned inodes (on highmem systems) or xfs buffer > > pages, there is no simple way to currently link them to the memcg under > > reclaim. > > > > Stop reporting those freed pages as reclaimed pages during memcg reclai= m. > > This should make the return value of writing to memory.reclaim, and may > > help reduce unnecessary reclaim retries during memcg charging. Writing= to > > memory.reclaim on the root memcg is considered as cgroup_reclaim(), but > > for this case we want to include any freed pages, so use the > > global_reclaim() check instead of !cgroup_reclaim(). > > > > Generally, this should make the return value of > > try_to_free_mem_cgroup_pages() more accurate. In some limited cases (e.= g. > > freed a slab page that was mostly charged to the memcg under reclaim), > > the return value of try_to_free_mem_cgroup_pages() can be underestimate= d, > > but this should be fine. The freed pages will be uncharged anyway, and = we > > can charge the memcg the next time around as we usually do memcg reclai= m > > in a retry loop. > > > > Fixes: f2fe7b09a52b ("mm: memcg/slab: charge individual slab objects > > instead of pages") > > > > Signed-off-by: Yosry Ahmed > > --- > > LGTM, hopefully the underestimation won't result in a real issue. > > Acked-by: David Hildenbrand Thanks! > > -- > Thanks, > > David / dhildenb >