From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F7502E3B1A for ; Tue, 15 Jul 2025 13:24:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752585845; cv=none; b=jYFs/Z0BifgrM8Y/0Wz9I8HZ77xsCipQNSityExxxAeK8+TFjvW3cyzEE8JnrSkMXr6gyOD+nuTFsMCNh9MyFqh0u8f2SwAo4kpdXSz0EqdwGjcDrjmXGLBSiz/qz3Ei9RGTUKCVb6p9ri5ICXN7PZALuebfIZG+SiwZ3XVu9jk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752585845; c=relaxed/simple; bh=2xbQ3r+7QPHP9nmWWSES1W7hjLDjnCzsHuStzPREuqM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M6xyLXX26LGvm1HMHq6jZG0aeYi+yhmSnvQRZOBBnDTAHmwJDzSfCVvCbg1tm2cCF1fhY/BAncl64QJM9+LsKZOLC08xOCwX4CnywUQDxQzaBjySZCKJtrNmEG8k9Lktn/lF0uqjeAxw5dviRk2/TKPF2+xEEEMsqxC0i/Be7hY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=g7nSWJ3N; arc=none smtp.client-ip=170.10.129.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="g7nSWJ3N" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752585842; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=p0W1gu/DbwB3HO+Ik7b3ciKtc0XnhekWlhthG95RGc8=; b=g7nSWJ3NFKOe8Xdu6cctJ140V8U+CYfzIzBQxHpZICLFTboXUe9UJrDeyyr4bKXqpvlFtW 4R8Jn9BV1CPBFQ2B6qI930ejjvCtNSRBAZvioJuYQKAJ5fNxPeYSCmtGtCgPWID6D/aNvy vMFakjUnGbXsWVamGC0Udoq5nr9ndIE= 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-j_dwwotjN9KGPAaRv09Otg-1; Tue, 15 Jul 2025 09:24:01 -0400 X-MC-Unique: j_dwwotjN9KGPAaRv09Otg-1 X-Mimecast-MFC-AGG-ID: j_dwwotjN9KGPAaRv09Otg_1752585840 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-455e9e09afeso19700595e9.2 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=pCIVVI7UmQdkyKcE9F6t2kRDXaZDFjjXNMwHBTXIVBChr7LIvR24WUYU8BtoNR8yi6 6FreTruxu+lMoLCYxTBTkko3l/EbTy52LBz4vCL5gRpwlnbqBegBbChQu+fyNIBbeIby GmRVDP69VruqdVsRIFSU12OJC9vPmM/QOuyvDeZz9PwpxUg2JuZ693/RwFXZNrYni3LW Z7rziZorh5cdgK1fB+a1ocRNQokinzbrN688h29QZRzlbPu3StQ2+quQoWjmKmAV0tsg L6Cyk3RGjI/LdXLZ+SFlUkVFtFb623E1sNrfw1q8teTqCi1DcKw8KMHxApEeQN54JAsE k8hA== X-Gm-Message-State: AOJu0Yz6I59NolaUX3Xl7FOf0NkgpNpc4QIkQgLijn2+CDHDjeeLlrga ePIXeyj308QeX90q04e9a6mL/Cn0uQlIbrFVP27EwL7RmJjnFGRBhqthMgs3todA4z+C8rzn6Ve Yv6rRt615FiLYjSJmSlsb5igvLPLWAwcjOfM1JroK87We0VZzSCFg5EsL98dWutJdySqFYodDoO TmvQUSMADIBqEEcCpG8/pv3imUFBGyT2pgxnUVN5pZgSeyxtG+ X-Gm-Gg: ASbGncu4OSsEC7BxGUSQX6K4iLQHKH9mBmfq2ktQtRdgvIrxTc4qacY0kysrmwWry14 /pomLeM+svrfzW3fPKemGkEU5SJ0awn4U2dOA80C45HHUb+NGDprSZXCj3Wb3Cl69ML028x7p2n 9xKPkdfeiK4fKpqPILm2uYTEQWKeSdmwp7BvTg8h2c9qeoOLdOygjZJ91H5L4diZGJUL0D4//M+ eo/PqpW0nXnzj8WBQ22jTMjcSBF+7bjn5Bg2cIQEibzBkKJ1K214duFk6SNEYXaxTojhW2U/DpE B8m3T48UNcjKPlfvVIE/m7Fr6WMWB7Xq3jJOnoaG9VvrV1lWmYoBq7YRc5wq4eQWnAwm/Ac3FEv HPFJ7CJwBY7k6U535vI8CjuIL X-Received: by 2002:a05:600c:5387:b0:456:76c:84f2 with SMTP id 5b1f17b1804b1-456076c88c8mr137334685e9.30.1752585840203; Tue, 15 Jul 2025 06:24:00 -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> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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