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 CC3C0C83F1A for ; Thu, 17 Jul 2025 11:52:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6799B6B00B5; Thu, 17 Jul 2025 07:52:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6237B6B00B6; Thu, 17 Jul 2025 07:52:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4EB176B00B7; Thu, 17 Jul 2025 07:52:28 -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 3DEE46B00B5 for ; Thu, 17 Jul 2025 07:52:28 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 0B2CB1A06ED for ; Thu, 17 Jul 2025 11:52:28 +0000 (UTC) X-FDA: 83673593976.24.73C8316 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf19.hostedemail.com (Postfix) with ESMTP id DBC0B1A000B for ; Thu, 17 Jul 2025 11:52:25 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=cXkgX3c9; spf=pass (imf19.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1752753145; 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=oAAYYXy+5qwpASBfNrlxr8guN8G2i706wjpGFlltV74=; b=rF/Os7zUzvAY1TTxIXTTc1uE27sDJlZsj3zbe9yOJKr3Voa6prbXaBhwJL8FZiQ+g4euSs s4Py7Umi25ScsugKieuqksYK54sGNBnpFl65fxX4lFjQ0iDFgjWMGlsDcKB51rgSOgT6Z/ 5xO/iCIMPPjDVWasckHoR/ooTgO9B0o= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=cXkgX3c9; spf=pass (imf19.hostedemail.com: domain of dhildenb@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=dhildenb@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1752753145; a=rsa-sha256; cv=none; b=zPmfxlNjUbydhS0dS2VN58FqNEdGpZrOrL8uNPAKegoQI3h0wvdPD94ofpI5Mq5OM+YaSI 1ncHm+uvxi7PTOLKC3a4f7MPOP4NaJ7kntWNuNqQVCTj6hUBcxbyjzyP9UoYlEAskzQJIc 9h4MUQz65uyJzw8lj5DAAMtSzCmiJVA= 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-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oAAYYXy+5qwpASBfNrlxr8guN8G2i706wjpGFlltV74=; b=cXkgX3c9kYjIW2OQGo/wqayiiTYVOHyMGs1vJq0Q0kyxiYk83lt5EFK5/a8OeJr99xrkim giqobNuLupMLeKB6LX3w0nG1SKLwOhr82IyegJrUTsbk7UX0XiMa0FE28V3/MJahcEKhfo DwzI/O1o1iWPc+S1jUd9GiFC5hVJkMI= 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-687-jwLbCcD5OAuFSHAeRkMDrQ-1; Thu, 17 Jul 2025 07:52:23 -0400 X-MC-Unique: jwLbCcD5OAuFSHAeRkMDrQ-1 X-Mimecast-MFC-AGG-ID: jwLbCcD5OAuFSHAeRkMDrQ_1752753143 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-451ac1b43c4so5300565e9.0 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=gC62imTOf+bdafyqo595JgJL/uVV0gRARrW7XmUr2z/kG10dr7sYwlzqZMd+bBsWF0 a95y5cKblraIFQYmi9DI4o9xXjV0HQvbCwAFx8MawyxMOS7a5fCNjRWf+ouPhzUB6uCG mqAt3VikcYGKpDFOkd9fxi18Dofl6F/a42625pizKSaK3glHX4pUgU+mZiOm3LcvMiF6 kaCFDBUFIIJfBnqWiLyCujX8b+QQIdK0qYOc9S0pPXr/l857VglNOciox02F9pn1o2AS azHRYNeEw9u2926ekae3y9+bY9L7nv7SxOFkvK5Xo7etukupih3dClAXmcSaNe7g3BoH akiQ== X-Gm-Message-State: AOJu0YyxmUFMjFHP8h2WiCEIwgFhQo4eU4jMoPq5eA62Kgwn+ENY+dCB THsS9lroXlZ855ViYL3tMPh4ie8pf8ZECJXek5VDi1kxzi0t69FYQ4AuOSMXLC97J1h491b0q1W IvIhLW0Z8T5BFtRWn2c3cyerrxsvcKDMhdWnuiTA1zkL9vA9z1vLZ X-Gm-Gg: ASbGncu5n5xToycTntugiFBXuH4+uA20Rshbn6jmd1AVRpPpb+s+sfG3IFoY9tC35n4 h8X0UImPiVrYDQi+Ut/hTfEvYUfqIEeNZKe9bmwntkN+TRLIyOho7e1Sxa+IOg4PaqqTymuv+lO P1mKS5YQLQUswRJE0i3zD9Ln8DCrcwnU52ogUxvpEnuVuyF/sVHHNGMx8wa6QbHVLpdjboUdBXm GjaHdjWNEjGT1xIdHVv1yCaPtk3Z+tHN6c+eUUuZVF/JjkGEhqdHIN+aXZ7irW9/DV5TU5wbTSj F4RlAt3RsYUZF+ZwlKS+kr5+xsh44eKoH8v1hSKyVmYatkAVHGoOILVB2yQ6iC368e6IsGW7OH/ ozw50173W+TVeUHc/jR0hBqo= X-Received: by 2002:a05:6000:23c8:b0:3a6:d95c:5e8 with SMTP id ffacd0b85a97d-3b60dd7aac2mr3879067f8f.35.1752753142620; 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> MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: yhjdmAjFVCn9AVyv39rlcHvMAQ-b9of-TaG3ySomebY_1752753143 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true X-Rspam-User: X-Rspamd-Queue-Id: DBC0B1A000B X-Rspamd-Server: rspam06 X-Stat-Signature: chsiedakw4ncaof4d8wwkojiep8cn3n4 X-HE-Tag: 1752753145-332593 X-HE-Meta: U2FsdGVkX1+Jc7xsrAkpTfWMAjgTJfh4a4vpzxHCu5qqPq6dRXCTr6mddBmC4c6zDq27m6LLSUeV9bPbl4KaRXugcRgXoWbRIcdxlmBp6hzxM7usAgSsB3+OFTasCr1MSTtinSUIyyxwW+LfPPwXgthOTMAQrRq5CyBx5mKLYgqlKDKpL92Xvq5MkO9p8flK8Om/vmOEnxnl8wsZfqPyRn17Ugmd1M4peCfHiV+hOSJwq/Yknh4IbwZFJhGsF+o0vGHOjW9QJS5K9rAZE50LO2GN3W8I2LsTxXBAJO7iM0kAj8Vuj/VCyOk5jV/LiDGTGP6SxaeEhIeAOFot2yNDuxKU2Sonvx9w/vVBGfAoSc701CGMAm+kjcHpdJefBcuEmD5UIep31obtbzB2YU4FGZEjkLX2wjm1dlsqUHU2TLEqz8mPnj6vYnjk3jUoozAH2OIqiWfpjWDYjETFECUBczxadoXBDsMP4GjbWGSvIiS6VRYZay+7bEpLe9dV7tDChxZfVUmdKMGxTU6sUcOoixNYcZ7DkyhRNyOm8o2+/oK6pMIsg18niofwgHUXeVXHrUURldigrvvnPaDmOuIh9Fn38gm66/rU5y/rnOMnqmA42z3Z2FWCbTw0TU67uL8TWnWAFBpEEl2eAiI0M92LJkgWHdHXuGIloJFtIULN6nxQpLWleuRaN0yZ/VZYrqINgXH1JUNdqSQIqG/XPjO7aV9xmsIV2xyyRrI/l/Uegw/A4/YIRvnA3UEjp3UuJEGys7jKQYLOtB0kUOH+uaNV/ZuWZ9NjJZZ90n5vFpC9QAPESFSQQrPodCZI/VRdlKG4l0pCDz48ZlKnbjciv1kgy9efme+TnoPi8W2dKbrdlk/7rBYycHe6wc4Paxs33DHcy6ER+vNVBhpxMunxbrr48KoFdEINWgKhmxFXbpVcmoLyQpvNGm24/gOSJlBqqOJokFyfYfyT3IDPwmZ3jiR h4zbqnxi Xh6k61xiob7YaHC/mYKR95sWxhwS4kmj77C+JAxxXhqTc/xLObEZP1SqJQMys2vuKtUVRu0CGp5GGNyaLY512nUH5J8KaX9BjuWcYNGmRPlTlIUfF8nBa0r8c9v048aBq6n0PwxVD2iLJ6yoOYM5cd+Nzmr0DabUvL9vcZZr0SA1W3rJS0b3pM8168lmIq83XErQe0mnw8q2cotPQcWHNHTq4Tib8Zno57QEDQYKN4jOFJpsk+yZCZoTZedldfY37zjvVsG7H0Egm2MSM50IPz6j9NRcggw9iNDl9tBylQkAI+Unj+jbPg2ZW5qomrBJ7iRSLg4AKB9+Q7bX/osnw989GYf/+xD7n4jj1hYdtZnTf25YeCNeIlw9hAZEcrPF4oZekV21odMOYOVAtTMtO1AYt1bmlGgS5tGdM4jtXtV6fhOaf9qUA210uG3KmKwJcxS10/D8jiIdktKndJH5oWvwjagXp1enUOBk9qRSKrYgEGNsQW638viKlGfQX891kfzupgbuZ51dmQJtempBuSnP4nQ== 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 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