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 A283EC83F1B for ; Thu, 17 Jul 2025 11:52:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 365656B00B0; Thu, 17 Jul 2025 07:52:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 315786B00B1; Thu, 17 Jul 2025 07:52:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1DD4A6B00B3; Thu, 17 Jul 2025 07:52:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 06A106B00B0 for ; Thu, 17 Jul 2025 07:52:21 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id B66E11406E3 for ; Thu, 17 Jul 2025 11:52:20 +0000 (UTC) X-FDA: 83673593640.16.00A8AB5 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 9116412000A for ; Thu, 17 Jul 2025 11:52:18 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=auEQdSC7; 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=1752753138; 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=8sA1/7fJchUOMEyFR6/9XGM4JcADGMS+VMGQR+LVY98=; b=8ontjla5R7sDa+iVj6GpqPA0EeUjVk+0e5APti2ZE6oTvmgSTID5RTE5bzrXehFhCUrS6S SFEtwW5TDlJnSQa7MBG3A8dIe0N6P+PA0u+QInOSwuNED8K64QA3Lt7hJfzFqvKlr9a968 9Xb0i2a4KDI6ox4wRL5UqIf+KIZR4d0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752753138; a=rsa-sha256; cv=none; b=pi8HxWw8dblJmbwQ2gxt7i2bN825mBR+MnDYSQF28McuQ+HkB/VnG+VcrZkED95mDtqkD+ 3OWCpqeUikoIjcsNBWsArMdxnbUH1w6xXBRKbOc0e6m/XuuGRsOIt6JksH1j0Nn63aYj7F cb1CXwqxVlx5cP2CvBSYhz1opZRc1uI= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=auEQdSC7; 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752753138; 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=8sA1/7fJchUOMEyFR6/9XGM4JcADGMS+VMGQR+LVY98=; b=auEQdSC7ScenFmFdRGu7qIfq7qLkHTPRvtZEaByl726V40loiUtyRGU84zoYoaO69KlyAD lyazOEbaFepDjypGIEoQ3tDW3wDeMn+LT6FYjQhR0Dx3hn/5bIjJTDNqBdvAY1GC5lsUB6 rUylP161O3blAQ1cAIuWPVOzBHnXeRA= 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-194-uUJgB6NZPTOtdtXrK6ULZg-1; Thu, 17 Jul 2025 07:52:16 -0400 X-MC-Unique: uUJgB6NZPTOtdtXrK6ULZg-1 X-Mimecast-MFC-AGG-ID: uUJgB6NZPTOtdtXrK6ULZg_1752753136 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-456013b59c1so4808035e9.3 for ; Thu, 17 Jul 2025 04:52:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752753135; x=1753357935; 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=8sA1/7fJchUOMEyFR6/9XGM4JcADGMS+VMGQR+LVY98=; b=LBL7qalimNHrcZDAm66/Vdj370ba180kK++AztjoeAoP7mmPa/uh9VJLcPoRtdqCkO 9ysa0cXD2KO0mm0CHdxNvFaTWAFznHVZVg+PTBEXEGVMQQeJ+23WR3xFc6GE3I+bCyRM 8DO3GGm89N75h/h6o4fOY9Z+rI0R5ZohvebxrrV92pVUCGAkrwF/aDFnAKu3E9eDgXnQ yRerq3XctY8FD0vbTSg3CplOTOL6fEhOCl90TJbPiLxFB3APoc85zR7SLz9yY+TNHzxq eOcEp/uwwHqx/AUFDT+GDlf3JnILOUHE29A5u/EEhsoQgTeVNcyU7CgnSelvaAAPFRlG 7CxA== X-Gm-Message-State: AOJu0Yx7nvuQBz3UlhBD/mIFjH1qJtjp/qtluUWfUO66+b2XV7wi6dKB N+8g5sbMajHTRqQXI3cwzkLQFQNqD4ca4ZNn8EA9/LGx/qNUXEuLRCyhk2BOaHdX4noz19nTi8c e/RV1u0dZ32fxiZiTdaPicsGHXaXID+i3Yz+pyUsVOZ5WbACJXN7T X-Gm-Gg: ASbGncvy4/RE6cEZa/MtNTXxrascDLnrXiRIMcoSRHOZehmfgQMQBwsPrYWtVrH7xZT U9wu79diAZAQ6hQjbKGJKxjZy55BpPIe6ahvU+s/r9lSIer7yox/RnuM1QkUcorujgo5aB2yAIA zXIrOxm1fdNNyTtMtN9gO1K6uxk+Lr2Rn4CMDNty2D8O1V2MuUFw9ZkFUHoOAO76wf2ovPXhc0m 4eL6WJ7Mmin17UGdNNZA5Krjj6rRf6exZgIVwcnosBUYajbntBVFmuIkparVCe/SwQwWxKAPLUU ZpGkEUEpQT8ILE9DIQyf9vuU3iT+zGPq8awu/wkgZm9GcAf9W9nwou3bQlheaW3ewQQ6aaKmmPq 7ucHZGodBRgEFgMbe78PyEFA= X-Received: by 2002:a05:600c:3b15:b0:43c:eeee:b713 with SMTP id 5b1f17b1804b1-4562e36c7b1mr56529825e9.20.1752753135456; Thu, 17 Jul 2025 04:52:15 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF/rOiDh/w9bPyIOHiP0sGPa++157liovsPLJqB62Hs3kS1lvQT8E6z4/Thjm3n+RdALYGJuQ== X-Received: by 2002:a05:600c:3b15:b0:43c:eeee:b713 with SMTP id 5b1f17b1804b1-4562e36c7b1mr56529205e9.20.1752753134877; Thu, 17 Jul 2025 04:52:14 -0700 (PDT) Received: from localhost (p200300d82f1f36000dc826ee9aa9fdc7.dip0.t-ipconnect.de. [2003:d8:2f1f:3600:dc8:26ee:9aa9:fdc7]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-45634f85fd1sm20282385e9.25.2025.07.17.04.52.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Jul 2025 04:52:14 -0700 (PDT) From: David Hildenbrand To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, xen-devel@lists.xenproject.org, linux-fsdevel@vger.kernel.org, nvdimm@lists.linux.dev, David Hildenbrand , Andrew Morton , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Dan Williams , Matthew Wilcox , Jan Kara , Alexander Viro , Christian Brauner , Lorenzo Stoakes , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Baolin Wang , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Jann Horn , Pedro Falcato , Hugh Dickins , Oscar Salvador , Lance Yang Subject: [PATCH v2 0/9] mm: vm_normal_page*() improvements Date: Thu, 17 Jul 2025 13:52:03 +0200 Message-ID: <20250717115212.1825089-1-david@redhat.com> X-Mailer: git-send-email 2.50.1 MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: TgawrcuaOaLNSdcmYmfs_uHZY1GOqkhqlcfUtHcLPY8_1752753136 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-Stat-Signature: adpwzjuthrmss9agkc9xepdsgwpf8rrf X-Rspamd-Queue-Id: 9116412000A X-Rspamd-Server: rspam10 X-Rspam-User: X-HE-Tag: 1752753138-150985 X-HE-Meta: U2FsdGVkX1+gaGox0enG2N4Pf39WMmNO3YUEt4nDjPANzziYHviExqrzrewnLTkjMXzLkUEBYo8sR7GdbZIxzvknxFsAcXD32sBxOo+b3WgMIt3XFjYGKjQL06tRS3S3+Ixi5gtMhB9yafo6JOM98ASqM8oAtL/XBQdnyllUpimpOnSxFE85eO6oXZ2GREK3B2c2oZyTN+ZfQsFIBvcW5F2Q0Yt7pQgCZ4dWfspM5IWs1X6UV9q27ucxYcmCcnNreo+au5gejbRkCyC2kcOaWkfVchqGBPpR2Lo7QXpZ7MCQDoRZJim+WbKX5JxnL4a7r5t5KIAsdVc4Lb1p+VX1e8oL8SZQRqyagR20L+XMdmnkq32a2v4O+CKjczqnJxIIQ00VYIXid4V2bw/fh664J2etqh7k/WS6AQfu5i3Cz8r8IL6IYrR8F1OjyksHo3zpyZCM5t3Nlc84rIoseDEpJQjaukA2qJHEVKY0sBLgvLseZ771J0/BfHtUt23TGW6IFW5ueLyk7OASyCPBOd0PC6mwkdm3NC9j8nsIogrARipSNdRyyTQKhDiAYdGvTTdsCJQeBpGIgbEvO/gnpN5vH+9TEt+a6mDmMEUNa87OK3z1OCnFRnAAMlOQX7U7+q010phelYLbfe1lXQSxFsaj5pg5u5Om6dFh4zNuAukvYAqAZlkm1SW5uVjNAB/7c0wnuYALmt0VydEONz9AxLLJRP8QQRJ8xAADouquwP27m9yBM+mOeY3JM5qNKH6yd2FdSQLP48S9kJTmO62WhuHB9wl0rg1K32H0QZZziNLe5cba0QYjQdSVrSnusZshgNk4djFQks2yFU0t3wgwXPJRh6c5N5RtsutaArUduap/SzvKstWebxXCVgYYmYCIxm1Tu7v+xB4pusGJVM7+hN+3Gv3b3twaDh3n0u5ok6YPYv6FwfVXdNlHr54zadjVPtKFwzDccMBsmQ58rod0DUV ODUj5ant 4L6Em9RikelfrKpBrUhFnG/oNImUzn0XosOeG8DWZpgWRhZZGUjqQhQB9Ip6XuO579lq3A3PsMiIwEXCI2AXf/rZczVcWsaU/lCEBV5xBQ+MC5jSnT5jZYtXQyKFbd4pIERiHbkULzD88J386LUnWBM0GFczbb/PINOn67MkKfvOWybE7I2OWYtxoCMGDr6WrmEDzsWhK9n9b1LpAs6rl4cRWSXfkAYJ+iz5Lb3Sf+8/vInAS+n6ZuesInJJ81nFGfm+xYJWECa3Ewwkvg4ukUyt+D09w+TeUsXU/NUOTXmlcWUBGOtktTOvvCdR5qVmouVu03GYYf2HuWt7Ez/lgRykajKh5+rrM93APhvkhj/7+fAbr4zeggLCPy0zm4qjGUZXTbjE0I3GR+wUZiMuVwRMTFUrjAssfyZVfJ65FcUuUy4GZVw4rDgEimbqK2NAei1wQN0pzHe/uoLVir9TqDYDjjb1rGid0d+7hC4X9VK1EVgLRuVIxLFxh/vppGCaNLNjd71pOpTc5J+0M5yRD9xTgd2p4D8VPTj2J8g/SzZ/MtULMNS8CwB1SvDPErW7hfbX3YQ3/mxntMwa2PmHdpH0ZLFtfREnetuUcDoKUDVMxv7jhf0iUKjsuJfMZarjBw4GLbNQnEdd0hwoNVC43i4N1PegLbwEbjjCKDTZWTJwiK6PYv/HSEcFV7j+ONrHo6DMq7k/SDycZF++p2OWst68pS1fUPOaZeoy6NzO4l69KUJNHCoIi8AhEp3svmQ+XQDc/lXBA4tjc2l5nMUmgOPFAkGWOyhsq7GzicoBdEQxFoxlh6g2mh5EW6DXBA3uO7M4Ayf1rfqHEsG9SHQ2i0JDT0so31EWcPFO3AhVEV9xhXUrWPyXt4S9NFRy0pmVRdQ/PQ5VSRhG5hbJaUjDloaTo45CW571LZ1jmV733mnzflsQVATBtbkySPDPBuTOPxlh0uRlp32g37GC6KaJZ1LhykKFg LK2XYGqi irSOeOuqUrr1fb8zZK1Y2XBY2J6W+bYrccEj8oLynFA= 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 from today that contains [2]. Cleanup and unify vm_normal_page_*() handling, also marking the huge zerofolio as special in the PMD. Add+use vm_normal_page_pud() and cleanup that XEN vm_ops->find_special_page thingy. There are plans of using vm_normal_page_*() more widely soon. Briefly tested on UML (making sure vm_normal_page() still works as expected without pte_special() support) and on x86-64 with a bunch of tests. Cross-compiled for a variety of weird archs. [1] https://lkml.kernel.org/r/20250617154345.2494405-1-david@redhat.com [2] https://lkml.kernel.org/r/cover.1752499009.git.luizcap@redhat.com v1 -> v2: * "mm/memory: convert print_bad_pte() to print_bad_page_map()" -> Don't use pgdp_get(), because it's broken on some arm configs -> Extend patch description -> Don't use pmd_val(pmdp_get()), because that doesn't work on some m68k configs * Added RBs RFC -> v1: * Dropped the highest_memmap_pfn removal stuff and instead added "mm/memory: convert print_bad_pte() to print_bad_page_map()" * Dropped "mm: compare pfns only if the entry is present when inserting pfns/pages" for now, will probably clean that up separately. * Dropped "mm: remove "horrible special case to handle copy-on-write behaviour"", and "mm: drop addr parameter from vm_normal_*_pmd()" will require more thought * "mm/huge_memory: support huge zero folio in vmf_insert_folio_pmd()" -> Extend patch description. * "fs/dax: use vmf_insert_folio_pmd() to insert the huge zero folio" -> Extend patch description. * "mm/huge_memory: mark PMD mappings of the huge zero folio special" -> Remove comment from vm_normal_page_pmd(). * "mm/memory: factor out common code from vm_normal_page_*()" -> Adjust to print_bad_page_map()/highest_memmap_pfn changes. -> Add proper kernel doc to all involved functions * "mm: introduce and use vm_normal_page_pud()" -> Adjust to print_bad_page_map() changes. Cc: Andrew Morton Cc: Juergen Gross Cc: Stefano Stabellini Cc: Oleksandr Tyshchenko Cc: Dan Williams Cc: Matthew Wilcox Cc: Jan Kara Cc: Alexander Viro Cc: Christian Brauner Cc: Lorenzo Stoakes Cc: "Liam R. Howlett" Cc: Vlastimil Babka Cc: Mike Rapoport Cc: Suren Baghdasaryan Cc: Michal Hocko Cc: Zi Yan Cc: Baolin Wang Cc: Nico Pache Cc: Ryan Roberts Cc: Dev Jain Cc: Barry Song Cc: Jann Horn Cc: Pedro Falcato Cc: Hugh Dickins Cc: Oscar Salvador Cc: Lance Yang David Hildenbrand (9): mm/huge_memory: move more common code into insert_pmd() mm/huge_memory: move more common code into insert_pud() mm/huge_memory: support huge zero folio in vmf_insert_folio_pmd() fs/dax: use vmf_insert_folio_pmd() to insert the huge zero folio mm/huge_memory: mark PMD mappings of the huge zero folio special mm/memory: convert print_bad_pte() to print_bad_page_map() mm/memory: factor out common code from vm_normal_page_*() mm: introduce and use vm_normal_page_pud() mm: rename vm_ops->find_special_page() to vm_ops->find_normal_page() drivers/xen/Kconfig | 1 + drivers/xen/gntdev.c | 5 +- fs/dax.c | 47 +---- include/linux/mm.h | 20 +- mm/Kconfig | 2 + mm/huge_memory.c | 119 ++++------- mm/memory.c | 346 ++++++++++++++++++++++--------- mm/pagewalk.c | 20 +- tools/testing/vma/vma_internal.h | 18 +- 9 files changed, 343 insertions(+), 235 deletions(-) base-commit: 760b462b3921c5dc8bfa151d2d27a944e4e96081 -- 2.50.1