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 24020C7115A for ; Wed, 18 Jun 2025 17:40:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BA2E46B008C; Wed, 18 Jun 2025 13:40:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B53366B0095; Wed, 18 Jun 2025 13:40:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A1B366B00A2; Wed, 18 Jun 2025 13:40:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 7EB0B6B008C for ; Wed, 18 Jun 2025 13:40:23 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 297035B902 for ; Wed, 18 Jun 2025 17:40:23 +0000 (UTC) X-FDA: 83569235526.13.8669324 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf29.hostedemail.com (Postfix) with ESMTP id D9AAB120002 for ; Wed, 18 Jun 2025 17:40:20 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ZoUPmrG+; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf29.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750268421; a=rsa-sha256; cv=none; b=mslGo+7RDyrIlP1GaQrCskP5Q7Fg6sz7DrBz5Dj9NeQykKHgDFa/BX/Q/V5jscyQVzVNEU jV3W6b9+z1A91WbN+aj6lSOWB3CQ85z3XI7H7GGpTKKQ5zzKX0wfeqVHLqc3vTIgtVhO2n fiNASPeJiVc345S0LSvrFzbbn3QP6qc= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=ZoUPmrG+; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf29.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=1750268421; 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: references:dkim-signature; bh=kAt9cuNNODAnXK/nmmtOZ1rnZLVGre0BG0UABQvpVBg=; b=UjTEl2GVBnTy3cl11ccKsOuKjz2Wls1SAbYjQcpKhipLCy8vPwppIYUWubJDvN91yxbh3q 2lO0C2+rB7L/s7Z9r9rrnk2SSH6yMoQdP8hcHtQcy335DeU9jxsYET27UvwIUcSwmseARE CJfJ0tiuEcdT1uHjZrfWYNx96j41OQ8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1750268420; 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; bh=kAt9cuNNODAnXK/nmmtOZ1rnZLVGre0BG0UABQvpVBg=; b=ZoUPmrG+/R0WOLmpIjvXJsAmpaOm3iQrbJPNfkW3qoBewGK2cBdbHILPpK5zZP3gd31+wO YFKajkWJXXL+iqEMfWC96l6xB3BgHaTqtUE5ZTe6x97/RiItDhG/Z+ixAGo4jmRip3ob8f WwhJHzc/tAaqQd2z3NxiBQNbo7KxZIo= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-542-kKJpaNkdOVu2DuIIayPj0w-1; Wed, 18 Jun 2025 13:40:18 -0400 X-MC-Unique: kKJpaNkdOVu2DuIIayPj0w-1 X-Mimecast-MFC-AGG-ID: kKJpaNkdOVu2DuIIayPj0w_1750268418 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-4532ff43376so56383435e9.3 for ; Wed, 18 Jun 2025 10:40:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750268417; x=1750873217; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kAt9cuNNODAnXK/nmmtOZ1rnZLVGre0BG0UABQvpVBg=; b=B2a0M8lgESrFo+WBuNYg6QdBIVCfNjuJ1ktINhv0rkh+lt2mTaSsSsdb7YU3pTRrqU qxDnVsjWW2XSeMKeMJlCSXA2O3TaxQxYZbFYVMMqmQAfesAB3yHyXVs5cjh03pdsX8yK TrEKhVwds7TmGqfs9jGEe7PSnm0+EKxTxfEUN2ztaEVJjfVJjobU+BaxJAo8nXHfShDl AKKbmr4AMUxapUesW1W9pbFGnmZYOO1g7/vPKZj1QbEBNZP2yQP1UcLvYaqhlphBRhoS uYpiAT3/EHevOVuwR9DTpLtU3MLjGJVCcTfQF1xM/LK9ZwTwQVoPyWcqHtvTlS2kwz3/ YJyw== X-Gm-Message-State: AOJu0YxzK7bQUOkSSG3weeGJNYDj5OvS8GjDimcuLWzKqWOVP9BQIOpM 7qMxaQNeJejp2J3yGBJQkk1GFz7AZJwkcrpjfxcpvrfET8iTwGpb6SOPZeb1L6heSJVfVdGwtZ5 JJLPP8irFU1JspBJzpIvL9WTfqCC/5ZCX9ugxCnVld417DStVyvjW X-Gm-Gg: ASbGncs2Dwcgsz0ldTwYfaAb/pFEHu+mMCv0COyO9nm7wI3fNse2ty+/DnH280Np38W 8pKRQnN3C5u6DLcu1W4Q/wv6WhgHSfrryKVZE+SzDA9Vgu88g7WFzrVrtT6KdbN9gS+dwyoAjb3 l8WR2fbEQxUj+f4M3ELW3cxwxfhPKxfi/4yZlFMdafugRjobcB3jh64gjeJPeUdJGCfvEraZIXH dlMtBPU5yFpARDr5A9Gjial2rRqieuOa8n4KUs390U9Ov6PYFY7DJkckUL5wwj1EhqBHP2KxYqZ uvWUs0bYoGsIsmHC9/BcQsCaqoW5U1YDW5RMLIiqcQV15gwfOgSrpMetLmQDd0J/bqDNUZ40nhU sQzuzGQ== X-Received: by 2002:a05:600c:c117:b0:450:d4ad:b7de with SMTP id 5b1f17b1804b1-4533cc69257mr159131975e9.3.1750268417475; Wed, 18 Jun 2025 10:40:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEK6CJuAqwp4upaUAFmgBr8NRJjk1YOp/gZr+QzQDI0/4bBlZLAGc6Vo1CG+p/mbQiC9c5VzA== X-Received: by 2002:a05:600c:c117:b0:450:d4ad:b7de with SMTP id 5b1f17b1804b1-4533cc69257mr159131415e9.3.1750268417023; Wed, 18 Jun 2025 10:40:17 -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 5b1f17b1804b1-4535ead2a84sm3430235e9.32.2025.06.18.10.40.14 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 18 Jun 2025 10:40:16 -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 00/29] mm/migration: rework movable_ops page migration (part 1) Date: Wed, 18 Jun 2025 19:39:43 +0200 Message-ID: <20250618174014.1168640-1-david@redhat.com> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 0dRm3aO_O23DEm51DEhwcF64zbhZY_aANsFrbNQGrXU_1750268418 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Stat-Signature: tjpbitdzjfh11tp9y7mgpzdesb8my5fn X-Rspamd-Queue-Id: D9AAB120002 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1750268420-737854 X-HE-Meta: U2FsdGVkX1/TmaMZ9ZI5+rMulzkuf5fIkAbkrSQjB57BFBO423bEQLx4sKiVEek/P6HkorRIDNLgZLgYM4AX/9pWYShamyg32JSBQ1V+gzpN5za56+uW7UZv3+7QCYN8dESazP5JdZ6N/j405WYiW7iD6RhsVWnJLUESokVa/x9nMlQcgJ9xcVhFXwhp43MuEvIhvkTX9e0r4eX90lokkq7g7BqIde5nQMEJLCw+On1fCyqNmhnGwEtT29fB0D3sgoWY6LpY/P+IyXvLraJ01J7Nj+NvVGKfLCMKNmjnJqCgrMTDVKNf6ZOIwVBCc8Z9OW8HZoOgn5zGV/b/N25PGtDmPoYT6RmllL0Ic9AeYXZGWDWcNevxcvl/ij9qJy/fu2GTXtTeA2AMtXSVgssspuQnd0yTOxrjHNEMaogdW+qJ1jtOdBFi4Thg4QiGk2Cc/3GUnkptPkJ5hCIj5WEV96GlSu8TJCYmonWNLjt0Bbc0+cSGZNhgKDVywTu8mUj+XP9RwDZvDixfRji2MoGCmpc58+viffTgUWJuzwYrJW4pcDmG2HTr4wF/RnGb6JPU7SvCezVYLhpEzj7klV7UTVzUZYtfXFva8Z0sjb2sJhTxjRo7uGWOkn9BNwKcZnugZKpsfVNQ3Aw54YfdcSuIeItnyvXdzaoQfIAOd+3/IgN28XkLTWLKVHgNxQl1ieQqfeZLXRSOyJRFWNGrFXoUICGe6jlZ4itfqwe3NvP7AJX3uith7UFWN4AaxrSmLE6dgHtk+11Zt044CD3kiy3INahz0PyLnxL2Ey0qiJzFKxmDqaaG5nMKTvFmy2m1Vmtw3PdzLf58xG+aJwDAKbc2II1DjMigtTXuXypCrBID0cZOHlibijNN2cqIIb3l+CpCXuCIObZ0J9VmlvUGQ8SB6V6X4mfJLJuNZwzZhCynlR4TqB17cC16RI9M2eFmiTLLm06PiJIaB9yshV/ym3e JBH3FTS7 qqrn70goOVmUUsFIot3y+gNBNeigjVJqngYuqmNJcUEmuvk2w5JKr2m6uvEz+nLySMJk6xBijedntxIMeSIG3rhLj7hoRB568ddxycCfaKnju5amqBkXUmnpxQjecgvAG4jIla9Rzprlo9he+BZuayUpwg+UhIxcXlMIPONSJBG/YdLaH3wQ9bfMqDRYLe7J3h/7cwrya4jfkzqQP6eI+HYwl/CxmqR5NI9RSrmI7WTI973BtrvcWtn/B+3ISJSz6vahSf66YH7vP59tXxuhaGvIjIlORlnMaMY/IJj+C0hgbtWkfc8D4Q7x5WM7uWnhWi5clJZKdTaiuMchXN4Sx5d5oduDOmLLoPqVFyFIZPGu9aGQXxt5wBmLQ2atoJTVNJ5enoFJygP1/sxXzQk9wK0Wi3wfp2hcpa/c25lGOBkGKJXfy/OopOhebcgi/eIFazQnyMbiDjmgXhKMBAUrselPhQvD6RVdaA6QofI3m5e3sXqWSvu8SL1AaQQchPg/koCOliq4HCd60yooGH5xiANATPgc6fp11dZFffyk+qEPrWSjPsyAnNFi+bZxXuFeXt5dFNbzO5JFGnkA2mk3QivDDM0RNUVeHbolbLF9mv6wuHq7Rj6AGi5AcJQKcnjxbE5kxn4Aasvby74Xr2bWAj4D/cvVuIssFoMChdOtFEtVCrMckBaKY465gFhGAucfeIMfV4tjYSFRDOHyyM3wRYksBc+KP05+V9S7Z/7DbQi9STtqvIVsRcwykwROiCdPU3IJYgpIfWFATh/5dqhw3/owsz1/CWhZqUUEH/piR6S4Uv+AJ1gWeG4LieWEXAl1Ai1ybivrkgNwdzMscAUEIKGLiJz9Wv/lurj3HxQCUXbE5ry7ieLWTDwC3PlZU1voyCvnyhdbLAAZK9dt0tHHMzwg24BO6F+2ukq7KQCofW0O5bUQX5Td9XMbtdluO+OsCDVVGEbXmp0xKsBypND4aNH4mVY/3 v6gTVskI GrImK8TeR+FDtsOBmDeWmysxEFCCvJHF1LW+Vb6sz7cKisEqOgtZ+B73yklctuJOqaMXQgOBgnhvaepax2K+4PZY/ESvNfm0SiYKalrVZ+uHVnj0NtyId3ydNENsqdSt4vFJqmXiP1YTWOn1xGBzg7qtsbgzkNdpB2uxut2vQl5HPtx0wzvFQNrmrtGAHPdpa3XwzF9fyNv/h+DEZ8IAhmyUxdFH5PiWNUwpUHKwKSxi8IUlUiHD5UyRydZw4hq3/MRj6xVqh9PecKOZvR5zug6KTk5qPZWeOzjGVtbJwsCbIj7+wnGX2AChpfggjuq9s4/Nc6tGUR0fObVUc+aFaOlbBSYjCZxh3VR/0orDvV1fjsiPEmryhViigwCUAl4o9OynKK3fPu5QW2r09tvbvq9svS1FDpqHTN62ZLU3RW5/tCTuqGeHT5wNOh3u4XVISULsjgmqVK5nn0H17Beh8d2J3AJIsQNFRYZl+G1r19tW0bzBa67zLH+TmeFjSIqYoNxVLU4nWPNyb2tF/pBLbjGKbXBU9n0DU3jW28H8Vw4YVaHpmaTvQdQIYhWKVQhoXqlNMYdJ+CJO9eU3I7OojNPyCvIvCKp9 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: Based on mm/mm-new. In the future, as we decouple "struct page" from "struct folio", pages that support "non-lru page migration" -- movable_ops page migration such as memory balloons and zsmalloc -- will no longer be folios. They will not have ->mapping, ->lru, and likely no refcount and no page lock. But they will have flags :) This is the first part (other parts not written yet) of decoupling movable_ops page migration from folio migration. In this series, we get rid of the ->mapping usage, and start cleaning up the code + separating it from folio migration. Migration core will have to be further reworked to not treat movable_ops pages like folios. This is the first step into that direction. RFC because I only did some light testing with virtio-balloon + zsmalloc page migration, and have to polish some patch descriptions. Cc: Andrew Morton Cc: Jonathan Corbet Cc: Madhavan Srinivasan Cc: Michael Ellerman Cc: Nicholas Piggin Cc: Christophe Leroy Cc: Jerrin Shaji George Cc: Arnd Bergmann Cc: Greg Kroah-Hartman Cc: "Michael S. Tsirkin" Cc: David Hildenbrand Cc: Jason Wang Cc: Xuan Zhuo Cc: "Eugenio Pérez" Cc: Alexander Viro Cc: Christian Brauner Cc: Jan Kara Cc: Zi Yan Cc: Matthew Brost Cc: Joshua Hahn Cc: Rakie Kim Cc: Byungchul Park Cc: Gregory Price Cc: Ying Huang Cc: Alistair Popple Cc: Lorenzo Stoakes Cc: "Liam R. Howlett" Cc: Vlastimil Babka Cc: Mike Rapoport Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: "Matthew Wilcox (Oracle)" Cc: Minchan Kim Cc: Sergey Senozhatsky Cc: Brendan Jackman Cc: Johannes Weiner Cc: Jason Gunthorpe Cc: John Hubbard Cc: Peter Xu Cc: Xu Xin Cc: Chengming Zhou Cc: Miaohe Lin Cc: Naoya Horiguchi Cc: Oscar Salvador Cc: Rik van Riel Cc: Harry Yoo Cc: Qi Zheng Cc: Shakeel Butt David Hildenbrand (29): mm/balloon_compaction: we cannot have isolated pages in the balloon list mm/balloon_compaction: convert balloon_page_delete() to balloon_page_finalize() mm/zsmalloc: drop PageIsolated() related VM_BUG_ONs mm/page_alloc: allow for making page types sticky until freed mm/balloon_compaction: make PageOffline sticky mm/zsmalloc: make PageZsmalloc() sticky mm/migrate: rename isolate_movable_page() to isolate_movable_ops_page() mm/migrate: rename putback_movable_folio() to putback_movable_ops_page() mm/migrate: factor out movable_ops page handling into migrate_movable_ops_page() mm/migrate: remove folio_test_movable() and folio_movable_ops() mm/migrate: move movable_ops page handling out of move_to_new_folio() mm/zsmalloc: stop using __ClearPageMovable() mm/balloon_compaction: stop using __ClearPageMovable() mm/migrate: remove __ClearPageMovable() mm/migration: remove PageMovable() mm: rename __PageMovable() to page_has_movable_ops() mm/page_isolation: drop __folio_test_movable() check for large folios mm: remove __folio_test_movable() mm: stop storing migration_ops in page->mapping mm: convert "movable" flag in page->mapping to a page flag mm: rename PG_isolated to PG_movable_ops_isolated mm/page-flags: rename PAGE_MAPPING_MOVABLE to PAGE_MAPPING_ANON_KSM mm/page-alloc: remove PageMappingFlags() mm/page-flags: remove folio_mapping_flags() mm: simplify folio_expected_ref_count() mm: rename PAGE_MAPPING_* to FOLIO_MAPPING_* docs/mm: convert from "Non-LRU page migration" to "movable_ops page migration" mm/balloon_compaction: "movable_ops" doc updates mm/balloon_compaction: provide single balloon_page_insert() and balloon_mapping_gfp_mask() Documentation/mm/page_migration.rst | 39 ++-- arch/powerpc/platforms/pseries/cmm.c | 2 +- drivers/misc/vmw_balloon.c | 3 +- drivers/virtio/virtio_balloon.c | 4 +- fs/proc/page.c | 4 +- include/linux/balloon_compaction.h | 90 ++++----- include/linux/fs.h | 2 +- include/linux/migrate.h | 42 +---- include/linux/mm.h | 4 +- include/linux/mm_types.h | 1 - include/linux/page-flags.h | 104 +++++++---- include/linux/pagemap.h | 2 +- include/linux/zsmalloc.h | 2 + mm/balloon_compaction.c | 21 ++- mm/compaction.c | 44 +---- mm/gup.c | 4 +- mm/internal.h | 2 +- mm/ksm.c | 4 +- mm/memory-failure.c | 4 +- mm/memory_hotplug.c | 8 +- mm/migrate.c | 269 +++++++++++++++------------ mm/page_alloc.c | 12 +- mm/page_isolation.c | 12 +- mm/rmap.c | 16 +- mm/util.c | 6 +- mm/vmscan.c | 6 +- mm/zpdesc.h | 15 +- mm/zsmalloc.c | 29 ++- 28 files changed, 361 insertions(+), 390 deletions(-) base-commit: 21f39cc0346ea2081a83f0469995144d75d23075 -- 2.49.0