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 8727BC71157 for ; Wed, 18 Jun 2025 17:40:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7FA946B00A7; Wed, 18 Jun 2025 13:40:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7606B6B00A8; Wed, 18 Jun 2025 13:40:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AF0E6B00A9; Wed, 18 Jun 2025 13:40:33 -0400 (EDT) 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 46EB66B00A7 for ; Wed, 18 Jun 2025 13:40:33 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 12D9EC07D1 for ; Wed, 18 Jun 2025 17:40:33 +0000 (UTC) X-FDA: 83569235946.30.D614E17 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf10.hostedemail.com (Postfix) with ESMTP id D3BCCC000B for ; Wed, 18 Jun 2025 17:40:30 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=AwnDMHL6; spf=pass (imf10.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750268430; 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=nTkPO9qqkPL3+EL3rvp7Awl5YkqXAjOFp3B2ZpZgv4c=; b=ioA9b064D2Vm00CwsJvKv2ukZEnpjErLVtd/5lmPgGYDDQdiVX6++t/Z9yBcBweky6vpU7 S/CyvkbGOLuCs5Py4pZ7QQFH0sph83zX8ROq6D078OvDvXGkFyIi4u+7fMyfHtWI1XEWlp qffUBot+KURxOWJXVq30zgyc/nTd1cM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750268430; a=rsa-sha256; cv=none; b=7JMZ/YMN0/Jxx/0dFbhj5lLmVphPhKkoReIfmP8o1evOM2sfFzoi9fh0+tLOXcMMn7lA5z Nl5jTD9HdWJ9hRi3E/ACB7HPqdyld8k/pJmOgr5GlxjKtA7+8ox3DpfTxTrjG61zXyzKoT gjtmNqttlqSzv+kwgYCltZvYI29InD0= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=AwnDMHL6; spf=pass (imf10.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1750268430; 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=nTkPO9qqkPL3+EL3rvp7Awl5YkqXAjOFp3B2ZpZgv4c=; b=AwnDMHL6xchlzQlJrfwmUSqHvN4ip8tsz3nf5BHhjjQYPlleqsFdvNaxv7f9TY8l2CkfsU +HPV/eo3trc+au0XdI76GgnkED/8RqumGwrny1qlkyP8I032xwaqDWyKZh5lwiCLe4y/wM 56VnrKV1RVx6JoEQ9KRrdKKk6+V9ha0= Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-617-dGgzPNW7PvuQcx2RULbL-g-1; Wed, 18 Jun 2025 13:40:29 -0400 X-MC-Unique: dGgzPNW7PvuQcx2RULbL-g-1 X-Mimecast-MFC-AGG-ID: dGgzPNW7PvuQcx2RULbL-g_1750268428 Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-43e9b0fd00cso5758105e9.0 for ; Wed, 18 Jun 2025 10:40:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750268428; x=1750873228; 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=nTkPO9qqkPL3+EL3rvp7Awl5YkqXAjOFp3B2ZpZgv4c=; b=WE9eXwXZKWFJcybSEymlpnyEQAJntWza9pSCja4JUQz683lqqRthoN6/p6Xcw3HrxO LF9C0EwdBC8bbkIX12IKTt6vSXaE8aHF26EdCTlJLPO02CxXO2Xowdwr4vov8UC25t7S CeIg4vJoDddc5GFJtxGlHcH3pVxKgia+R/rLFOXzNmcW7a6FpIix52CuFZysVz4CuVG1 Z89kA2DonspuWneupRvaY8qzQVwvNlkmfkc55IpmGfs2G2ubYwLG2vfKx1KFfv7e5OyL 6lI9ubRQbk12oUiHLgNOIPe8RGdyJSdsMMw8HAAUQUmI/ktgLAn2cwlfFbKyKgPgsHWj YU/Q== X-Gm-Message-State: AOJu0YzwfHKDUvA0Cbvk9DF/sLmxuDspCz9Pooc7UWKKSWdqyetHOaM7 vRsSTuXvOigY7IKqtMPahA3YUwSGDyaKdd9VV+ZWlfWsaQKFvh9V+GLL+aoM+9lBjl5DGkMHAy1 m9aluCLd//E5nWEU93HVDgCxnd9idxWQ0u3lxfvdZn8O45EDDOCiiZhOY70pHMnU= X-Gm-Gg: ASbGncsb6Jzs2rfa/ghvCXc++wvLUCSzjg/brjZRAWkovEx1NgGLbF7bI8HYYYUH7op UqOQjaKl8NPkudM7G7aStNtnxRFxPP3a+4GkZCy8ppNN01hEmemD0LWwfddxkZnAmVCh+aGQ6Jk pXdVFEr1EsBkgdYiPwBJprMQ3QC013lqlwY6FWBgxiWJNQpSSktwdq7PiDqWdeI2R806dfQ7GT2 Zd2f/UzynhpGcFMRJpBVteaSUxQkHSZ3eBaaCBMNAMMuKyOH3zmgSpuRVUwALJWLv3hpXWwqdyb qJ2yIm05DKZOqzfgstYC+PjmdwA28lQLicY43Bk+rabeRAySkAvDK3KOjFLHctFWZFxi6vkEBcm 5Bqs4Gw== X-Received: by 2002:a05:600c:4b16:b0:453:92e:a459 with SMTP id 5b1f17b1804b1-4535ec85c23mr3139545e9.16.1750268427765; Wed, 18 Jun 2025 10:40:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFkzVO1ODwNAxaNuTK2n5Qmy81cmyi9pmESLWNLzISSPT37JEqPUHdRyxt0ThuYLp1iDunnjA== X-Received: by 2002:a05:600c:4b16:b0:453:92e:a459 with SMTP id 5b1f17b1804b1-4535ec85c23mr3139385e9.16.1750268427286; Wed, 18 Jun 2025 10:40:27 -0700 (PDT) Received: from localhost (p200300d82f2d2400405203b5fff94ed0.dip0.t-ipconnect.de. [2003:d8:2f2d:2400:4052:3b5:fff9:4ed0]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-3a568a5407csm17710458f8f.12.2025.06.18.10.40.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 18 Jun 2025 10:40:26 -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 RFC 04/29] mm/page_alloc: allow for making page types sticky until freed Date: Wed, 18 Jun 2025 19:39:47 +0200 Message-ID: <20250618174014.1168640-5-david@redhat.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250618174014.1168640-1-david@redhat.com> References: <20250618174014.1168640-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 5Q_yL1UbdccNBJU4HHufavPseGwMzwT1OBcDjLTkh2o_1750268428 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspamd-Server: rspam03 X-Stat-Signature: upon9fhp441rkq7dinw4k71q1z6qozbw X-Rspam-User: X-Rspamd-Queue-Id: D3BCCC000B X-HE-Tag: 1750268430-177255 X-HE-Meta: U2FsdGVkX1+NdabGVmPG+Hs8FXgYrNsw2rveWCpDnUA5GCXoijdypx8njJ92oqCI72XxFXDo79og6FZQeab9CYFvK6wdUKPPFpyYvMKSUYjNQkmb+ry2Q9Tg4+Zcmkg+OlXphxtjZBbKkfurvh3lwdfPjx0zjQXNaJtq+Yb/TKGoe7s/R0i07fI6Zt7gHUxNg/nnV+MIbb0W2wh0kjEMHf0nEJsly++wqEB6LxKWsPFbJfyaVn0lJozI4ToHVE7BF9B/CDuLFBnPEfeKRLrV+Iyhkrlz8eoWQ+XCaI0+f5uyzdjAybJ8QPB7Vx8sMGgpda4Y/S1xz9wruhjnECB7m+rOi4b/md3Z4umt5Vywt9QRnzycCTQuNFgCthDavXiMfzzQfshwSGBOzswFFemm7/YqwVSlEaM1mEfzkxUcAbh+b61ZMS/guF+fskE9ZZZ4FN4nTdoe3p8L5s5yIwKx5YG9uHdKjtvtSrF3PKKwjX9pr/7pw/4R6zRHO+NMRzFYNRu6arT07ggBYYeRcEe+G2puSsqWZLorGpwbDiITxh6E6Dsi5kKb3BdSP8syQukdaBL+uJVZ3g1tVjWhRSaHoniVZcNELLbW+8Ui1g+kYQBv+n8vkTs96eK6ISDEjAouKD/rSaZnzbxrGxiT/EyvlaYCDRJhDCZ4D70DkVwQqTSWxuaV0xD8iCjxKKdvg/JiakQFE9vrsEgX2KDig1lRqZtsoOTc/I4FpEb7Ei7MVOrhIxynb9bGRYlLdpl3Cwdq3HhC1bZB5fdo7VsSMFSbluAtDWxK1yOW/kUcoOQYaOet+ZxZaCh9s4DaNB4RXzfPnnXVkKEC4H6JidujeLSENXeaFYHiGQ/vOB0tJ3Gw4KqeOQv9bG2LPXXmDrrA6TQQWsD+gJeA9V1hUqFFVun48FqCXQC/hmE6GzmgONtZuNzmefHulcSdfA20/jhuT5VRxuvQwJomLKdvOOlj7pA doynbE2x 5vIE9/0zChVlCD2nLW7LbQGQW+Aj/El2VmOIHn6nYldrBLmJyBX788MAhWM9eZWiSKtEgFyVtymc4N2R4Yy7iFcLjl6tZHtOZjEzJlil3sNHPVHMScsbRogSjSRSc4GsqOxM1bG/O1kGv5q1XvMlyr3gctuVqcr9/O9kwRYKE6imqHIAnf6VLICJnigWToacHCVakMLPr+7orzXFi7DLz9RQr37yd1dTuN9Y39zk6yEQgXVhTXJy0TjG9GZFNmG8/nzmQzOSHRn5n6TmYSS4Ne+Si+tNAn+95llQQZheN3CucI0Nyfuex+OnvLOtZumBBSlmZoHCPh5Rs3+4fCEe1EoYKD1Eo9MJ2cEK0WvnpRh2a/PGTobdJOQPvSVS35bUryb/qrNFcoOGy5KbyuvD41FlABmUwtMMu7vN4ZoJjr9cYAB/xowJo1ilrnIoZJG1CuqUJavSsIBn5l6/VdySD71FV0J2Fis/ncwCk6oNXU3YwmKR40/WKYT+7orlOi2tlaw10ilQr0zWdhLzaKH5d1xydieveeXAel/Mzibtqrx0vKt/gIAZt7W+EUF0C4Kw7r15zrQS+AOGdhPg1DBiE1KzUO1z8MwM7KO+Z 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: Let's allow for not clearing a page type before freeing a page to the buddy. We'll focus on having a 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). 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