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 D7645C4828D for ; Thu, 1 Feb 2024 15:34:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 59E946B0080; Thu, 1 Feb 2024 10:34:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 54E266B0081; Thu, 1 Feb 2024 10:34:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 416856B0082; Thu, 1 Feb 2024 10:34:38 -0500 (EST) 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 2F1386B0080 for ; Thu, 1 Feb 2024 10:34:38 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id EFFB24091F for ; Thu, 1 Feb 2024 15:34:37 +0000 (UTC) X-FDA: 81743632194.17.98D6674 Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) by imf02.hostedemail.com (Postfix) with ESMTP id E35A28000E for ; Thu, 1 Feb 2024 15:34:35 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b="y2IJTyJ/"; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf02.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.180 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=1706801676; 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=zPvZs4K/sfx3gwEPHE0K6OK7OOwWGbcE7kwIuj736Gk=; b=pcqjf55EP6WcXUN+cvMpVn9eyDPOzJv1Y9slN5y3zcR8QSm25PfnsuWHFtv43xMA384iCl UDJKULjISoT4G+mrJz1IJ98u2r+3bVAHrA6i6pMcOYfACeH4Qmiars1ip3iLLIIMmcS9Ap ZQSb6uIMwuC+oTUvlBfyvkdZyJ17sbw= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b="y2IJTyJ/"; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf02.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.180 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1706801676; a=rsa-sha256; cv=none; b=oE0wNDRePwdkt/tLvVKn+B2E0thl4iAPfLJWJ1fU4zX/lfjKWTQKEMugvxlkP7aju01S4M 7s6ROs7tJX2as9azhktwe2I0SotYOj5PZ2qGmKiadK3dTPhuOKslHj/jneq9TkJmD8zv16 ppLo0fxFxuSAiOnZfYddhu48u041kwI= Received: by mail-qk1-f180.google.com with SMTP id af79cd13be357-783d84ecb13so77865185a.0 for ; Thu, 01 Feb 2024 07:34:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1706801675; x=1707406475; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=zPvZs4K/sfx3gwEPHE0K6OK7OOwWGbcE7kwIuj736Gk=; b=y2IJTyJ/tz/8GYlxT+L14AP91cDDWd4s3H8/w6erYa0Rg/lcsSutPMBxLqrxDJ3eos bQKiPfeFZCo1Yr9umBcIf2KQLwXn5QGaRlb7WuUoZ5p4rWDpZ8DsE2JMZxOQMj98ETCu PlMEphv7dkGP6bE27y797CYIm9C+pDOv8+qT7nojtraCgAvjmDqEc6ohj9enlnuF2cBn kgc8ItZBJasPXihiEQ0GtWGDNZJcd3DAn7R499PWs6ld2T3dM9FSdkKUiHyHue4zh3Tu 6QcyXFi2ZMuySKUzYeSVE6FsRoNDHBSINM3QBOWQsLpX7/0tylfceYy70gwzjPfwRHiW wYdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706801675; x=1707406475; h=in-reply-to:content-transfer-encoding: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=zPvZs4K/sfx3gwEPHE0K6OK7OOwWGbcE7kwIuj736Gk=; b=sp3p3aEj6VxRWvGA10fgyQGU6R1deFxNstRtbhRRwIt04dHA1UOMvMmYpkJr002T/b Z5KIwI/BOMEtLThy0jKnwgbJoXYZLoHphlMwv6twcLCNCgY+RftdSv84aYOHHIosGoDA 0Wz/UqtVtsfraStKGTkFoTEvIW1qO5rKTr0RzIvdk2nmaTGGJfL03oYiN8dQs+KzZ1Gl sBRpjz/mctYuYM38eqGUTN/K3Wixn3f7BhYHgNCI6DZ25G4DAs2EkTQ+n5tS4OayKtCP eCLyb/oKuz64KH0V7KvHox3uFTYFQOHn55bZZJB5vMWkwKYNLhK8xThDjVQcfkuS6ZXF Ie2Q== X-Gm-Message-State: AOJu0YwKYVjq3iv7w2Q1D9OTyxH94R1bos7nYH72jt8+R6x1/ttA0Hsf OiXYwGmbNM4OlONhb0yY2V+5YMu76LV4yPY8BC/drduYFOrSiY55QRLAvaWaDAo= X-Google-Smtp-Source: AGHT+IGi/XmGKqr5Cs1gVK8YipQ2XHKTRdRpKkoeUGmO9YOgPFP2kvzWajFfZcZoTktkg1gfV2ePmA== X-Received: by 2002:a05:620a:26a2:b0:783:5b21:5746 with SMTP id c34-20020a05620a26a200b007835b215746mr3935847qkp.43.1706801674936; Thu, 01 Feb 2024 07:34:34 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCWJY1BAiTTEZMvicUpiSL9Kon6fKRwF3bWl6PwAZJC7iyhfRfrydfsJ5C+fXJA32s9ApqaBsBBEUHSHo+Kkzhp5r3fZeOOpdfU4yoeNqMjLSkqBvLpTGA+NCh7wpjyeS0dIhEriuuIqIg0XlRtefRk/FxGDcMT+LJ3nk9UrZ8+YDxTCeYS4HCV65LhB3VeDXyQLjxCuN43UvgZ4s3C07VVvH27WkDy02wbD4TIB90t8t01GhyO8NFCmWhrz8g1bfvvRi2zXbx0l7ONCw4n9pMZkgp2Su7ETPyA8mZxI6hVrywGoAd7GwZD5BdclWZjquE3kE1d8XMDVDzKuORnJ7nLiTwE3KbgWgr0+5ojToooEIB5Xb08GaDDWTwmCQqXczCpIp3eKjOUeaIOtORQcfOu8Fg== Received: from localhost (2603-7000-0c01-2716-97cf-7b55-44af-acd6.res6.spectrum.com. [2603:7000:c01:2716:97cf:7b55:44af:acd6]) by smtp.gmail.com with ESMTPSA id vy15-20020a05620a490f00b00784048d795asm2918077qkn.108.2024.02.01.07.34.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Feb 2024 07:34:34 -0800 (PST) Date: Thu, 1 Feb 2024 10:34:28 -0500 From: Johannes Weiner To: Michal =?iso-8859-1?Q?Koutn=FD?= Cc: "T.J. Mercier" , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , Efly Young , android-mm@google.com, yuzhao@google.com, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm: memcg: Use larger chunks for proactive reclaim Message-ID: <20240201153428.GA307226@cmpxchg.org> References: <20240131162442.3487473-1-tjmercier@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Queue-Id: E35A28000E X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: dpq1bkgfiukongawae4bu4k6rm7zaeso X-HE-Tag: 1706801675-583461 X-HE-Meta: U2FsdGVkX1+GiHn/JLZmRTJ58OdXXXp1T7aiL/8uD7yvUi1Uhe9FZsCXYq4ZMC0v77bAL2rrYBcRWaQBto5LQwLI719CKLu5hPrzRAAEa9exMac3vNZfyjvb+TZS5gqrLk4DK+uZSKSCCNwtQagSb+33wbcDTj0j/w7gp3eyi/hhcAu4Y7KhLUIH3QdIIeQJfb/c5Y5xlkPIKcBc6WKoN+YXWPBJ9CGoGmVyV0I+hjXIGyiXUEHVgkJuGShSgoCGIYJf9Od0RdyuUuJ4b8BCIjpa92zXY3BUZg4TjFQxpxJbeUDIcfwDQJRgWCRYC1H2KuhgMBFUIjv9AxCh6N4s56wwQgBgYfrvEVJQnHchH41Q/WGX5yc+Y+8PUUKO0LPnQUxROny+QCp4wuaAQzmK+D9Ser7qC4Gkwbm+lo1FGzJ9PE9XegFK+Y6epUOYW4vYwGAnMxWuvlFpRaLKegJWW6TMK7edkP0lMjuhVt9ch/y7HNVYXpy9snuVryhBDTAq7XIQCVlIngvelzO67Ns0q6PrA0iZ531g0oJENMm0C2UtpfDdKTgr3s1WNFNpEWqu/CihVU+gJ2i9tCq8jxVwV0uiKfgxEGZ0fIWC/kWiT9vzuRfWmhZ5QwotxEMSi5X6lbj1hZPQRQ+/7Cbje+gsZ23c2suUjcqqOWfsgRfOCGZ9aUQZWbJid8pPpDPsUWFQfZbjWwy+i7iCJfrym5+nXOdDv4UWvQVlk0QtXiy067R9qfZQeYhGu5VSJNQbunW8X1s2kOddzzj5+Thbr6juKcGcMDVcLK3JTO324SGEaOczDTeR/+wKXsJHYO8oHvS0WE+HBdeAGV8v/hzj9M8+iYm7GqAlXd5pmbYXbJg13rG3w3uCjJbAe3JEFYbojrdQZ66vp4+B8EVWvPtsmVMX7+ZIdlQ1yL+xFQ7Mru5royXCXN+8KyfqQvUF5htTS+BDOC8aXfwrNuSWS0KCf2n ieZ3Uv6H QHVdZnuqQ4MTAAb8FzR1yzU70B6qCqTK3WJzVEnpCFZftqnVNu/QGszFvix16VN4tyhIjIvVTuXdB1CLv5E0HYd159ApxPGJd7x7IZFZ5DmjKscuu0LTCHdHkE+oCceyX9WOUDtlhHLQFSJrQKRtknt6oTrhLhBpFxd46iBKybNi34gtJiAMp/VWasMdNmtRdz6mv476P1ZWEKsaUWp4lftYDxtxeZgIFzukSACJe5AbchYl2vSMiBz4Tbuxu86WgnJSSLohP/v619wWeQBo8jNOaXF2Fwg50a0ZMXii6bYp8QXSx2Y3BxJ3cplNFx6lyW/WlXBVotW28HQ0CjqdbRBvquUGLVBbGcpQhR1K3D/6NB21iExZu1IS3CBpzVVVGlzePpJsqQxfFKtNKaiiOCOFTSQNXRsjKxx2lK8cZiXAEovw= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000005, 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, Feb 01, 2024 at 02:57:22PM +0100, Michal Koutný wrote: > Hello. > > On Wed, Jan 31, 2024 at 04:24:41PM +0000, "T.J. Mercier" wrote: > > reclaimed = try_to_free_mem_cgroup_pages(memcg, > > - min(nr_to_reclaim - nr_reclaimed, SWAP_CLUSTER_MAX), > > + max((nr_to_reclaim - nr_reclaimed) / 4, > > + (nr_to_reclaim - nr_reclaimed) % 4), > > The 1/4 factor looks like magic. It's just cutting the work into quarters to balance throughput with goal accuracy. It's no more or less magic than DEF_PRIORITY being 12, or SWAP_CLUSTER_MAX being 32. > Commit 0388536ac291 says: > | In theory, the amount of reclaimed would be in [request, 2 * request). Looking at the code, I'm not quite sure if this can be read this literally. Efly might be able to elaborate, but we do a full loop of all nodes and cgroups in the tree before checking nr_to_reclaimed, and rely on priority level for granularity. So request size and complexity of the cgroup tree play a role. I don't know where the exact factor two would come from. IMO it's more accurate to phrase it like this: Reclaim tries to balance nr_to_reclaim fidelity with fairness across nodes and cgroups over which the pages are spread. As such, the bigger the request, the bigger the absolute overreclaim error. Historic in-kernel users of reclaim have used fixed, small request batches to approach an appropriate reclaim rate over time. When we reclaim a user request of arbitrary size, use decaying batches to manage error while maintaining reasonable throughput. > Doesn't this suggest 1/2 as a better option? (I didn't pursue the > theory.) That was TJ's first suggestion as well, but as per above I suggested quartering as a safer option. > Also IMO importantly, when nr_to_reclaim - nr_reclaimed is less than 8, > the formula gives arbitrary (unrelated to delta's magnitude) values. try_to_free_mem_cgroup_pages() rounds up to SWAP_CLUSTER_MAX. So the error margin is much higher at the smaller end of requests anyway. But practically speaking, users care much less if you reclaim 32 pages when 16 were requested than if you reclaim 2G when 1G was requested.