From patchwork Tue Apr 16 07:17:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kairui Song X-Patchwork-Id: 13631449 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 283B0C4345F for ; Tue, 16 Apr 2024 07:17:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A0F086B0092; Tue, 16 Apr 2024 03:17:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 996736B0095; Tue, 16 Apr 2024 03:17:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7E9276B0096; Tue, 16 Apr 2024 03:17:54 -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 562E46B0092 for ; Tue, 16 Apr 2024 03:17:54 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id F16E812091E for ; Tue, 16 Apr 2024 07:17:53 +0000 (UTC) X-FDA: 82014540426.09.64FE00B Received: from mail-oa1-f41.google.com (mail-oa1-f41.google.com [209.85.160.41]) by imf17.hostedemail.com (Postfix) with ESMTP id 2EBCA4000C for ; Tue, 16 Apr 2024 07:17:51 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LPFlcR1D; spf=pass (imf17.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.160.41 as permitted sender) smtp.mailfrom=ryncsn@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=1713251872; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=F+Z2hNJP+z3T6EfHmF6/rzbCctrFBIWGBJWrf7iP/Ig=; b=X3GrJQIdHWd8yRBhdu6cmwSHXI78GOO3bkW5R3E5Rr3cJJBjYwXl0yrQv1MwMDIF4CHwgw Bi28bh8NgQABL3cTTTRl/aN/HWmoiITQVBMSxZnpyWE9qSSx3hAQfb/jEH+qdXYcDzoRpz b8DNJoFJWQuGOz5jyvz0cA9GZz7cswo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713251872; a=rsa-sha256; cv=none; b=aRHuBl0kq4ZywkdkZYGwZeslyHFTyp7vTm4W0+nCPe/X4Uu9Nya6RedZgWW/x1VQYWPNOm 11SeJ159yuo+JEO58sprvbHFRtafYEfRXDGO1M9AxGIxnnBnHkcjSs/Amw7KnSogGiIngP JD5S1w+gga2nUmRONPuKisFuggAVwAU= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=LPFlcR1D; spf=pass (imf17.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.160.41 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-oa1-f41.google.com with SMTP id 586e51a60fabf-22ed72b0082so2724218fac.3 for ; Tue, 16 Apr 2024 00:17:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713251870; x=1713856670; darn=kvack.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=F+Z2hNJP+z3T6EfHmF6/rzbCctrFBIWGBJWrf7iP/Ig=; b=LPFlcR1DkKNwgFcVGT+mcoTArg6m4O1dLTN3JRoq87l9GhWWb7thRiatGjToH8aWTX scBtsVJ6DbYjME6DJod/clHRzDszNRbw3TuetD5vkVXyhTaDZJO8bjyL/dzcVmr7XBBY RiYdoGuWjRU0jRcWaIeQAW9ceJu49zL3H5pUM4OljYP4m4F8jw9z/IObDmXBup+uEiEg WZvsZrDy7mpMJ8tkMSLpHK4FCq/De1xa3POhX1xl420wCk84fHe1FIweXK5QCxZ67KFN u9WCDCfwIYyyFk7noxm1HroJxdIrKQgFkEwcYRgF1X+QJLujCSL98iuCCH9sup+syukm J8gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713251870; x=1713856670; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=F+Z2hNJP+z3T6EfHmF6/rzbCctrFBIWGBJWrf7iP/Ig=; b=IezYgETq/CCKqOjfbBQkcBRDgfwhEM0oUrHzLs/NVhB8y2I/27OtUh57J5jib4KWs9 0HvMmAtWWvDD1M5mRk1lS/ult5ZQQWJCDQnPDOzvFTfgQOodSwwiLfDAZjk1NnElvV1o qC3/lFpzMgkcaH8MxQo5QkJwxoYBJutySFh38vfg6Sf35UtcTpZAvDAmNJ8/MTxO3fkp FA7zD56NwttLPcGpluqA1uiorbE4Ry9KA6XA0bhBWqIUAeiccZA4L+4P/Uft0hSQJ725 Hk7JfGQgUeHulFNJZNnUTesqpu6/mToupG2NrqkklbhKD3uEWbmK+Em4NMlsp1YlcXlD 03pA== X-Gm-Message-State: AOJu0YxQXeJ2iGoZhUK0I44KEmDU+MM2GBltDLnUDillempf7HqQCo1j 3IJrbODT5Y4Qb1MIsG6FYY0SGB6re0onxoxOWQXPCYFLRIfPMrE71j0m8YIJ X-Google-Smtp-Source: AGHT+IGTlCysBm/YOmaGrEGYXumxXfgrNAPvhr2uKFZUXitXWelGd6XrYs4GaN3Yt1Z5t4vLHkZtFQ== X-Received: by 2002:a05:6870:7312:b0:22e:e0c5:c729 with SMTP id q18-20020a056870731200b0022ee0c5c729mr15807231oal.3.1713251870398; Tue, 16 Apr 2024 00:17:50 -0700 (PDT) Received: from KASONG-MB2.tencent.com ([43.132.141.21]) by smtp.gmail.com with ESMTPSA id lr48-20020a056a0073b000b006e724ccdc3esm8340029pfb.55.2024.04.16.00.17.48 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 16 Apr 2024 00:17:50 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Matthew Wilcox , linux-kernel@vger.kernel.org, Kairui Song Subject: [PATCH v4 2/4] mm/filemap: clean up hugetlb exclusion code Date: Tue, 16 Apr 2024 15:17:20 +0800 Message-ID: <20240416071722.45997-3-ryncsn@gmail.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240416071722.45997-1-ryncsn@gmail.com> References: <20240416071722.45997-1-ryncsn@gmail.com> Reply-To: Kairui Song MIME-Version: 1.0 X-Stat-Signature: qqks789hiegqaf4k8m9joafodihzmuyx X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 2EBCA4000C X-Rspam-User: X-HE-Tag: 1713251871-655627 X-HE-Meta: U2FsdGVkX19/PJ/gOJud9bTiLYoSBXq9S5ZU/qGeyBiE4e/or9GlU/v66XiQkR6ksHvZSETxq6OIikcavujUD8yB6dc1TSxIe6auzfkTRDn1I0xcdKimpEIrvBALcf8qXWrUWwsMNKUFprlKj0jlaQJ0kQlyOafO72O6NzbJplJpuG0qHDAlvy2RRsaYGq4NYcdz03miCaw711b8X6UxK7VyrlpqMuqFvL52FJnpGlui8PLlzUCiXAUOKwSaDEgJHwC4WaklTuWw/AkXQEPqTCjgBaPf+UPb+9EDULRb+ebEyBVOwLRG5jFKAFZnhysl6+xBjbVto9CHploBPENMEoxmme+rnn3C0Mm/T/OXxZ1dKUdv5SCBGkCa94umAffVrQMy2+809PRnAJxY/Bj2H0ifdVcLiYCrYL5e8ICZDitT9MWgc3x0aYhf7UxMKvuwVGlSSGIy+q5rmJEQdh34HOhnzkuacjuFIX7TXiEyzvxX2R1CkQPmoHsiqw3tDlsUTagRvm+Wn91ZVCZrUdia/e6195rp+ZZQ3wyrNujCYBsUXVfE/AlVDtnyC24eGs9UWFR1cyiEB2XneE3MiWMtRLgsV4AnBSM96mp7ER4/N9jfAEWCCcsa0OIFZvMXqXnWlJyRGPc8isGNR0WhsKhMWWxLEpSUv3csXAudIx6fEF+LotF2dmrm6WOSEEX8/qGgSh5S650JAKFNPcry/rdt6Nu7LgwO9Btw8AFXputHGuNRFHJxzODEEGuc0I89HSFETgb0QmJtVjt75t1fSidQBcx7+v+FxAVCQ1ilU5qh72Igsm6e0mqR4AwoUduGRKS6GhsilrD9FjH0TMKDmeBPsK+sMjXQwPBn4q5vwWfBsVuqatMxe/0tYfIcMMngjnqx+/DC3pUnntbjJia+dgU6bwSmsPBFrSpsxliilpMZCGEXSyQngN9dSIIhHCzeaYhBiuYT+lBvYTZCdkXO3Z4 D1+7Q81R 5J6bvx+V77tbLkjWNvvCj5fK5OVdEHDqHHOErWVnbSm3GK0jh2d/T8Ejjt72sm2pPbPcTZZc3cPViVaBmWdJLxCK4l/EtjhHcjNIe8w+3B5Mg+f7NA127aeAXWpOCrW/zvsNAWi9eNHkuLd3g1twvADWrs+Gp4JDwQSylHYA6mlhXFTlSDLL5aPnhpNaKXdgOzYIzmfdMjhb7ODE4rcTntRuKfQ2p9yj4asfQdgOjp1Fk0Wgl7RfxwQYOD0cFOUgMi+HrhQgotZayHXGNBAvGnNXERyMbXDieFfNC42HpMA4ONn2yhsc+lxOFZi2DJH/lPNZCOaMsdI5eApX1KsJxfOMqq5f6TnQBsteplvAE7l+HnmcDJuj52oXmcSqF90clzQRs0U5PWcNkWG7qUlE6LR/G/IYMVzOLcI+jkhAB+h19+xRl5mrEFxmeDXFLxztCMcXdR61UkI5CrCMv6zw8uDPAW+SCI2v2c6rufYopC/LdzY0TfDZyN2JHrJwC1Xiq6AsQbu4/HiODXr/HtMhfx5jR+/9yhZbbmUCLqL70YGXZZYqdW8zb7MXWPTWqLOP3uDMe48Ep0KhXrFj7myfv6vHtgioZ5xzIL8vKkVets6KLxa4c9a+ZihKYovGukiFIJT5BMrj8IF3BBcNh6g8/9j4EWB5LMOzQlrw+bNmAunKRxQYe7qdEkFeu/w== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000007, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Kairui Song __filemap_add_folio only has two callers, one never passes hugetlb folio and one always passes in hugetlb folio. So move the hugetlb related cgroup charging out of it to make the code cleaner. Signed-off-by: Kairui Song Acked-by: Matthew Wilcox (Oracle) --- mm/filemap.c | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index d447b36ffd41..7f734b7ad273 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -853,20 +853,12 @@ noinline int __filemap_add_folio(struct address_space *mapping, { XA_STATE(xas, &mapping->i_pages, index); bool huge = folio_test_hugetlb(folio); - bool charged = false; - long nr = 1; + long nr; VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); VM_BUG_ON_FOLIO(folio_test_swapbacked(folio), folio); mapping_set_update(&xas, mapping); - if (!huge) { - int error = mem_cgroup_charge(folio, NULL, gfp); - if (error) - return error; - charged = true; - } - VM_BUG_ON_FOLIO(index & (folio_nr_pages(folio) - 1), folio); xas_set_order(&xas, index, folio_order(folio)); nr = folio_nr_pages(folio); @@ -931,8 +923,6 @@ noinline int __filemap_add_folio(struct address_space *mapping, trace_mm_filemap_add_to_page_cache(folio); return 0; error: - if (charged) - mem_cgroup_uncharge(folio); folio->mapping = NULL; /* Leave page->index set: truncation relies upon it */ folio_put_refs(folio, nr); @@ -946,11 +936,16 @@ int filemap_add_folio(struct address_space *mapping, struct folio *folio, void *shadow = NULL; int ret; + ret = mem_cgroup_charge(folio, NULL, gfp); + if (ret) + return ret; + __folio_set_locked(folio); ret = __filemap_add_folio(mapping, folio, index, gfp, &shadow); - if (unlikely(ret)) + if (unlikely(ret)) { + mem_cgroup_uncharge(folio); __folio_clear_locked(folio); - else { + } else { /* * The folio might have been evicted from cache only * recently, in which case it should be activated like