Received: by 2002:ab2:7988:0:b0:1f4:b336:87c4 with SMTP id g8csp19358lqj; Thu, 11 Apr 2024 08:48:05 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXs6TXCM2Eim+mJGxgtSoieSLbF3wbSWPtE6Z4YdOE3QmksPxVbgX+USi42jD11hgefIJH6155r8/7I6Bn0ce5vuTAYB+msjmCOZw79lQ== X-Google-Smtp-Source: AGHT+IE6TzhYyLJZObJm76jE/O8ZfMtXumJCNylTuYSGrUd6zmUm1cy0qu+MpGJu2NjRcnzP+NEx X-Received: by 2002:a0c:c346:0:b0:691:46ee:6abc with SMTP id j6-20020a0cc346000000b0069146ee6abcmr123920qvi.3.1712850485379; Thu, 11 Apr 2024 08:48:05 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712850485; cv=pass; d=google.com; s=arc-20160816; b=htTlNL3Nebj+tbmhiSMy84lMknjChx4O/GxZu/OrGrMeMG2bt6ywRM0ZYmni6aAOxG PTVhxgz7TdNhezm8FFgJ5Z16q2ZFcx0ZDFfOuQ411mnB5uNVmLfa32pAcIATdWfVogJz aOhemg9H4D40jPOnFhW0Lb/lzvBLlfdyjshdRTDzCrZkKcci9y790LtRrEQMXAt17PTL 7YfJ/698yK8o0xTF9Hmza1OuA/yNco3p2xHr0GekzhYPFTeeSBRFacIIKiCWXQgHCUse CHKeyjqPCpBXDxwLS03WAT/fsiHQj/fF6ZjhL6j/Xo5koq60u4cQqipm2JvI6+S7KybP 3tDg== 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:message-id:date:subject :cc:to:from:feedback-id:dkim-signature:dkim-signature; bh=KdSkiWAB+vDwE4VKWUPrvuNlR/TihrAEV6L79eFI5ZQ=; fh=xIeij5TZVds2/7rAeanmcYsCiNHMS+hbvVcY6F/xXTg=; b=YlaK8yZXYxhQ6zvG7NkzXfFCt1JW7j/opqZA/vgeWaPDf0XZIsa4i57eUpskHveRgy M98+FbtbcGPFzLjo4MO5b3SP7ODH9qo0Kxq7Kp3qQzkmxGX2tYmFi1vkNUvqySn83dDE A3FP2MK1J50a7/PKc8T07qSTmeyPRa+UKWpKauQirP0I+KHvd1ZG58YPg0p0W6PfZGKq SZKHetJlNOh0I9a7dUq1IcKVBAda5jEfqCbNUl8WEaO38Y6vZrOEjapIS3sRId5m9TzX U8CXn8sgb9gabpolvLEvbgvXZGAQsPOEc4aiMmseWctRlMNGKxO6sbBLHhxK0HTLF812 s+3A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@sent.com header.s=fm2 header.b=QHJ0LVRu; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b="rrDlv/VD"; arc=pass (i=1 spf=pass spfdomain=sent.com dkim=pass dkdomain=sent.com dkim=pass dkdomain=messagingengine.com dmarc=pass fromdomain=sent.com); spf=pass (google.com: domain of linux-kernel+bounces-140799-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-140799-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sent.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id c11-20020a0cd60b000000b0069b4c27b255si1309444qvj.614.2024.04.11.08.48.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Apr 2024 08:48:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-140799-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@sent.com header.s=fm2 header.b=QHJ0LVRu; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b="rrDlv/VD"; arc=pass (i=1 spf=pass spfdomain=sent.com dkim=pass dkdomain=sent.com dkim=pass dkdomain=messagingengine.com dmarc=pass fromdomain=sent.com); spf=pass (google.com: domain of linux-kernel+bounces-140799-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-140799-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sent.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 ny.mirrors.kernel.org (Postfix) with ESMTPS id 0F0941C20A97 for ; Thu, 11 Apr 2024 15:48:05 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AC27A57316; Thu, 11 Apr 2024 15:32:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=sent.com header.i=@sent.com header.b="QHJ0LVRu"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="rrDlv/VD" Received: from wfout2-smtp.messagingengine.com (wfout2-smtp.messagingengine.com [64.147.123.145]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 254074D59E for ; Thu, 11 Apr 2024 15:32:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=64.147.123.145 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849559; cv=none; b=lP7gEBCuryBh3PHDTc1Mlda4yW92FP5YgzxeVRL3Ceb7ZYtqYWPyT3cKOmNZu7xmeyZHTFz7ipcNRwMabbZrKV61fWnQEtThnIThOi+qHHHjaLVh3JmFtPvjetnY0SN45ATHtk6x7+2w9m3HdRtUZdDXYHCmch4P2giAjz3StcQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712849559; c=relaxed/simple; bh=rKMR5jyIs+kfYGVqAunwC0t4zLUUl9aMrjq9JmvsMnc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=TER9xryabW9p2k7RaSXeHbIBtZMbIK2UdynZtHDSCd51UGL12H7gfoPeqxBOiso1ZhzqjAXZ0xkjiv1HyEQEpJMsl66DZmUBwJ3yGFcdgtlfovmV5FPYghNCSHOQaP6BdTW/jdKcmrNK8N60Mtajc8j6D98ah3Jjc2nXx81Jll0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sent.com; spf=pass smtp.mailfrom=sent.com; dkim=pass (2048-bit key) header.d=sent.com header.i=@sent.com header.b=QHJ0LVRu; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=rrDlv/VD; arc=none smtp.client-ip=64.147.123.145 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=sent.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sent.com Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailfout.west.internal (Postfix) with ESMTP id 752081C000CD; Thu, 11 Apr 2024 11:32:35 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 11 Apr 2024 11:32:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sent.com; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:message-id:mime-version:reply-to :reply-to:subject:subject:to:to; s=fm2; t=1712849554; x= 1712935954; bh=KdSkiWAB+vDwE4VKWUPrvuNlR/TihrAEV6L79eFI5ZQ=; b=Q HJ0LVRusDCl9WofJUn1onmqrSqUqAMyw6HqF03WQEacpYIj67+33AMlN0HrdCkuC 4i+X20NidtzFpZJQ8xCoKsMxrM/zthuBpjU1EGANz5jqLZCOBLORpeFK0K+N+o+g WPAUvMwN+KYFrTuO51rkHQ3ys4OwYFVXBvydgWrgJDJgdOTeDNFXRN3cs/Y8vfMT AW9ou+8jGS5jl5uaqGrtNZ04Len01wUtFTaHoKkD0wItPviV92d5hjc3cCbubm0H K5I0gD7I2NCH94E5iOLaPCCMR8CT0HD+pmbuoD8S49D794j2JdLW+sH9NZ7sL1GX UwmAnnS8ZQowvZM8WsYfw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:message-id:mime-version:reply-to:reply-to :subject:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; t=1712849554; x=1712935954; bh=K dSkiWAB+vDwE4VKWUPrvuNlR/TihrAEV6L79eFI5ZQ=; b=rrDlv/VDEMK6irLfP 0s8x+W7HbkF4lRMYw6Ry7bWTRbodWBHDMzfDBjLe9rvJv4KBp8C0Ae5LK3XxNVEy TyoPFiJUiRML9vwpT2Bs4bJrCFueytwcEr7wIgFEAQiUJdwzvHGpZUPXQoDhRwSr CAtcONha58r3B3chAXA5SZ2pbGYm683KrHZkgxxWjgWi+2Dr6VMA2ZRJ8Z77agnx lXuQI2c50PfK5D402SHgKosZEkBoaE4KWP8QKIMtD8gZxyDbjwbdaOKeqYYhe9uD TQ0LunFJOXJLcABuWcgZJAzzC6PBp7n5RXSA6h6gHH6t6pPKDazgkNTqOj8F6RKs w8HlA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvledrudehkedgkeelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufffkofhrgggtgfesthekredtredtjeenucfhrhhomhepkghiucgj rghnuceoiihirdihrghnsehsvghnthdrtghomheqnecuggftrfgrthhtvghrnhepueevte ehveduudffveetfeehueekheeutdeuheeiheeileevgeevueffieelfffhnecuvehluhhs thgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepiihirdihrghnsehsvg hnthdrtghomh X-ME-Proxy: Feedback-ID: iccd040f4:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 11 Apr 2024 11:32:34 -0400 (EDT) From: Zi Yan To: linux-mm@kvack.org Cc: Zi Yan , Andrew Morton , "Matthew Wilcox (Oracle)" , Yang Shi , Ryan Roberts , Barry Song <21cnbao@gmail.com>, David Hildenbrand , linux-kernel@vger.kernel.org Subject: [PATCH] mm/rmap: do not add fully unmapped large folio to deferred split list Date: Thu, 11 Apr 2024 11:32:32 -0400 Message-ID: <20240411153232.169560-1-zi.yan@sent.com> X-Mailer: git-send-email 2.43.0 Reply-To: Zi Yan Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit From: Zi Yan In __folio_remove_rmap(), a large folio is added to deferred split list if any page in a folio loses its final mapping. It is possible that the folio is unmapped fully, but it is unnecessary to add the folio to deferred split list at all. Fix it by checking folio mapcount before adding a folio to deferred split list. Signed-off-by: Zi Yan --- mm/rmap.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index 2608c40dffad..d599a772e282 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1494,7 +1494,7 @@ static __always_inline void __folio_remove_rmap(struct folio *folio, enum rmap_level level) { atomic_t *mapped = &folio->_nr_pages_mapped; - int last, nr = 0, nr_pmdmapped = 0; + int last, nr = 0, nr_pmdmapped = 0, mapcount = 0; enum node_stat_item idx; __folio_rmap_sanity_checks(folio, page, nr_pages, level); @@ -1506,7 +1506,8 @@ static __always_inline void __folio_remove_rmap(struct folio *folio, break; } - atomic_sub(nr_pages, &folio->_large_mapcount); + mapcount = atomic_sub_return(nr_pages, + &folio->_large_mapcount) + 1; do { last = atomic_add_negative(-1, &page->_mapcount); if (last) { @@ -1554,7 +1555,9 @@ static __always_inline void __folio_remove_rmap(struct folio *folio, * is still mapped. */ if (folio_test_large(folio) && folio_test_anon(folio)) - if (level == RMAP_LEVEL_PTE || nr < nr_pmdmapped) + if ((level == RMAP_LEVEL_PTE && + mapcount != 0) || + (level == RMAP_LEVEL_PMD && nr < nr_pmdmapped)) deferred_split_folio(folio); } base-commit: ed7c95c95397baff9b40ba9b0919933eee2d7960 -- 2.43.0