From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from flow-a2-smtp.messagingengine.com (flow-a2-smtp.messagingengine.com [103.168.172.137]) (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 2F615403EB6 for ; Thu, 4 Jun 2026 11:04:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.137 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780571080; cv=none; b=k2hChwt5Whg/YG6LUCVUfb/ZCoOSSRxPb4+nndjkgfZ6wAqWzQeyydyf5DiXTnj0P2OY0gn8JYZq4wWWoiou9OfVLohQ1Z1lpDQdL9QcX6GPhExlVwytFYSMbAc0/zxkGKMUwg3rt/xEmgGss1TAdwfriENSEtlkrY5JsQZTE0I= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780571080; c=relaxed/simple; bh=CBRf/78njRXHO2ZOJXwuhWRP9ufJrHz6gAlLy3d4b8A=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=cWCFAqYYiGnna24LeaYMRPdCupUNkoRBqouCiveUSquJeq0LtD+fzkjTg1HfbZri58pUg2iDDEYUZGLSD0LoCU5AzftggiO6cSH+/RBegzA+I1TeuzKSSoKTmD3LNUhLTyQ/FR3+UwpJ6pbazfrvBFNZnHJ5FEpLjJYiSQhKJQ8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=shutemov.name; spf=pass smtp.mailfrom=shutemov.name; dkim=pass (2048-bit key) header.d=shutemov.name header.i=@shutemov.name header.b=UN8fj7r9; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=kHkU6uCX; arc=none smtp.client-ip=103.168.172.137 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=shutemov.name Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=shutemov.name Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=shutemov.name header.i=@shutemov.name header.b="UN8fj7r9"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="kHkU6uCX" Received: from phl-compute-11.internal (phl-compute-11.internal [10.202.2.51]) by mailflow.phl.internal (Postfix) with ESMTP id 4A08B1380154; Thu, 4 Jun 2026 07:04:38 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-11.internal (MEProxy); Thu, 04 Jun 2026 07:04:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=shutemov.name; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1780571078; x= 1780578278; bh=+9Guk1v6UCqcbYZsqfj0527/CdsZdpy+8usy0jwjfTw=; b=U N8fj7r9HNdENn3fljE7rLtleY7XVbGsqBvc3itSmLb6ul3E2mJOFvb+SsQJrMYaD vuhy/2bqu4MUD7RPwOafy2goW9KrD/9dV9HbVbIw82hH91amdxFv0D5DCwZJBnQp 8FyxDfAJIWdCXzJMWkq41jM9y0e68ibr0yUu6AwvXeUQjeJl7IjXNBylH9lhVHx3 ke3WrlUYmI/GFXxNHXt0to50J+cWI3LCl3ixsPTzUjGWN37hYzoXH5BI4y6UECR7 eMPHzJHK5r5/whA1ySLkSZ2vCnGV4BLW+y3oXQEQsumfbSk0IgWtPktW+vmQXH/Q Pbz/KiDxYd123LhscxcVg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1780571078; x=1780578278; bh=+9Guk1v6UCqcbYZsqfj0527/CdsZdpy+8us y0jwjfTw=; b=kHkU6uCXyVwnOSfyicVgiL98Zy1Mzr7HcLims8y3A3ymhcjPGpt pU6W2Rl/cuaZ74Gg9AjSbUHdytPNb7gugHHoBqVds/5fd9XsReu5TF9eSWcQeto/ Q9ezekyQd45w/jtXHNLF4iYb6m+CeX3cgNPRDUrAuVg0kIjsnwS03LDLlsTn0lX/ zQxSRw1RzCSaoQJf9ikzRJp3nkWDRmOnRgh1KTM5fOw69jbFkn0AJZI511GDyM3o vAkWe87UyMUC6KFdq2Q4tyVtHFL5taP/bcR3gG3DHn58vhl8UWPdIkLV/m0d74ft g5yoQjeRtqTDbXqJE57/sKJaZDfuzoEe9kA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTFr7QY4Bhqerzvha2I0LMExUdgcQI1Pil8VbJFkYBwNmGuMv7KaM8ber1k+HdlcAG 1s5+QrPd4KwJEjqFsISpo4w+LkK5jrKBiwoDgOJtaDO3dj81Zq2H3GQGLNawialwaf7srz 3zVJoZYR1HEyHypVh27Ahm7mTIJRTosEyIpn7neBAKhOkauj1wMopJz34cjlvypisv7e0k 7Jfoh878GmndHrULSK3KHkC3q/9kEkSCZ4CZyerIPyuiDxEvEdWJHVzMyQEpThTfPvbomQ TybmSQsniqdHboagZX5srV5ADMe5dQs/fA8IYav29U2QBvCT8kcZKy/pXHbJ3kzUYYTnba oBgpyxK82g3Hn/mMVcx1+RRNjatLwQnPZ4jTKnkC2q2yCB9xDV+nWXGMnv0RpRaDUnMDNz v1uhbJpYq8FBu2H4dMsekHF1CjTJ/m6x9Q46iP6hgokaoFC044lPuz+qg9lFC/+RE4ysBj KreHfPHLR3uMZvPye70tETzN7i7YKOO4KFFHnnQMvp5L0XEHnSAQkLf1cJ/Ma4UaSAIcmA X6UmeIixFCc9YKL9Lwg+jJezQFL8HAYsHvEoPKC87VHtpvz4nDOezrWLibwhV624pMvvko qcT7FHMjjiCFyA+7CWABWmdadTTcNjFEdtnZbX9yWsY+BGXy1jGFw92jRMow X-ME-Proxy: Feedback-ID: ie3994620:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 4 Jun 2026 07:04:35 -0400 (EDT) Date: Thu, 4 Jun 2026 12:04:34 +0100 From: Kiryl Shutsemau To: ilya.gladyshev@linux.dev Cc: ivgorbunov@me.com, Liam.Howlett@oracle.com, akpm@linux-foundation.org, apopple@nvidia.com, artem.kuzin@huawei.com, baolin.wang@linux.alibaba.com, david@kernel.org, foxido@foxido.dev, harry.yoo@oracle.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, lorenzo.stoakes@oracle.com, mhocko@suse.com, muchun.song@linux.dev, rppt@kernel.org, surenb@google.com, torvalds@linuxfoundation.org, vbabka@suse.cz, willy@infradead.org, yuzhao@google.com, ziy@nvidia.com, pfalcato@suse.de Subject: Re: [PATCH v3 1/2] mm: drop page refcount zero state semantics Message-ID: References: <5dabf3a748fee0c7b142c74367e7586f5db1ed1e@linux.dev> <7c28d766b007345f5f31ba9a086a3bffe95a013d@linux.dev> 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: <7c28d766b007345f5f31ba9a086a3bffe95a013d@linux.dev> On Thu, Jun 04, 2026 at 10:15:12AM +0000, ilya.gladyshev@linux.dev wrote: > @@ -115,8 +120,14 @@ static inline void init_page_count(struct page *page) > set_page_count(page, 1); > } > > +static inline void set_page_count_as_frozen(struct page *page) > +{ > + set_page_count(page, 0); > +} > + This name is strange. Maybe something like init_page_count_frozen()? And don't you want to update it in patch 2 to set the bit? > static inline void page_ref_add(struct page *page, int nr) > { > + VM_BUG_ON(__page_count_is_frozen(page_count(page))); Hm. These VM_BUG_ONs are useless after patch 2. In patch 2, you make __page_count_is_frozen() check the frozen bit and page_count() masks out frozen bit. I guess you want to read raw ref number here, no? And why not VM_BUG_ON_PAGE/FOLIO()? > atomic_add(nr, &page->_refcount); > if (page_ref_tracepoint_active(page_ref_mod)) > __page_ref_mod(page, nr); -- Kiryl Shutsemau / Kirill A. Shutemov