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 61A9CC8302F for ; Mon, 30 Jun 2025 13:00:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 853246B0093; Mon, 30 Jun 2025 09:00:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7B5B06B00AD; Mon, 30 Jun 2025 09:00:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 67C926B00AE; Mon, 30 Jun 2025 09:00:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 5228C6B0093 for ; Mon, 30 Jun 2025 09:00:34 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id E67BE586B7 for ; Mon, 30 Jun 2025 13:00:33 +0000 (UTC) X-FDA: 83612075946.16.849C4EF Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf30.hostedemail.com (Postfix) with ESMTP id B33788001A for ; Mon, 30 Jun 2025 13:00:31 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=cwSh3Arg; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf30.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751288431; 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=p0pHDGHZALCRdBpqrQ9hLtuju8zJ3QwGWTV045A4FRg=; b=eXCpr+OeCZZBFqcs6AcxVhV5hG9SLjuuebbfN60XI25O44h15dEuRw+sGqJEATBts+K3EB Llcd6mf8PZDRisIKwVaYCgn3Hpy7wNHed0vsuZZFYlYytNdPAH6S2xnguxZmlb/WJK1xfZ RlUEMUM0CDxmFinNGctPr0wY9P2NBKM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751288431; a=rsa-sha256; cv=none; b=NkMcjof86+h28fOtIUN87VAwjrP3KWpHVLNLrv3q9uYuWhquml5O1b77+tBpBrD2eIPp8Y 1ZxSg3ipJwSFpEh5+MB2E7FIX7tTit8E3pHJ10CAV/5+9gLepkdQNXbOlOedj7WX/HgmYV CmwRCYi/WO47XvmYTXT6W0yGlK/fIbI= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=cwSh3Arg; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf30.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1751288431; 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=p0pHDGHZALCRdBpqrQ9hLtuju8zJ3QwGWTV045A4FRg=; b=cwSh3Argt9aaaFzBaee7uWkDId+4INc5kdhp+Y+PiMjEj31zOf+zgd194bgNYi5uhLnsDp 0Gos/LpbRU5NPC96qtmCFTQ4iK7eiCTiPEKxtGtLWroM+VECtKVd2dz8jZe1zL/aiDk6Ae Dy2VOhWNLKhp5/19Yij2DFtsblLjkJU= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-472-bT1D0K4JMbiFdOroLEld9Q-1; Mon, 30 Jun 2025 09:00:27 -0400 X-MC-Unique: bT1D0K4JMbiFdOroLEld9Q-1 X-Mimecast-MFC-AGG-ID: bT1D0K4JMbiFdOroLEld9Q_1751288426 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-3a4f55ea44dso802218f8f.1 for ; Mon, 30 Jun 2025 06:00:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751288426; x=1751893226; 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=p0pHDGHZALCRdBpqrQ9hLtuju8zJ3QwGWTV045A4FRg=; b=iY9Wn96/E4ro0kpWAhfrf2NALhnhPM7uJM+bSffSU+iqTBtMDCNvVhKQGRUYX3X3l7 5I5JgYCU+09RzPcyucjGf1izqfrNxnnjeyTmchS1FErXkMlTIHS5cdyyKPBuJkJY3vf4 /4PwY1S1f1a8vdTwPvNDwyMOgbERj1l+1lppoWQa7WWiAy3v/gruaw6awgvuzyBiZ3Ce xEcNxcCFhdTUIfrT9bOZII5QfNQgV19bPRt4rDoichsn8NFCvG43lqeBk8X9qr24fyVM hpXdAp2tkC28kbdBgYYXiPUMwTqpeKhdwBa4/z3KT+6l+x6IwqCT+hAcCfAyX3YTPlsY bk6w== X-Gm-Message-State: AOJu0YwKfwwIhi/8vJLPl4f4Q+ikBxz8mkHLsfVBbIb0igqHMcbFuQVE rOLa1F6Rf7oJZYKrPA8VkiPw0RMI0VhUZMvvFQQcczQtFGwNL9nac7fWwz8Bj8qGalxbwffNJKB HE5ygIpmcxkj2yYy6dscY9VBXtQ07y3ictXRWgMmY1bie6TUfR9i7 X-Gm-Gg: ASbGncvsN6Gxbj4B1pEzCMHBON+2gEa2UthUHmuO6V8Q0Y6L6/9ebcJNS/yR4pJEFy2 yBFbCPAO2AsRqTH3BSo9K6UPofDCC5219aK5IrxYFj0DfJXBLQlot/ukd3AtOQ4mGxrdpdLLNUA PZHEXBTszYoqqy4dbXJ6MOd9OfEsifO5GiDyf/klpF1ieQ0z0tSoit8NxqgYWu7LXkp/Msi96w9 SOrs77jl5pJd3PL/l4hiICRLbrB2RoMhDEebckJAX3J6uIrUVk5byUWVgft+8CTbuudcxhiR4qQ fAWXclTTlKk8AuQlj2FgZA2R3H0K1NVuWPgJNLWHN3rjr3Bas8HEc9lscqYSRIqu3nwEWbtJvUC zAGs7scI= X-Received: by 2002:a5d:64e1:0:b0:3a6:d579:ec21 with SMTP id ffacd0b85a97d-3a8f577fd35mr10177751f8f.12.1751288426260; Mon, 30 Jun 2025 06:00:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGwLhkxvJD2R8UoqRuajbGlVqpEQolWc/VBvsc1ZeiLSR5gPzKHixn/vDhyoe1JVlLg6TEErg== X-Received: by 2002:a5d:64e1:0:b0:3a6:d579:ec21 with SMTP id ffacd0b85a97d-3a8f577fd35mr10177695f8f.12.1751288425713; Mon, 30 Jun 2025 06:00:25 -0700 (PDT) Received: from localhost (p200300d82f40b30053f7d260aff47256.dip0.t-ipconnect.de. [2003:d8:2f40:b300:53f7:d260:aff4:7256]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a88c7e76e1sm10574554f8f.16.2025.06.30.06.00.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 30 Jun 2025 06:00:25 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux.dev, linux-fsdevel@vger.kernel.org, David Hildenbrand , Andrew Morton , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Jerrin Shaji George , Arnd Bergmann , Greg Kroah-Hartman , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , =?UTF-8?q?Eugenio=20P=C3=A9rez?= , Alexander Viro , Christian Brauner , Jan Kara , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , "Matthew Wilcox (Oracle)" , Minchan Kim , Sergey Senozhatsky , Brendan Jackman , Johannes Weiner , Jason Gunthorpe , John Hubbard , Peter Xu , Xu Xin , Chengming Zhou , Miaohe Lin , Naoya Horiguchi , Oscar Salvador , Rik van Riel , Harry Yoo , Qi Zheng , Shakeel Butt Subject: [PATCH v1 04/29] mm/page_alloc: let page freeing clear any set page type Date: Mon, 30 Jun 2025 14:59:45 +0200 Message-ID: <20250630130011.330477-5-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250630130011.330477-1-david@redhat.com> References: <20250630130011.330477-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: uJS74io1qXU7ySaBSqUOE1XdAdl4sddxERwBiy0Pibw_1751288426 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-Stat-Signature: dyzfpon5a3rmuenc933qpwtxrf4d7y5p X-Rspamd-Queue-Id: B33788001A X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1751288431-827049 X-HE-Meta: U2FsdGVkX19kPS24ypS3hPkfi/OIYxF4CjWGDhtbOzSs9K4gWpbUrjASKLStTn8JwItw4kvvawOwb8BFCD7Euxxo2Z6SrHBTCh2Utv5c40Qekaip5iqdHiD+7QUEDKxulG+VEHA55/LSXVg+svEIsbKhN6PW+N2YFM2f3fPAG51rKxVcVxEG6xNnS75EUNtTr3RYsKzgeT9FlFHD9UqNKfGFSsQjX1qGcAKyt5uCvEwHg1t429y2csYCxhjzt8s7WjbM8lHgEnPgydgYLcLbkBY/ndw9HYK/egETL4f8+B4SfcHAWXcZFTR5BuSYxCxqOdWt6MLnscU+1jL56N68liM8sPWB/U2QYhxmJEGNHlfET18Fnml1aC0UgqZxOQC6my/tpZ3x66uO45uiMQYTe+KjExmObmMiZEJ5v72ueb4LO9iJBKVTuQs0z9n/kSQ+8w850tvyK435iUiWIq0Pr0BSdo4EHyglnl4xDCVTGAMWrSiaeLOpHmak+nzhXyD/TIEZPLDEA+tS4iNZk57tTsS9T9N6M+R/+SM0+99lSr3Ilt/fPLkJih8GmeZj6wG8TELgKSoyu5JYa9+VHvjEF1kna5ViFWlyUlz/zekeXekNaxWfnlK749e5sFp6t0ri4oyQbGO6IW3/FqqSDuNUGctxkEHZRty9WzPylQf1hVAPJhsbAWGGI3f2vSAK66Cr96V9roqnW7fwP6nagas4mmHsOUile3lljQT0v0Vp0LnWN5Nz6Xil9OqDH+Dp7dzbPtAHOtyZWblKPgY5vqA1LrSt/J5ex0sjApc9BWh5UU0MiwchPqH/45btuhqZ2yIkWgU5jqBaI4k09Jhc6jFLUiH5Yx7VPZefo/+S9P8YMqFxsMT6tkkGO3oahXDrlRvk2A2y8culPn2TlySPYJXfidZs3U6vi3R70SAexEPkEk24kHRPr4VdDgeaZG9KgnDRvpOTX20YZfbjLDjJrYF j/KstO2X QnWBPI0JnCn3iZif/Gh3awRav1/QPooSNieriwaavu4Uc3Rra9FQATpr3I6mnfJunwO+dsStILqqFo+1wlpEhJVa4/2VUC05vR0ltFJShvGSdAlgz1SrL9PkLsSsEkxsdGed6LEl22Uy0GxehymQx6KN47Ust+TiVsip9g4mjiv0P48GOdEwGQj5G5nLTM7YxCx3UDdSc6G0P/oiC1QufKDp6lu4dsmezuaO9UtzZ8ctm/BY0zHr2BWX4XR2Tojni6f54k4Puja+hIhMDyl7kOn8p9WcFtXsPyGYWSNtg4+Kee1Mxh7kbDMB9r/zu9gvsDfJEb91UimE8wlWZ4OajZV0iQOlPlF61S2OlTRR8ZA9iSL3r4AUFCaKP9k6m25UJs9jQ3Z9yG9fyh6u9i9IAE4CKhOERzgdM2wFN/OxsVRRvGwTLHHJO7HzCQAscKrsUZSSuCMxb9sSnvSgmGQVnu6SlKS0WNNbe2JZkMGV5yoiceurvEIdPZ46Mqc3ecg2lKZuwenY3oP8GSQHkigKFiidWbcpqA7pX/ipBdUp/Yd0RxyZ17U9csYj6COkNVlTlCsTqmYR2PWy1O46q6gJnMT7ZxfiYAwqx/L/RpzKD85GNnhLttAhDATTflQRfeDGYpFStF4W55MJjvihv464Yery36xtjRI6ryPS+1wylvM1SV7A= 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: Currently, any user of page types must clear that type before freeing a page back to the buddy, otherwise we'll run into mapcount related sanity checks (because the page type currently overlays the page mapcount). Let's allow for not clearing the page type by page type users by letting the buddy handle it instead. We'll focus on having a page type set on the first page of a larger allocation only. With this change, we can reliably identify typed folios even though they might be in the process of getting freed, which will come in handy in migration code (at least in the transition phase). In the future we might want to warn on some page types. Instead of having an "allow list", let's rather wait until we know about once that should go on such a "disallow list". Reviewed-by: Zi Yan Acked-by: Harry Yoo Signed-off-by: David Hildenbrand --- mm/page_alloc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 858bc17653af9..44e56d31cfeb1 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1380,6 +1380,9 @@ __always_inline bool free_pages_prepare(struct page *page, mod_mthp_stat(order, MTHP_STAT_NR_ANON, -1); page->mapping = NULL; } + if (unlikely(page_has_type(page))) + page->page_type = UINT_MAX; + if (is_check_pages_enabled()) { if (free_page_is_bad(page)) bad++; -- 2.49.0