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 051D0C83F21 for ; Tue, 15 Jul 2025 13:24:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8EC5F8D0009; Tue, 15 Jul 2025 09:24:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8C5038D0001; Tue, 15 Jul 2025 09:24:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7B3588D0009; Tue, 15 Jul 2025 09:24:07 -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 67DE98D0001 for ; Tue, 15 Jul 2025 09:24:07 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 3B1C7B9B1F for ; Tue, 15 Jul 2025 13:24:07 +0000 (UTC) X-FDA: 83666567334.19.1C39E9B Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf17.hostedemail.com (Postfix) with ESMTP id 0FCDF40004 for ; Tue, 15 Jul 2025 13:24:04 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="i3JDp/L1"; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf17.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.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=1752585845; 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=p0W1gu/DbwB3HO+Ik7b3ciKtc0XnhekWlhthG95RGc8=; b=OUJYgAOyA8hn6osrT/UTC57CrgtOQJQh6909Dpq7USq6naAvkOCY5ctRM5ftNt6NLn1MIM NM4zNSsMPWBH7EBaOdCuGfq37uzrczcANt2ruMjf/RJgcARG1X+yNwJ/mgJY2F4tMDPBqq ENvH6ZZVQFWO/9uxhl4SRtHjk7FvJ/o= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752585845; a=rsa-sha256; cv=none; b=p4IcLbDB89IQkuNuDKi5HeLuwn6MZkJa2GH5qbtIMeeAqRI5/tbWLggPOJVooFlWL7u5z/ T+x9vu/eHaUDXJAK6laFQ/Zn2j4T1enJvnlheTZYPuAYP/IwdnqMq92yZ9q82mazbYF5IS GPVrhCc/pCzuEgXI9/dkliHGMNBY5GU= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="i3JDp/L1"; dmarc=pass (policy=quarantine) header.from=redhat.com; spf=pass (imf17.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.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=1752585844; 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=p0W1gu/DbwB3HO+Ik7b3ciKtc0XnhekWlhthG95RGc8=; b=i3JDp/L142nbOueUCkIn1Qo4ebgX6udjmDyMU5Nve+RUqu2FaHAvBQJgGxhvrVgekVtBYc SgX/Kn+KVTmlQpIFDuxIe1Qmvlh9/Gf5oTTXRfVpiSkHDJVGXUd3f9cWCbv4bCunQsH87u v1XHoctd8iUT4yAubJsMmzo3U8XA79M= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-491-tTEqSGVXP5aqtsMtXxnXXw-1; Tue, 15 Jul 2025 09:24:01 -0400 X-MC-Unique: tTEqSGVXP5aqtsMtXxnXXw-1 X-Mimecast-MFC-AGG-ID: tTEqSGVXP5aqtsMtXxnXXw_1752585840 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-45617e7b82fso12704645e9.3 for ; Tue, 15 Jul 2025 06:24:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752585840; x=1753190640; 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=p0W1gu/DbwB3HO+Ik7b3ciKtc0XnhekWlhthG95RGc8=; b=WUDor+2XUberIMZHRau5EMQRPryGtpHrFfOAoOn080wMagTD8xFrbFRjmVnTJlc24k dy9I2MQ3EYtsYC9aG8FZ2f/Ut9Bb7qx7G//PDKVn5Pqy3Y2fgVyxKIENL4q3SnKh1u19 ruhp5/hmFl/aMxGxcJ9TRkgTmrpe/MLsOvQdytmvIMPcUA2NQHsb9OAaNqZ5CJfTkyoX UC/LrKF9LkPlbloxMICQpsBMpMgkG7/ifmzHb4PoXZUu76OkOXtTntmi9BwRKcRlwNMa +5OIT/w0zVnoRqYNq3CrGF/wVNVG7oPylZ6QmZYJu+3XZCc0XGEP5ZedEFPebOZF2tZQ w93Q== X-Gm-Message-State: AOJu0YxYCByd3bUWyBVsZEWlssRD0/QmukRzGN6i+AvkqXbHbG5BfVPM s7Jm+y3nVtLaMg3mgCyMiyjrAjme1OQIQExSC+dqjCph1l8JFmIKWHXXtBFM72aHD7AKu/Gp4/Y P27SkHNcY1xk2o393isBoO3OjFW8ydD6WA/hRiCsQVff6BJCCcdZ4 X-Gm-Gg: ASbGnctmwUdUcmVo/YzccoP/Mzv3zLBNR5O/se5Epa+vrglOfhsDDJIVFLRr6PjeDNw +GD2LyGTvdZfV1Hz6+Fq3FDeLsaE7wHREa5wdA1dgvb6fCvykSSGVlaPIDXCrWOXLnsBOe8StZu VOJn1DwMtbkxdMS/O+YNajjQgiPONy/oQApe7393o8zW1IzsPZ6k80DobtwwX85O+ksfSwmzws8 UwCbTaqo0Nk7oApHVDARHRHzCa7eGzWBJe0zCq8bQqBAnRvxiZcsvG6+EDzG6bO0hDoAti4F9Rr ThoEsYOaN7UovVzcA1ue1Jvvu1Psgp5t7ipgE/Ny3t1Smrjdn3xZvJLz3jCjQja8I8vS3B5Xp7i zw9tij96aFVRlsX3BZjpGA8FD X-Received: by 2002:a05:600c:5387:b0:456:76c:84f2 with SMTP id 5b1f17b1804b1-456076c88c8mr137334485e9.30.1752585839962; Tue, 15 Jul 2025 06:23:59 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGYbWegCM0S6a5gfkNemwi6OlAVodA9645Tyw+PVXIOkDyOGbitNWxrBtqQg62ekGoPNGMvNw== X-Received: by 2002:a05:600c:5387:b0:456:76c:84f2 with SMTP id 5b1f17b1804b1-456076c88c8mr137333805e9.30.1752585839359; Tue, 15 Jul 2025 06:23:59 -0700 (PDT) Received: from localhost (p200300d82f2849002c244e201f219fbd.dip0.t-ipconnect.de. [2003:d8:2f28:4900:2c24:4e20:1f21:9fbd]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-45617f18d99sm69437455e9.8.2025.07.15.06.23.57 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 15 Jul 2025 06:23:58 -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 v1 3/9] mm/huge_memory: support huge zero folio in vmf_insert_folio_pmd() Date: Tue, 15 Jul 2025 15:23:44 +0200 Message-ID: <20250715132350.2448901-4-david@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250715132350.2448901-1-david@redhat.com> References: <20250715132350.2448901-1-david@redhat.com> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: LSqJKGpseLCOGQGR03K7Ue02Zv_cwvzf5Lky_Isr42Y_1752585840 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspamd-Queue-Id: 0FCDF40004 X-Stat-Signature: 5jowmxxzu1nfz5xnwqcrz4hjmpp333g3 X-Rspam-User: X-Rspamd-Server: rspam11 X-HE-Tag: 1752585844-143370 X-HE-Meta: U2FsdGVkX19Y13MOOR4Jnms32Hfi2PG/5GMC2XDshKu5xO7ZJrDzQBdvMrZQDwzvOfP5uEJiThWM+UOe9BSGZ3zyPvmfW/mkkWm3HCzzjzrZb2HBZwYU3xt/OLiTSFfnvqRFHQB2CyDoIITYxUS67vu5WScOXO66PUEAkJn4qWdRgDEtcgv0Ufx8nPLCBFDLCfynzOHx8Zbs5PYmfa56WG5Umfhag39IKyNSE0IHtylmxJoLPcnSJIzrJtD8X+wOqHnKYy1T8HMkFq5hn6RpHhyD9KV0MqRIjNF/NpUKnmKi22SczCLiUAnHV57SD5xR5+TTq9vKuzU23hAz4hoptq+AWzfGH3wM4kiAXuXjI3GA1k4nQ6ljh7NbWaTAzw1aHwSk6sjZ/lMK7G80G/Mgqt3zESyirdYF7gBlvG/09XZwk7Vnx3YZBrlw6Ys83HRK0BybP0RZ5A4okAA4G7Akj3+rR0Xe5XAvaCcwGD8nQOfP+cO6PvKlnP89j5bPzGn3nlOOrDQZiLUqs4nDOsErkT3maTjfYaQTYcJ/ZGMapiDLktc2CP9IAWgVt0GwvBiuvZLvqi2ED3gzlmSJ+sS4uiTylZVH3ADwhQ1V6C2dCknS+oV4Kx9/Wv+TbnYHBepzQnxSeI9ews5hzk/ygKA7XONuS8i8jkmbFGBlsW+pJVRwiz95w1hst39eKAhrIHtMNIt6pRryW3LttrNGYolZLi6lYw/mQHhaRWnAe061l24chD+N1SFUOUAhFs5DxZkn0nc46hHhNy1B0x24mk/yuCD/RcEbDyECdHv/0Q5Hk3AP5BGJfWBPdbJSb2LcbU1eSZUP1xKAfa7v94CjOHg4oYniF2TEWnyz1fHvR1uh7TbygSy8RVtcPDoO/+4IzKZi4XwDsCk96+JYYApfuadc9cEMH5oOSL+C+Us6JXI3yOMBrft0H9NPfzcJvF6E/F2M8W5Hj8gcBJ1Jm0NXaaK cXoyeSyU 6aOByOy8FFtkE+POHWsXpCq6sHe5MyDXiHz7mcLOGB1oe0pgQpg4+jK3c/awr6NcLXQqV2yEPJHRHIysuXTF9nH1g55DiLtKqsIO/SYR3C3DeP3BxUfJXudt0rUE7vMe2VGrOIvqP1qYm2E8jUAPL6OnIf071eZeJiowoNfQO/d1athRcXwZSban9txZioOPiQ1mhjRk6y6dK+gWyKVWiS3WcuixvoYiP2HQGzKm5+RWhKQ6Vu80nSwrz72/9iN9Mx36ENXeaqR/hIzdK1T8IaqAMKxLv97gEJpNzpK9TFpcdA4gtmRtsRcNOC+aJ2oJDtUQLonJtq0Cwnf8QQlniOkN6BAvZuM85uOYczQGq5fS5KvKcU1zcbXFDUm/IZCocOqIICzPxycpe9mS4+F2/6adlsRvUxGNeL8HKND3LRRWxZDphMQjCpNXpskbWGAQe7p4FW+e8b+sLKexV+tzc/HDegdQjOTU/Ku2xXTy/CRBUrNd06yIoQ9uPr1NSJq45EZW6li2dLFw25yr112imjzZrvQ== 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: Just like we do for vmf_insert_page_mkwrite() -> ... -> insert_page_into_pte_locked() with the shared zeropage, support the huge zero folio in vmf_insert_folio_pmd(). When (un)mapping the huge zero folio in page tables, we neither adjust the refcount nor the mapcount, just like for the shared zeropage. For now, the huge zero folio is not marked as special yet, although vm_normal_page_pmd() really wants to treat it as special. We'll change that next. Reviewed-by: Oscar Salvador Signed-off-by: David Hildenbrand --- mm/huge_memory.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 1c4a42413042a..9ec7f48efde09 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1429,9 +1429,11 @@ static vm_fault_t insert_pmd(struct vm_area_struct *vma, unsigned long addr, if (fop.is_folio) { entry = folio_mk_pmd(fop.folio, vma->vm_page_prot); - folio_get(fop.folio); - folio_add_file_rmap_pmd(fop.folio, &fop.folio->page, vma); - add_mm_counter(mm, mm_counter_file(fop.folio), HPAGE_PMD_NR); + if (!is_huge_zero_folio(fop.folio)) { + folio_get(fop.folio); + folio_add_file_rmap_pmd(fop.folio, &fop.folio->page, vma); + add_mm_counter(mm, mm_counter_file(fop.folio), HPAGE_PMD_NR); + } } else { entry = pmd_mkhuge(pfn_pmd(fop.pfn, prot)); entry = pmd_mkspecial(entry); -- 2.50.1