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 A05BD34B183 for ; Mon, 20 Apr 2026 12:50:35 +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=1776689436; cv=none; b=k2Bs+GnDHykMuVcMBmy0jHZxdOs53KvGvZ93jdqYX6Iv5F0hIOv8w0SWKvJ3/p7ptBK+K1rCQIEimUoeQ8hF4cBWrurP4hAhb+NiPwO0o9GB11xpXvoQWhLJctJg9XfJqaNzVlE9avE+bBjKtK1IxkjLiRuoLBHpS5Bpp5U702o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776689436; c=relaxed/simple; bh=pSp+om6wJRkEyaJKuodIN3r3I4NOe1erDIwSwnd9xvk=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=ts31aFQzTmzfte1lfhC2vYa5lghGkuMTmKGwi6ikspwROsd9vlgbwKf0YRFs4lPV5XDdA8VBVsbyHp9Zoc9RUK3tt+k3Ny+sckTqBrlOuaaMomth6tsnn2AMkUyw/N/VOsebXVcVjC8OgBJAXZt0yJCc3bHnmLJ8CPboH6tO1bk= 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=hdV3rFHl; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=DBkyMga0; 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="hdV3rFHl"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="DBkyMga0" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1776689434; 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: in-reply-to:in-reply-to:references:references; bh=lC9qQY7bzQ6V7tm8vX9AgtgL5Xqe3kB5rW8A2PJPlKk=; b=hdV3rFHlU2B2zEikdWPqlW1xq29Njr/wa1F6HSTeK6FKrRU1iCHBZZ4d7jF1mqbEUH12Vu l/iIuVIG7BvJ0e+9A9rV7/VyUPTEfoFGCxQrHw95xoWtc9x0ATXPoz2DNG4VE6Q95ZLGM8 Kk1zmwkO+/KfClluCcmGX2ChT30/yjA= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-5-5cqa8ociMTaJGa-JMJgTkg-1; Mon, 20 Apr 2026 08:50:32 -0400 X-MC-Unique: 5cqa8ociMTaJGa-JMJgTkg-1 X-Mimecast-MFC-AGG-ID: 5cqa8ociMTaJGa-JMJgTkg_1776689431 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-4411a572dc5so650989f8f.1 for ; Mon, 20 Apr 2026 05:50:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1776689431; x=1777294231; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=lC9qQY7bzQ6V7tm8vX9AgtgL5Xqe3kB5rW8A2PJPlKk=; b=DBkyMga0dDt6hsVm2CglP2+0EiQn06luw316mXblKUW4Ci8I7NcMJJPsfd2Iz9K9Oz RbY7/fnbd+U1NtTAHg8dZjylbz5H+2hGzp6GDlseeeC5D7S9NZuFfafuqa87t17ms1HW F3gKs/hSAhxkWq0bgfYERifmZHMP6S7VrXnjAx7Sm4y4mSuTCZIjOqgz2t1wp3SMLjCw d3mpE1j2oShRWyMY9c4J1jQmwKqvxfC8kyDwwwYmn5VdzTjlQRLdNtSfkNksPw2wsI7S zjRGXqg7KxWFIX5Z0GCpHpPwlk7EEt/jQeU+Pl4bJ/oCxXkQMpZKYpxxN2N2HZLkhvnM 5m0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776689431; x=1777294231; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lC9qQY7bzQ6V7tm8vX9AgtgL5Xqe3kB5rW8A2PJPlKk=; b=YnShcZevptc8kkBEaj09XklhodMxQaN5lLaH5nWODByb2UCsrPz4BIiFTTTGq3rXSw 2OihE8Nt1iK6tLKI7rlAv719jw0CiR1YD9CIQt7PnUbohRmwLC83RSt92gORi854bavn WZgKvqeTmwky86jOmXFcjNa0vP/t8eb7mqCRAkdfsM42L02pYma6CW4IPWgst5xOc7pZ 9X5wqttAU6ne8HcAUGOUbpKZC3VrSAM0Z151kY9nOs2QU137tYuNz0VzGA8lYbDaYFw+ qvcECFcnoglUU4Vs5WsWueU8p3QOcqaL3gjaTkiKUdwLLsr1C+HqQV5Xj5BqMAgjn0qU JK9A== X-Gm-Message-State: AOJu0YwFmqj6UlvjZ4AfYk1tf/vI/8NlhzSS19AoIdnQx5rNBTaATvpw ZF5Nw4dDISAuVfCzWj4lPVDDsNoAg8s4MFHIR/M0amfC2vv7saKaaMZ3sUEYuH2QQxXePDVN6Qf 5agIGWK58aE887eKrypNPNbim+J+5b4pTJwu2RT3NudtJGyEZ/RpNEv1b7HOHnHffavf5tJnXe6 tsZK72n6u+EG4IyiYvEpoip2pqR8w876PRgT8YV0yQE7k= X-Gm-Gg: AeBDieviP/h1Wk25Nzqo5sB4tBJvSGJYupYX+9JDURWhug/1W9n50NE8EMgCJg/iHXy ounNIBawV6MJPj0XbtS6TqYSFczSvltOcT+xJGW6JL8IXDKX/ceph5DPCrLhbH78BqvV2Fg0lPO gzYleGozHNKs9xgxGIBN0s3kLal8MiEsCvjRPGNpPmuQtmcyLPNDHE1eEqDhK1tqX6I/fmSJ2/m uuITBVQmpBrDyTxcfYqJQCNDznu+7WnoX6CMs40FRCnKvxp2hZ5gXsFOrMP3sxdtK/V57ltGxnR eI+P7dCtxDcgv01P+xrdgEP+aQRY8Qf8Ts5+51mwpKf033LgcA9tgjbwtG1hqR7njojZXYO+CPa 17HoyFGt+MM59IYUBmFVxQ9klQC/m2b8luF/tbhklCGiGRQJhB2+80Q== X-Received: by 2002:a05:6000:2c0b:b0:439:beb9:5a96 with SMTP id ffacd0b85a97d-43fe3dfbff5mr21175552f8f.31.1776689430990; Mon, 20 Apr 2026 05:50:30 -0700 (PDT) X-Received: by 2002:a05:6000:2c0b:b0:439:beb9:5a96 with SMTP id ffacd0b85a97d-43fe3dfbff5mr21175410f8f.31.1776689429964; Mon, 20 Apr 2026 05:50:29 -0700 (PDT) Received: from redhat.com (IGLD-80-230-25-21.inter.net.il. [80.230.25.21]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43fe4cb13a0sm29092510f8f.8.2026.04.20.05.50.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2026 05:50:29 -0700 (PDT) Date: Mon, 20 Apr 2026 08:50:27 -0400 From: "Michael S. Tsirkin" To: linux-kernel@vger.kernel.org Cc: Andrew Morton , David Hildenbrand , Vlastimil Babka , Brendan Jackman , Michal Hocko , Suren Baghdasaryan , Jason Wang , Andrea Arcangeli , linux-mm@kvack.org, virtualization@lists.linux.dev, Lorenzo Stoakes , "Liam R. Howlett" , Mike Rapoport Subject: [PATCH RFC v2 03/18] mm: add PG_zeroed page flag for known-zero pages Message-ID: <48c5f902f03a72e4337979f5193c64017675f72e.1776689093.git.mst@redhat.com> References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent Add PG_zeroed (aliased to PG_private) to track pages whose contents are known to be zero. Exclude __PG_ZEROED from PAGE_FLAGS_CHECK_AT_PREP so the allocator does not BUG when encountering zeroed pages on the free list. Signed-off-by: Michael S. Tsirkin Assisted-by: Claude:claude-opus-4-6 Assisted-by: cursor-agent:GPT-5.4-xhigh --- include/linux/page-flags.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index f7a0e4af0c73..f87ecb740e7f 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -157,6 +157,9 @@ enum pageflags { */ PG_fscache = PG_private_2, /* page backed by cache */ + /* Page contents are known to be zero (host-zeroed or balloon) */ + PG_zeroed = PG_private, + /* XEN */ /* Pinned in Xen as a read-only pagetable page. */ PG_pinned = PG_owner_priv_1, @@ -687,6 +690,14 @@ FOLIO_FLAG_FALSE(idle) */ __PAGEFLAG(Reported, reported, PF_NO_COMPOUND) +/* + * PageZeroed() tracks pages whose contents are known to be zero. + * Set on free-list pages by the balloon driver or page reporting. + * The allocator uses this to skip redundant zeroing. + */ +__PAGEFLAG(Zeroed, zeroed, PF_NO_COMPOUND) +#define __PG_ZEROED (1UL << PG_zeroed) + #ifdef CONFIG_MEMORY_HOTPLUG PAGEFLAG(VmemmapSelfHosted, vmemmap_self_hosted, PF_ANY) #else @@ -1209,7 +1220,7 @@ static __always_inline void __ClearPageAnonExclusive(struct page *page) * alloc-free cycle to prevent from reusing the page. */ #define PAGE_FLAGS_CHECK_AT_PREP \ - ((PAGEFLAGS_MASK & ~__PG_HWPOISON) | LRU_GEN_MASK | LRU_REFS_MASK) + ((PAGEFLAGS_MASK & ~(__PG_HWPOISON | __PG_ZEROED)) | LRU_GEN_MASK | LRU_REFS_MASK) /* * Flags stored in the second page of a compound page. They may overlap -- MST