Received: by 2002:ab2:69cc:0:b0:1f4:be93:e15a with SMTP id n12csp1892423lqp; Tue, 16 Apr 2024 00:19:50 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWQQpGIP/R/3Fn7Zcggabv9Vf44zmHEVGdMKwcx038ZuLndoFlKf5Vtnyxl276AKLDodfx625zN7gHB+eREf+XROxihFTvCF4TQbZteHw== X-Google-Smtp-Source: AGHT+IEbvawKKV2ifWCZiuE3IZrqfwHZ8ws8dxltunaLt0C14pGlRJP/gfikCjtjyBCKrp9y2Qxz X-Received: by 2002:a05:6808:1787:b0:3c7:ac9:5429 with SMTP id bg7-20020a056808178700b003c70ac95429mr8930583oib.0.1713251989788; Tue, 16 Apr 2024 00:19:49 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713251989; cv=pass; d=google.com; s=arc-20160816; b=fY1/E2kTKZquOBs3tG8QHWey30sq52prw03dXurzDKTqfewvZIpJVv1nqS7u66QMGJ xqHl/HR6JUX3/w5ZXqxx7BLO16z+nQ3mzQAMn/g7nNICG1V1hPiKE5O613ylT67yhi3l EgCFHDujw/9zmY6ZAKDvIZV3i/s0HWl3pzam9QnoPkDuTqNr0nXYbslk79FuIEPO1Ahy 4XHOD4EnFWo+OUm6vdJ9BL2hCg5UocV2MaAbkQczB8geTONHCVYAKIhxLsoZCOS3Y6Q2 KkCaTgZYl0NJPazPmNNfeOfXHzzLE7oDD1+fOK5J0Lh75i7eBjcp6VLUVgB31Ni4KCjD DWYQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:reply-to:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=F+Z2hNJP+z3T6EfHmF6/rzbCctrFBIWGBJWrf7iP/Ig=; fh=LGHQ9alub3JnLg1bHdfF+4JF4hFWglnAPBZ4437aNnA=; b=PNEJm5LmdSG3cngQwT5Q9EITYyh56SbU93NMyqjKMFvCwx2ICH4P+G6KSoLavxTW+J Ql9Smpq4UhWrt2bJlJug7kJFxW4lFhoQOLHaTUeOjyD6FwLIvRMs7NTK7RcziSKmFSiQ xBrfn/Yh3Ra+pjgyPRsWi3blrG7z4wW0MG7+r7bV/GxHGUzJAjYBB8Zz+yaxtGHcZlAb ncKvy784l6s3ir3rsD1zN4qjx7Jw6+rdyeApAbTjjic/Q58PBUcki/zf7Gqhxg4Hfis3 l+568YPaSedPZcKKZWGJUo3DM8HTqD5JitDugZUb9IvBmNdMLKvF2+oTgr0L9NOBLT+D lFWQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=PKHvZH05; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-146407-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-146407-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id r5-20020a632b05000000b005e83b677d05si9164768pgr.688.2024.04.16.00.19.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Apr 2024 00:19:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-146407-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=PKHvZH05; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-146407-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-146407-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 71350283D16 for ; Tue, 16 Apr 2024 07:19:45 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6F23A15A484; Tue, 16 Apr 2024 07:17:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PKHvZH05" Received: from mail-oa1-f44.google.com (mail-oa1-f44.google.com [209.85.160.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D03115921E for ; Tue, 16 Apr 2024 07:17:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713251872; cv=none; b=bN/p15nYxCSlWzrImLe2x8frJm1Wq6gs3wrUJQvvucmScpTaN3ZToa9N3kQKZnjgET4sWxEfxah9LcDs3op3h7/i+R2bs6UVhTDISZ+gGMK/d/fyGQ2f53xlT4a9t0fccv6UJVGsWmoS6yH8W9Q/PMmuW4fanKtj+QsU0G+DgME= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713251872; c=relaxed/simple; bh=kzdlZqYQWNrIXSnJqwtpoqwSYY1qBtvI2I8Lo4LwsCA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XOYu1V30DdzorjsvGTPgDZI9+zGsTNHEyrS4rZfG8zz119S4aGkD95IYK25zxfasym2F7jDqa+3C6BC65Vow0UIFcAagnWCSxlOnznYLv41AfowZlkqtIm7JVb/l7SfRVFoO1jkLJMtPhb9UnQYU4/008UHYqn8BmcoNlUF13EU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PKHvZH05; arc=none smtp.client-ip=209.85.160.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oa1-f44.google.com with SMTP id 586e51a60fabf-22ed72b0082so2724213fac.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=vger.kernel.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=PKHvZH05CSHHTCzGQYcpfewmlVPCHavBPJwc/OXAqABmm33u7/c9R4JBABsQYpms2J Pbl8rMEt+IeFkdTVVfaJ7ojwp0VIOQgoDg8awiXEQLa6lNzCDnBvijExqGgRUw5TpQEy 7jBtcaKUtK3NM/M/0R7JVFe6R/GFTixPV+L3j4XZkvaduuFDWiTDgcfXsbE3568c1wuu KGI7b8j6cQSBkT8vdC84wWzSFzfCIVUxxWgQKn2l+yBEreSFFu93nJa4h50jlNpsqtTm qy98gkus5GAaAuSbWvfSKA+9jze6OmrMozhbDgYo6tabb3W/e89kzll9KwLqPJUr6tHE QuCw== 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=VcKsjignJmjyNcx5vEvTarynMCmMMT13AnVpjDJ8U7sBc0rnVfvjy6dLLc6uZU88ao 9JSDOF4mibWi3F3kMPcYl7aw/1aJmkN4SY9RCy5o6/HPR7QYHUr8oDKrvw41z7pj8nlv hrlR6gR8KyiF/Kq+aboWGhMTjG0ojgksMFXH3mjWo/Il5OOZhkarSb6e8ReJjNF5IZSd FgXFNJDlMnNA7sBFrzvxed/n2HGdCuZ6LxecByy5Atv0LHOHx3Lxc6zQvvoqZ5qBQk+W mHRZcsJodlxsSlmDUQbe5msxCTneODTa4KdpVBiHhoEQlnaMKoRu/LvA76mY69xfhfJE UCnA== X-Forwarded-Encrypted: i=1; AJvYcCW/PL8MTaWtIymfPf+/fMzHXuTpe9DvgWdlKmoD7hc99/hd/3b2knfNL1fwpAUvh6ZbuphWUELiREjoDqpl0bnIMtCHLKXcp78D2s3e X-Gm-Message-State: AOJu0YyGF8JVbNf67mdNHZjmw2KG9/bqmSuPFLmFYwqzNY+2i/WEskSm VlK8XRGM1BLjnUeRXh5doc9rLL9Mx1XJk3t4xQjd4I2ogirRlbJ4 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 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 -- 2.44.0