From patchwork Mon Mar 3 16:30:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Hildenbrand X-Patchwork-Id: 13999199 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 873BAC282CD for ; Mon, 3 Mar 2025 16:31:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 16EC028000B; Mon, 3 Mar 2025 11:31:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0A787280003; Mon, 3 Mar 2025 11:31:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DC50228000C; Mon, 3 Mar 2025 11:30:59 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id AE0DC280003 for ; Mon, 3 Mar 2025 11:30:59 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 91D08140C86 for ; Mon, 3 Mar 2025 16:30:58 +0000 (UTC) X-FDA: 83180778996.03.BD3A727 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf06.hostedemail.com (Postfix) with ESMTP id 0526D18001C for ; Mon, 3 Mar 2025 16:30:54 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=E2Z+QIc6; spf=pass (imf06.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741019455; 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=azxC6HZJ9nBU2F+f5yWV4gQ6J7sT6YtNWxk4WN8FkrY=; b=5Tzdk2Qk67vklvhi2UW4QTAjzh7zs6CgCkF5qjmEWFn2SgTXb3gg2+fdRqgYMpEaaogmkF ilioALoVEgbzGNubDSJY91oE/7LAI8k5Vga7pa6U0PbCM0KL1PJzIAkoK+7xBY35+eNC3c NrDBfNsWV/e9hf1NHCklkfDCN9gxiVg= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=E2Z+QIc6; spf=pass (imf06.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741019455; a=rsa-sha256; cv=none; b=RPrl+RuSZT9fgjK1+f5Bj34bEtLDccutllP78A1xj9vYnV7mTykcnOh43DUDWi490bhCGx vCdO1So06vuL2F91fS4tee+8yI5Ccv0XuzO7+GXXO+imAwRrK4MaYyU+yOJ3UmHPsA28Ap 8BxjojV+HBVG5OOhVWS9td/WdIhyOnE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741019454; h=from:from: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; bh=azxC6HZJ9nBU2F+f5yWV4gQ6J7sT6YtNWxk4WN8FkrY=; b=E2Z+QIc6iE7/F70LZfyWEMCMNsNVEneVMZtyoPc54+wrHwiaJsznKddaAYubWNkOH1pjmy i57Fs9IQd/afDG9L3976LzrwWM8XEswfM9EY6rTHHv6PtQoghxPym1z3daA2qHZufmMOJ3 0yKrpGFy6q38KoVX+ydeM08fv1+zJUI= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-318-1Bl9HJ0mMye2GzYBWasnqw-1; Mon, 03 Mar 2025 11:30:53 -0500 X-MC-Unique: 1Bl9HJ0mMye2GzYBWasnqw-1 X-Mimecast-MFC-AGG-ID: 1Bl9HJ0mMye2GzYBWasnqw_1741019452 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-4399d2a1331so22759165e9.1 for ; Mon, 03 Mar 2025 08:30:52 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741019452; x=1741624252; h=content-transfer-encoding:mime-version: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=azxC6HZJ9nBU2F+f5yWV4gQ6J7sT6YtNWxk4WN8FkrY=; b=DwQ7jPKxcOqG1bbr94Aicz4IYkHBBQh5JZMAhqtFf3F4HZWpVKAh6T/BoPhx7i+vP2 xoSZMfCuS2mVDBNQccTb1rFafIqUqXmszIj0I7BhzRU2BEFlK0FRt6kQ7b1dMwg8cm3L lrwDU+SmxEyI5S1Sc+aI0SFqPz3crjNFCp2ygq3zQxQbCKz0cNfWV42bzaVTbwhpws9g QvD+a9ROtaEArvQzravRyuE95QDuT7r6O9g6otJoZDMea8i+n8rVOCXKu1SAytJ2IKGG cO8+RR/AJDDfbMgfe6DxPpdS4UFhIogOo0GEWod4gb2tBsrE5y/I2i8Y+/iTB3VxkhIc 3mFw== X-Forwarded-Encrypted: i=1; AJvYcCVRjsZEB7iLnM7QZj1c+4p3vSTL1ywRL/r3QXVsQHk9u8zfbcqNjSBzJUTgUqvpV0yYO2JKjo4VqA==@kvack.org X-Gm-Message-State: AOJu0Yx+QJmgmXIuk2JoGO7q+J20QfdmmG3+0mhbqH+YnFslbjN6tTCi MFkMO5vnHj0LM/dnriX4jiDWD/+fL4bnJLD2XiAx62DqUcIliO1Tx04tZaqFu37zw3CVwf+BMvK Ec98443HNwjNtpJ3RqU+E5F+Womkgr51N2QHNuBAGfUEfS/NO X-Gm-Gg: ASbGncsELKtAehilL5Vac/C29i8yHKj35iZl0gaIKVLcFNJCVlQFfTjb5Ry4koX9V6K 8bbG9Gm7atuuuiRyF64csg7wLT+c85lLDGHLJtJdUjSZfICGSIefiHZPPhiFfs7itp6SK/X6mq2 U8EOxp2seOUtrehHziX0O3FvT1Cv31fJTD/1Wv7+mV9SRYg84m3wKoabxDh5lk8qwW/xCGqoEay JW4+yiPPQWzh8LfA5kEhd6RKWDUaxBDRvotAJFr+3J+0/IEfA+bViRrC7JcLYfaX9rH3MIanHfT OFkDWAOzYvZzcH7ZmgIY61QQfgQaILJdFrdoyLtzdOB7h/PrOrY2YIdCKVt4LrELCLm1xZ7vSAy 9 X-Received: by 2002:a05:600c:5585:b0:43b:bedc:fcf6 with SMTP id 5b1f17b1804b1-43bbedcfe47mr44358365e9.1.1741019451744; Mon, 03 Mar 2025 08:30:51 -0800 (PST) X-Google-Smtp-Source: AGHT+IFzQb6PWhSpsnKcZbPTy2ai+36EkVbTPhZ8phSQIWx5xoPi2ki+HFSKpKKxfbHb4k7pKztumg== X-Received: by 2002:a05:600c:5585:b0:43b:bedc:fcf6 with SMTP id 5b1f17b1804b1-43bbedcfe47mr44358005e9.1.1741019451351; Mon, 03 Mar 2025 08:30:51 -0800 (PST) Received: from localhost (p200300cbc7349600af274326a2162bfb.dip0.t-ipconnect.de. [2003:cb:c734:9600:af27:4326:a216:2bfb]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-43b736f74e8sm172202265e9.7.2025.03.03.08.30.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 03 Mar 2025 08:30:50 -0800 (PST) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-doc@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, David Hildenbrand , Andrew Morton , "Matthew Wilcox (Oracle)" , Tejun Heo , Zefan Li , Johannes Weiner , =?utf-8?q?Michal_Koutn=C3=BD?= , Jonathan Corbet , Andy Lutomirski , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , Muchun Song , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn Subject: [PATCH v3 15/20] mm: CONFIG_NO_PAGE_MAPCOUNT to prepare for not maintain per-page mapcounts in large folios Date: Mon, 3 Mar 2025 17:30:08 +0100 Message-ID: <20250303163014.1128035-16-david@redhat.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250303163014.1128035-1-david@redhat.com> References: <20250303163014.1128035-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: B_mwKFnDdfk0qgUYwXt90A1LlVfcRc3ut5sFcF89cz4_1741019452 X-Mimecast-Originator: redhat.com content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspam-User: X-Stat-Signature: qrp3wfsh7h6r7dkpryrsjadgutcr5k9w X-Rspamd-Queue-Id: 0526D18001C X-Rspamd-Server: rspam07 X-HE-Tag: 1741019454-672734 X-HE-Meta: U2FsdGVkX18UxX2zINWBOy6/lq/5Qw6GyPIKQOaUvQYO6DG2p14QHt2ewHyRp8QbcuHPOzIOvSQYKClL98+7u5PlJuhoRGkuVfZxO2vHW77q+SjV0cFp3baBZx2wovGOdcllOaPKG+vrRB1rsggpg2mf3ybZqR5gakcLqc5HpAr7ygn3bh1bwgpwZ1jXNdV8VC+PZnMlwdvJ4Q+7BRp8d0J97vAvil2NPrR5Fpsevsz6p7t5j50smoSnQxnNMfofTQyeGdRCh4R3GlUZE5ZFvOUki0waTremnrGMr/1qj8mSPJ9ehuMdaZIiSGQ5hL1tDhkU2BpemzaAn3uaW2WB+C0hlJ1L8fj0I0VB3JVC8+1oR3hZOOZbpJwGA+Rowd3UiunTK6Eqq4RhiHF60UmKpZa89RCZcJRYA8trgUHBV/GGGi7fIIfY4WCo0u/uYFC9PZFFStrmsbvTA0o1cUVgpCuDQ1Sxb7bMzHWjvhSMbF0G1RX1mqUoqQqFq6Ih7IJS73ovYXoGIFm+AGSZHGGqeTHDSk8/eudrVx3ChYeoP/d1gsxlrdMpcB0Spl0ptAT1e1O367Xv0Wv6T/Kj9n4PjsttCQ1V+8n8w7N96ACN7/t9OVnv1Z/svQJOBW4/XElgycDKrpoTtdr3JrPIUoskN7HVuhn/ufY6xNjMlZU0hI9wzFtPaGwA1IsJLf6CnjcAI+dRqnM0hCICDMrjlPjk9YPSPoJLHm3Cfukg7mMden+qylXIWg0evkBJu3h89EC5oiqmEiiB3JRpPBvQAQ4yuz/F6rG1JmpIZL0NfJTeCRGpvc1/l8VNxelvx5YPksZmmbsIA0g2SFLJAPZC0CTrMfq2603C5FMNolz1G1fLgiYpmjlPxsvheJeXO4n5Mg+9KfP7Sqpevt9MZXHj5oTjBfBP3oSKZeC98EzauFNSt/xOODBOU+2PoT8kOYVPpbGXr+QC1xTOI4T4/W4KKM1 Ot0Y2Gki oYXJ1WjZ4LzufY5UlTSkionrxWpXva42YN+Zf218pm87kGH5pASpQdwWo8xhvDJquPzspamNi23a9BYknP5Ff+WrA0PlOg2afiXmePTVdqmpBK6uTymY/MVpzGLU5/JJWBx9caDWTMkFsqE4KimfK9L9WXdYZ2UGPlEodc06t1xfklEoHIwn34kJpvPLOhFBQPl7m3jiplQUZqyu8xdEUz26mRTaCIZDQOxFtzV2D5vDWHAQpLy9Svw5JDxYSqz0+JryTIEa3d2OFkt1i1UVnPKN4H2jNAArydRhZ+oqSRpOxsVrggdubqRKTMFf2qgF3QrarQIeojDXMuUuJcf3deDwkuvFoj3l45nWRwGLOxDqkIk2pvyIM8DazIeT+P1LsDcYAwR+3zIkQNfgbYXwd7OZe8xpqcX/TKb2N/Ri5Rqek1vFY62jPoBZN9yGvtqtuqMTWDOmZ5Ne4b2qOzDLKW4y1SgYQpxdVwlVA482n29fhU9DYfoq/mKEDfkyYCiFEWdaVUG1cyhGwenbeV6v/IowjVw== 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: We're close to the finishing line: let's introduce a new CONFIG_NO_PAGE_MAPCOUNT config option where we will incrementally remove any dependencies on per-page mapcounts in large folios. Once that's done, we'll stop maintaining the per-page mapcounts with this config option enabled. CONFIG_NO_PAGE_MAPCOUNT will be EXPERIMENTAL for now, as we'll have to learn about some of the real world impact of some of the implications. As writing "!CONFIG_NO_PAGE_MAPCOUNT" is really nasty, let's introduce a helper config option "CONFIG_PAGE_MAPCOUNT" that expresses the negation. Signed-off-by: David Hildenbrand --- mm/Kconfig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/mm/Kconfig b/mm/Kconfig index 4034a0441f650..e4bdcf11d1b86 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -881,8 +881,25 @@ config READ_ONLY_THP_FOR_FS support of file THPs will be developed in the next few release cycles. +config NO_PAGE_MAPCOUNT + bool "No per-page mapcount (EXPERIMENTAL)" + help + Do not maintain per-page mapcounts for pages part of larger + allocations, such as transparent huge pages. + + When this config option is enabled, some interfaces that relied on + this information will rely on less-precise per-allocation information + instead: for example, using the average per-page mapcount in such + a large allocation instead of the per-page mapcount. + + EXPERIMENTAL because the impact of some changes is still unclear. + endif # TRANSPARENT_HUGEPAGE +# simple helper to make the code a bit easier to read +config PAGE_MAPCOUNT + def_bool !NO_PAGE_MAPCOUNT + # # The architecture supports pgtable leaves that is larger than PAGE_SIZE #