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 2E9D8C3DA49 for ; Fri, 26 Jul 2024 16:31:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AB04D6B0092; Fri, 26 Jul 2024 12:31:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A60096B0093; Fri, 26 Jul 2024 12:31:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 94DAC6B0095; Fri, 26 Jul 2024 12:31:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 777186B0092 for ; Fri, 26 Jul 2024 12:31:20 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 75EBB1617DA for ; Fri, 26 Jul 2024 16:31:19 +0000 (UTC) X-FDA: 82382443878.06.9F59684 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) by imf09.hostedemail.com (Postfix) with ESMTP id 6CD2314001A for ; Fri, 26 Jul 2024 16:31:16 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=qTtJdq9X; spf=pass (imf09.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.41 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=1722011426; 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=Vuq4nuc6eH8XAV4Br/RwCNhXFpkg4GgzfdIGIN52r90=; b=Aljeo5CHaHvGzR7rUuwf7O3TQ90+uS997jOS4n6zpKhv0hPDigJ8kuTu1MJdWUkRntN3Sw nq3UXZDlgjUlDWM14U1cV670gXgLWOqEmNiTyOhiNN2p2eKsAlTmiwyKxvDwFPLKfiTv3z wQL6d7wSRaSKmTKNlszNB1MwXRPEcUo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1722011426; a=rsa-sha256; cv=none; b=Z2wBSNK/7u1VKCwlvmEfCVDLUu39NvvCXbtTgulKiXYcfkQCyzWx2cfGBdfcbLUhp/Jd9g 6lHYjhZgxFonLnPl8an7xvuKA+BqCuxTC/g4QhyJIwofXo1pdc4qYII+CIvdAds+z+hB6Z uYkUB+MuEHuBacJMxEZJm+nWSIZDTtY= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=qTtJdq9X; spf=pass (imf09.hostedemail.com: domain of yosryahmed@google.com designates 209.85.218.41 as permitted sender) smtp.mailfrom=yosryahmed@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-a7aa086b077so182539766b.0 for ; Fri, 26 Jul 2024 09:31:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1722011475; x=1722616275; 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=Vuq4nuc6eH8XAV4Br/RwCNhXFpkg4GgzfdIGIN52r90=; b=qTtJdq9Xkc2KWviaWD+yo2rQgfGqdszyqFU0n21ab5Fw8/AG4FBcEMFBXlmjD3hb2h 3k/xKaxI53fvKUe3bzPtwR9QOhvNZM2MwrqyF9ht4lUzO4QSv7pCq7JQRN9zjzI1T2IB OgcbcXOGq+0335N/YkrUyHoraKsI66xrfAqjXqoHtgxvTQCGPh9UfvCQOUCQATQif3rQ W0+GOEmPZRbXiBU72bqTAwNjS30+oPlNQTHPj8DZSiKguptZYDq6fKhwZT9b3JT+1fHq uZNvvdr6fJeNI/ZVmRyNx4DK1rEX5yPEg8/ex5d7PMrpT0boKX+TstIkujfK/grV76U1 bO/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722011475; x=1722616275; 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=Vuq4nuc6eH8XAV4Br/RwCNhXFpkg4GgzfdIGIN52r90=; b=ThLEp6BthK6LOFSYpFvXJT9XFnbGOey/eWtXN3TPwV86Vo1tD/sdo1Xp8PgG7Om80W PGzh7m5tet6KCEWmaozBrtE3ULc3GRuEwuEyhoaGK5j9TQpraRd+paSE7HXNVy/d2GGN 7m+8opiS4/xFWo5ZAcT8qi7vsFIbR8PfZGXA3Hh4ejt2d2e2eSz7bDMDln3oTFmulX78 yZCpYXYqqjL/B0HP6xDk9P8P0B5/2DBEMO/9NDqP5vq4gMPhJqpXF08ZCoSVMIYUjab7 XkJu0HXp6w+OU5ndGm8qwaTJNw5sh+vkryHd5MVJM/xOfZXYJaI7dbT++ksKxzSIfILC IItA== X-Forwarded-Encrypted: i=1; AJvYcCW/Edp+d5UH3r1sUmQzBKHBBvyV+Rx/uanP4rs8MGlgg00amTmTgdcExErhbEkLy7b0HoeXc1rLtFd8g8giXcAYM8Y= X-Gm-Message-State: AOJu0YzJWtIgX9njF2WpgzgPt8Mu5Q8IqkfLpSDIctou4/4cJiB4Sofe y4mM1IX4uGVM32NVHN7sGLdtuJEHzJCKrc+1WFFWpEzQNwwlILpspk8TKO3oRIAZGKxkN8somAX IywF87EACLQCEz2KYX3cNP09a56S1TTcooS3I X-Google-Smtp-Source: AGHT+IEvl52VvZgC94HfxhzNdwQSObujtyit0xKlqftROtM76O8gCSf5kKjxUKwzqZD2swB8DN5QUsX6y7vLAu7xY7U= X-Received: by 2002:a17:907:9443:b0:a7a:b620:aa2f with SMTP id a640c23a62f3a-a7d3ff9e068mr2925366b.15.1722011474096; Fri, 26 Jul 2024 09:31:14 -0700 (PDT) MIME-Version: 1.0 References: <20240726094618.401593-1-21cnbao@gmail.com> <20240726094618.401593-3-21cnbao@gmail.com> In-Reply-To: <20240726094618.401593-3-21cnbao@gmail.com> From: Yosry Ahmed Date: Fri, 26 Jul 2024 09:30:38 -0700 Message-ID: Subject: Re: [PATCH v5 2/4] mm: Introduce mem_cgroup_swapin_uncharge_swap_nr() helper for large folios swap-in To: Barry Song <21cnbao@gmail.com> Cc: akpm@linux-foundation.org, linux-mm@kvack.org, ying.huang@intel.com, baolin.wang@linux.alibaba.com, chrisl@kernel.org, david@redhat.com, hannes@cmpxchg.org, hughd@google.com, kaleshsingh@google.com, kasong@tencent.com, linux-kernel@vger.kernel.org, mhocko@suse.com, minchan@kernel.org, nphamcs@gmail.com, ryan.roberts@arm.com, senozhatsky@chromium.org, shakeel.butt@linux.dev, shy828301@gmail.com, surenb@google.com, v-songbaohua@oppo.com, willy@infradead.org, xiang@kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: zmm7mgbndm5jz1ubw9w77h78utjsocoy X-Rspamd-Queue-Id: 6CD2314001A X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1722011476-956248 X-HE-Meta: U2FsdGVkX19Lbsni1/7CYm4hDTCzCi/gZMiKOXJXbzfyUpXNVTin9ejRyXzmGjop1KLHmEZ/gJgqBvEG+XdYGSZ25UR8hekR55k16n6iPOY1attnQhJgyNalVpWdzVm8PlOus4PHLGKOPxxiYO9e+zpsLTNYmfAMdfaguFvtCMiXUfcvQEfSIkQegfDFMS3pnb64l7lzTqZLKyrljF7CPSAzaVNCwHsDfgdl/ZPWzobmYjOs6Z18BZdf3UiXPL0ym7Y8Y9/btw2W5amoDp1woyPXnIZHmeoEpEPb+ooB97DwCm5rgXhiZZhrYuA5FlkwXPKPMKumNZLX5nm/XgV7xnnHDwE1tzsLEty2hZgEZGtTFHy188vd0lABBBmeEnrzAycmVE9r9T7VW9lzMrr9MSGLa2ijL0xnK1ngDmKcz3zmqznAaaKNS4qb6Zy2HnBDBIGnqH91r39J1z/wMSMoKsZ1cH5bCpKS/lHzYGAJ8GJAY06hUZ5WTfBgM8qqKQ/TQ6aEY+Snh25uD3aNRIdzHLCZqfDuEHLCim9AJP5cHSEjaSX4aFMe2Xyb2bulgCwsJ0LSWP2hVWn0Xx5TjjBm4yOYtk163XuYxwCCa/t3NwzXUUtm1ebAkPpeij26yzt35ofSwvLEud1gTM2F2P+DQ9ChntZzUN6fdU2E8sZpDMUcpVkT6Fl/cqGutm5+ypFtgdqyuxd2avpbJmg95stAxrdhmzgoRwchXj4MGvYjVfvYqsTw9vFVaX3quZxJ4x4DQ+1kgEzjYD4Bcq55LrUEpLz8NROSL9zAoeIyR8yfhg3ZchsqAxSDmTXevZ72Cy//o9dKhHvkVPT8y1xFIFw98WWdevyo8xZvA3WorpLWnWUg5JCeHRbwacUpD1E07ZNILOpVh8CelH71WEaQ0Z/eMPenZmODA5pMC1Ni7k2EpcxF35GOVtBs/FntlfA2SgfBVxCVnVo6QDGyxcCe30w /o3m72M/ JflkeXwPqQGCvHR0XQRhr6XOrNWLbYRDLhhw6c5bHxTbuZNb8u4OiknYo11J5I+o8sGYdu8yz4StaY/TLf2Hfe5nvnrRf3k1kmM0k2qN+Y+ic93jmBtAf+9viJniFSmpgSxhV05opn9KkrdFIwqz0/1uAA1WnDgcCzcUrYNNkPeZD8sHJS6Nm1DJ+9MzoYiTP6IEZCczBxDRP4i879ecEDEx/KuA8Jb+XjOei8WPS0TibF56SJgzzXrtR69EknJYacDau0ZFIQoV/yE2sarhTTCJB9Ew6JRvLgr4Ed74sHguaDAQ= 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 Fri, Jul 26, 2024 at 2:47=E2=80=AFAM Barry Song <21cnbao@gmail.com> wrot= e: > > From: Barry Song > > With large folios swap-in, we might need to uncharge multiple entries > all together, it is better to introduce a helper for that. > > Signed-off-by: Barry Song > --- > include/linux/memcontrol.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index 1b79760af685..55958cbce61b 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -684,6 +684,14 @@ int mem_cgroup_swapin_charge_folio(struct folio *fol= io, struct mm_struct *mm, > gfp_t gfp, swp_entry_t entry); > void mem_cgroup_swapin_uncharge_swap(swp_entry_t entry); > > +static inline void mem_cgroup_swapin_uncharge_swap_nr(swp_entry_t entry,= int nr) > +{ > + int i; > + > + for (i =3D 0; i < nr; i++, entry.val++) > + mem_cgroup_swapin_uncharge_swap(entry); mem_cgroup_swapin_uncharge_swap() calls mem_cgroup_uncharge_swap() which already takes in nr_pages, but we currently only pass 1. Would it be better if we just make mem_cgroup_swapin_uncharge_swap() take in nr_pages as well and pass it along to mem_cgroup_uncharge_swap(), instead of calling it in a loop? This would batch the page counter, stats updates, and refcount updates in mem_cgroup_uncharge_swap(). You may be able to observe a bit of a performance gain with this. > +} > + > void __mem_cgroup_uncharge(struct folio *folio); > > /** > @@ -1185,6 +1193,10 @@ static inline void mem_cgroup_swapin_uncharge_swap= (swp_entry_t entry) > { > } > > +static inline void mem_cgroup_swapin_uncharge_swap_nr(swp_entry_t entry,= int nr) > +{ > +} > + > static inline void mem_cgroup_uncharge(struct folio *folio) > { > } > -- > 2.34.1 >