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 39B2429E0E8 for ; Thu, 17 Jul 2025 11:52:25 +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=1752753147; cv=none; b=ASg63kGa5F/N8r5/umDH5WhRmXHBTqTZLZ7BkK+JS/vS2md1QskjGbDg3KxVCnLLHhocct/u3M+Xf7g6UBZSYwSNAZrldUGoug0ycFyAkmNOBvo8QxRy0+8Eqm2IhN7Xn+CyhwoyHkozPy64pRG1hfTJycYG+yZSaK0zQoh3MGg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752753147; c=relaxed/simple; bh=Dg+vKZ/RO8UXSK7n9DU1KLHAEhb+/0cG5UKKUXsdZOE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=midCrxbkB2zBzpd1CSsvkQjesOsGqCJprVJs3A/LmY0rfFR8t/rG7/xqgbiBaxf6QJ1qHAdvTQU99zbu0I0b2fMgOv7dSNg4MxjLzJtPMtueO+sE7xnP/buz5ZopQAYrCkgWLlMf6liUSVx7WFgKM1hcSog7Qgw4bGRbnYwKgSI= 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=IzboA5qx; 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="IzboA5qx" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1752753145; 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=oAAYYXy+5qwpASBfNrlxr8guN8G2i706wjpGFlltV74=; b=IzboA5qxd+l3GUkwI6r9FA5oalx5gYoJ5qzOY2eJVNWiS//3Ud5cRBITPGy0B3IA4YPcBI o1GiFOlzawl/d3S0IYzFz/cZ/B8r5M2e1rryzOhrB0sOGz1YGD9SBqM2dhrw2hwd8+v9T7 i/JD+8uCVNrSYw0S/JLELitpfNLYzOM= 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-669-dgCTIaGgMseZpd4I6hEkSA-1; Thu, 17 Jul 2025 07:52:23 -0400 X-MC-Unique: dgCTIaGgMseZpd4I6hEkSA-1 X-Mimecast-MFC-AGG-ID: dgCTIaGgMseZpd4I6hEkSA_1752753143 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-45526e19f43so3061655e9.3 for ; Thu, 17 Jul 2025 04:52:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752753143; x=1753357943; 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=oAAYYXy+5qwpASBfNrlxr8guN8G2i706wjpGFlltV74=; b=lADLnO1L2NhnoTlCUrO2jcmPShklN26fbeRdFQUfVhvjrEmhmKWVNjuqKT8MldCq8a FjWHZhHOl9AEFUwbov9IJzY4XGww9xPEhu0Si8/6pee29pxubm0Psc5gC+8HxeQo61QL nVlvolM2iOnOy902DuYROYzpn1lZaqcwYeGFkgkdy+pEjLLPBI5Q3AiP9YN3/J+/xnf0 4UepQcBsCBySYQfzbqRVjXfYlke/8tNreFuhR+TMhdIdEAgqWIxn35bh/DWN9z4i7uYn K6f2AziM7xFvRR6s0zUTuNxNpZ+98PvgYiuXEw+q92mKbORhe+EkzxjBbm8pvYvWH1zS J6OA== X-Gm-Message-State: AOJu0YzRU6fHV/Ci+vmgOPmjlXoDWbXLWjQ1zTbSISZoyUbht/ls4fqS f492E1YAGwe7liOjXODvKehLks/YZGIqv3i+27hXEuW6tqU6hzlkzZOn0qjdnnjdrYRhOfIM/lj mS2OoZqzlMkmYkjCdNI7oHr5up3Ls3+GutIa0cICegfYQtQo6r3ifDHgQfypOuuCBLYd7wgHqwZ 96nvdp7cP500ME5IwNSEXB2T+hcZs/0HefiZittIOONSmAivyR X-Gm-Gg: ASbGnctKa2RPvmKrAayHI/cWMuM0SHxr9TnLR4IN6oS4WvixgoioG3FSd4S9/0/3mTQ UvJRIDYCYumUal8NtPonndwmdNUqfXr3onqEa7Qm1Z6auEDetznWTR71jX9fB6vze2cctjTyeC8 VaoRTHwVNt/UB8vW+ZqJkIvkEdmNY1N8vMUPH1BdxcyjcJLaS2MDWnxJ34aq75Zk8LwsqNLt6Zz gBZefajb6wZt+HkxZWyp0fRbdq5lqI8beS7c/52zAwkYyUaWmfHxEQCMOU0EMdNpuoxmAOQN51k SlLH1Pv2/nOrzDnruZHE4VybqZP/xrJmCT0xfhXk8wlHKOKz8gLnAzVVdBFj/gLycQw/hYSTdUl +3AlUdCowJIFxXlW1NgT1brU= X-Received: by 2002:a05:6000:23c8:b0:3a6:d95c:5e8 with SMTP id ffacd0b85a97d-3b60dd7aac2mr3879081f8f.35.1752753142712; Thu, 17 Jul 2025 04:52:22 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGLqq0HSziphIF4gY7jkSa/7zMDAewp7/5b6DkIKpjYL1yIcxKWQwPQ10nRUjdRU/WgBdtqyw== X-Received: by 2002:a05:6000:23c8:b0:3a6:d95c:5e8 with SMTP id ffacd0b85a97d-3b60dd7aac2mr3879028f8f.35.1752753142142; Thu, 17 Jul 2025 04:52:22 -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-45634f4c546sm20298345e9.7.2025.07.17.04.52.20 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 17 Jul 2025 04:52:21 -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 3/9] mm/huge_memory: support huge zero folio in vmf_insert_folio_pmd() Date: Thu, 17 Jul 2025 13:52:06 +0200 Message-ID: <20250717115212.1825089-4-david@redhat.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250717115212.1825089-1-david@redhat.com> References: <20250717115212.1825089-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 849feacaf8064..db08c37b87077 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