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 02A33C52D7D for ; Fri, 16 Aug 2024 21:39:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 22DF56B00D6; Fri, 16 Aug 2024 17:39:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1DE7E6B00E8; Fri, 16 Aug 2024 17:39:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0A53D8D00A2; Fri, 16 Aug 2024 17:39:51 -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 DA78D6B00D6 for ; Fri, 16 Aug 2024 17:39:51 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 8417BA3933 for ; Fri, 16 Aug 2024 21:39:51 +0000 (UTC) X-FDA: 82459426182.10.33073CB Received: from mail-ua1-f41.google.com (mail-ua1-f41.google.com [209.85.222.41]) by imf09.hostedemail.com (Postfix) with ESMTP id C11CA14002C for ; Fri, 16 Aug 2024 21:39:49 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="eSmE+/9H"; spf=pass (imf09.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.41 as permitted sender) smtp.mailfrom=21cnbao@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=1723844314; 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=1fu54m1BE1Tp4feU+Pk2caY04Wi1lkN5b/KXo2lfdBc=; b=W/2Z29hlwGYESMuBaVxyo25+f7tz0P0rwogp4+lQ1V/9c53kVjRHjuqyFmYGj8niH3N637 5FiBKK7sn+BdXbM/OiWdu5Uu3Cg1Aurih9uMQp0PA7glxQPV0Eh1ca1KARfSMNZN9qXmnm cppIo/SQkpN9OjOoPjvNnsvif6O5WNU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723844314; a=rsa-sha256; cv=none; b=pLhO6VApHTMwEodlkGeCvoBPAxwYGwzuW4Sw+xRKCf6mazUR3K8RYq+dFiPuF2TSOMcGS6 iMopOXCb+0iBZ09FTOlOmkMdxCcRdxxruTTt9DeljTDR/PiwVikmjvuNs3n6jXq/9dp0zI JgL0KtGnM4zZMkD/jDJ+DsTdYCsga9Y= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="eSmE+/9H"; spf=pass (imf09.hostedemail.com: domain of 21cnbao@gmail.com designates 209.85.222.41 as permitted sender) smtp.mailfrom=21cnbao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ua1-f41.google.com with SMTP id a1e0cc1a2514c-810177d1760so789093241.2 for ; Fri, 16 Aug 2024 14:39:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723844389; x=1724449189; darn=kvack.org; 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=1fu54m1BE1Tp4feU+Pk2caY04Wi1lkN5b/KXo2lfdBc=; b=eSmE+/9Huatbkq/GK+1yZy/lVjjkCv9ch+bWNV0+uFZSlo2IZwB9tuAEXVN4UNDvfs xnJ4dAh2QYWNH/uy5ZwXAYoZhC+5gW/5JHAUULLwlIQO7JKzwASY6sRmwzlLPQJwCdq3 lBCHLT8v7hIS8mWK3DfnOt0+jHZc+WRh3LekILjJf+K9j1ugAZxYv7AaOaXK5ZnAHvnk GxyqIq6VfUCRP2FTCXoojFWqC2jb6jbJOhjy9/OAm59wBVReaJ5Bmcs2gUMAl0Ivc1Ms zYDeByanjUvEl4j3MVDLDpqMUMxayKAWSmfWQIR8KVla0XQLlk7OKjoq0CFjB9Mw362q 6UWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723844389; x=1724449189; 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=1fu54m1BE1Tp4feU+Pk2caY04Wi1lkN5b/KXo2lfdBc=; b=PxeMnSlph3wrRlfMkYyetCnxTM64eb+/uq1VfZm44v51iF6pwmniGw52P5sNCz2Baj RdPk/bU5ypig/4Ka3LGohpJ8VYF4V6xHy5TW37b9XUStORp/nzrf55pUH/jlMP4sE6mY buVF8X/JswTBJocVphr6xGl+L1UF2962/F6uavcof+jdlZIMFd4DLOyNKasY3BanPmKw r3+WNOPqt8BCZZNymM7XZt8OIgb+ZR7RzEqBeB3VyGH6/LHDBd4h7V+KNZaEFyOGiOX2 TkznDOogNIndyjcKhPQKHd4o1wYBjgeumItWumbxdwoexIrQ2Radmfjt1/DVSYmroGWe Zvzw== X-Forwarded-Encrypted: i=1; AJvYcCWWYaoQjIqRRSHFbpd/9eE/MBEtB+7faxWRPx3iRFyXKoYx7QJzTi10YgY6NELZpQ5YNr2LL7WlbPfJ6+wLAXref9c= X-Gm-Message-State: AOJu0YxEuUwvEHqzYJDVzekT+lbnetlDy8cNE8MNXHDVwRZNlODRFblR cAxmh3b9JMJfvD4nTZeG3mx+4hUi+2rKPZnt3m1R+6d92CXmIzMWYRSKNz97JthPkBl30GdgQEK l2X/53HWypg9KV+jKIYz/p0e4jdU= X-Google-Smtp-Source: AGHT+IE0EuNMhW9N8d57Iaz6zIYFlct7OmJF2QGdrCJ1xGYrXOCzVOkw98p7Pkb0c+BDIaGrMN7zTKlStB1cE7+mKuI= X-Received: by 2002:a05:6122:4122:b0:4ef:5b2c:df41 with SMTP id 71dfb90a1353d-4fc6c9a76a9mr5488807e0c.9.1723844388691; Fri, 16 Aug 2024 14:39:48 -0700 (PDT) MIME-Version: 1.0 References: <20ed69ad-5dad-446b-9f01-86ad8b1c67fa@huawei.com> <20240815230612.77266-1-21cnbao@gmail.com> In-Reply-To: From: Barry Song <21cnbao@gmail.com> Date: Sat, 17 Aug 2024 09:39:37 +1200 Message-ID: Subject: Re: [PATCH v6 2/2] mm: support large folios swap-in for zRAM-like devices To: Matthew Wilcox Cc: wangkefeng.wang@huawei.com, akpm@linux-foundation.org, baolin.wang@linux.alibaba.com, chrisl@kernel.org, david@redhat.com, hanchuanhua@oppo.com, hannes@cmpxchg.org, hch@infradead.org, hughd@google.com, kaleshsingh@google.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, mhocko@suse.com, minchan@kernel.org, nphamcs@gmail.com, ryan.roberts@arm.com, ryncsn@gmail.com, senozhatsky@chromium.org, shakeel.butt@linux.dev, shy828301@gmail.com, surenb@google.com, v-songbaohua@oppo.com, xiang@kernel.org, ying.huang@intel.com, yosryahmed@google.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: ezfkrjfxu4cydjz5yf8ueg5e6ozna33k X-Rspamd-Queue-Id: C11CA14002C X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1723844389-300205 X-HE-Meta: U2FsdGVkX18pVLhEGm2uwbnoBjJ2teFFSYaSSHCWA/IvC+Xh2qoBFocHj7MNBSWxngEV+D3BDXmsLN/lU1ZtkYo9DDxCu5ser/xzhERe27UMTeqh32/wfgginzRQaBR9iMBxz1UXu5wg1nRuu/8S60zDUPCqPdqYrerc+Qre44eb9exPao/hS2AInGsCXla1yddDizxhZoFcfuMTaXPDIf2UQpl/cOKWcpIUVQ89JJp86cQ/4yIYA2/vsoGmzcjN2iRnLj6IZSUAOHEfhW4kWnw+Ajtxo95Bd68Fia7K2jbWwFgnukxaVLCdqIwqrQNYBY0WN8mMMLbkJjkjpvKrNCEo/W6vFtRjhOnVTFLu5OoC6/yCNx0vl561NuR04L2CG1vk0Ksl1JNDwmUl5An2hkb1u+01Xg+iX9i+tPxUAc5nwgt2ClDKqtKTgBAqqezdLEw/xGSURTm+6pFZxT628zEUG9TfkYtKjfT1qaDWjEhcoYgURihuAz09zFQrbjir6a1BhevyPZeZxmCE+RDNoDJZshw1hZ77thxF4Euu4vJfD0mtBdustIeiTdNpOmtYY3K39hikz+Z6+ZAswvLivOtHP+A32khImyvNUVnuXnhukiFyoTW8OTc14OdVyCubzfNPb+/i7i15owE1IfPCSMLwPcD5g+TS1DisdN+BJqDfwHDOVjJwIzZYhfyeIIzDcOkdiw6wXCjybzR94aPx7S/pAcc4HTbnlURyHzvapvOVUAfm5hLbNLYn7soEhP7DJ7qiayN6IbPoJOuFcw/EBscALKkCztQfv9s/rZlHA5wK8adqbbIG9YE0j31OPNKO+026rq1nh/bLD71zVXVDziMfJwvMHCzPWZZF7e3NcNg7wzOTMkbXJStAeGGUQy4i1A3H3Ok/zwSBRWsQFW4RQSSVqivW1I6PyhmKyC5Malukvmgdr+AiG1m0xc+iXZU2mkRgXBrkBUDVgUyLyph GA3ql5kz Fr2VoytsAPc/Nur32EHySt6AxnHuhjs3iHuw5ES3Xqtn9KdXgsvHy6ZzVZSAshlgBFVbGVZPwYxQbCM5PXg1ClD/Oi98qYNch7/xLgPG3Y4qKoqTguAECwbtU37k+SVqt8XywQ+zf0uNICk8WgTo7FLzLPhpOczCEvTRX/u8xFFxrIMGrRwD54/0b1YNbLNtrcoktrYdEbA3yf39opPTX9gk9yNUREn1bO3J77QIFt8sxGfgvlOSjGxpxxeUDgx6UNRuQ5MHXPQQJMimAKvTFNy0Jtdgdw/ZcHua8ThM4Hpa7/ZvM7eTGn9Q4Cy2jmm4AcyXJw73J3rPaBxmIEJ89eiPnW+hHCsYURvlvot5612mT18k= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000587, 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 Sat, Aug 17, 2024 at 9:17=E2=80=AFAM Matthew Wilcox wrote: > > On Fri, Aug 16, 2024 at 11:06:12AM +1200, Barry Song wrote: > > When memcg approaches its limit, charging mTHP becomes difficult. > > At this point, when the charge fails, we fallback to the next order > > to avoid repeatedly retrying larger orders. > > Why do you always find the ugliest possible solution to a problem? > had definitely thought about charging order-0 as well in alloc_swap_folio() when sending this quick fix mainly for quick verification it can fix the problem. v7 will definitely charge order-0 in alloc_swap_folio(). > > @@ -4244,7 +4248,7 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > > } > > need_clear_cache =3D true; > > > > - if (mem_cgroup_swapin_charge_folio(folio, > > + if (nr_pages =3D=3D 1 && mem_cgroup_swapi= n_charge_folio(folio, > > vma->vm_mm, GFP_K= ERNEL, > > entry)) { > > ret =3D VM_FAULT_OOM; > > Just make alloc_swap_folio() always charge the folio, even for order-0. > > And you'll have to uncharge it in the swapcache_prepare() failure case. I suppose this is done by folio_put() automatically. Thanks Barry