From nobody Tue Jun 16 18:04:51 2026 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2C9C22D1911 for ; Thu, 30 Apr 2026 04:11:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777522293; cv=none; b=r+/Ggf8kiybv3bPajk0TgzELS75WHWkdJ+ctd6DCl3pf7g2GXALAICfxqvo6WQTTSfoDrnYIyDJFKL4J+OS2+frw4UvL9tvZzrvV3Ff8cWC5BrjNt35YH6c4VG1P3mfAf/v9P0OcV4qKT1qv3g23mEU4Ubn6BdvmqckvkTreEec= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777522293; c=relaxed/simple; bh=7OsVIG/rRzowhh29xI9jiQkzoBR92bAwSREnA/P+wms=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=uGElgFY+uFJq34qVXLzYEesqoVsqYQ0IfO29+YVSCj+C0NFWQxnzPGFjOm4xFwtwI/AciqoeN7OfDjc0GywTPJmhwyRUpfIgO8mUcDI4Yn4GNssZq9SNCOr6oHiQzVa/yiyV/nmcq8CUtUbbkoHp0ASHolSov7j0h5eloWXvXz4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn; spf=pass smtp.mailfrom=loongson.cn; arc=none smtp.client-ip=114.242.206.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.2.5.213]) by gateway (Coremail) with SMTP id _____8Bx0epw1vJp3GAFAA--.18384S3; Thu, 30 Apr 2026 12:11:28 +0800 (CST) Received: from localhost.localdomain (unknown [10.2.5.213]) by front1 (Coremail) with SMTP id qMiowJCxfcJu1vJp3dp3AA--.29543S2; Thu, 30 Apr 2026 12:11:27 +0800 (CST) From: Bibo Mao To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH] mm/huge_memory: skip huge_zero_pmd in zap_huge_pmd_folio() Date: Thu, 30 Apr 2026 12:11:20 +0800 Message-Id: <20260430041121.2839350-1-maobibo@loongson.cn> X-Mailer: git-send-email 2.39.3 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: qMiowJCxfcJu1vJp3dp3AA--.29543S2 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== Content-Type: text/plain; charset="utf-8" when executing command "make check" with qemu software, there is error report like this: BUG: Bad rss-counter state mm:00000000972846bc type:MM_FILEPAGES val:-4096= Comm:bios-tables-tes Pid:27802 BUG: Bad rss-counter state mm:00000000752180c5 type:MM_FILEPAGES val:-2048= Comm:worker Pid:27815 BUG: Bad rss-counter state mm:000000009c2f6a61 type:MM_FILEPAGES val:-2048= Comm:qom-test Pid:27825 The problem is that when application exits, rss counter is calculated with huge_zero_pmd huge page, instead it should be skipped. Signed-off-by: Bibo Mao Tested-by: Bibo Mao --- mm/huge_memory.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 970e077019b7..3cbea344d4a2 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2423,6 +2423,9 @@ static void zap_huge_pmd_folio(struct mm_struct *mm, = struct vm_area_struct *vma, { const bool is_device_private =3D folio_is_device_private(folio); =20 + if (is_huge_zero_pmd(pmdval)) + return; + /* Present and device private folios are rmappable. */ if (is_present || is_device_private) folio_remove_rmap_pmd(folio, &folio->page, vma); base-commit: 3b3bea6d4b9c162f9e555905d96b8c1da67ecd5b --=20 2.39.3