Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vg3eK-007h1e-25 for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Jan 2026 16:23:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vg3eJ-00BWBi-27 for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Jan 2026 16:23:11 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vg3eI-00BWBa-36 for pgsql-hackers@lists.postgresql.org; Wed, 14 Jan 2026 16:23:11 +0000 Received: from fout-b3-smtp.messagingengine.com ([202.12.124.146]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vg3eG-000SWT-2Q for pgsql-hackers@postgresql.org; Wed, 14 Jan 2026 16:23:10 +0000 Received: from phl-compute-10.internal (phl-compute-10.internal [10.202.2.50]) by mailfout.stl.internal (Postfix) with ESMTP id 20F3D1D0008E; Wed, 14 Jan 2026 11:23:07 -0500 (EST) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Wed, 14 Jan 2026 11:23:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anarazel.de; h= cc:cc:content-transfer-encoding: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=1768407786; x=1768494186; bh=KeonCn1KeNCunPK1JGtUzieAbS1lQikxFWynkQ5Wim8=; b= brnaGKUjgKGRwyCrYdUSZQwSUkjnGX9Hd06uAZ+l+SVk2BpWQx04gUZqkO6pw3R1 tMN7pDmx794khwAOANkBZVKy56js12Io9L+GvKPXmwT7Erc+S7CDckHhMFrCP7Dk TTUj/tb8iSU2HTDLKAwcW7TgthTCUhec1EpqU2mwmxN2M94pANew9X4PhVJXZzo5 B21/pbzbcfx192PhH4w+gjSXOVt1oRXjlzp2y3jHoF3CHGQY4NXSiSBYu9iwEOaA HkGZb7vmHsIVXlKNViytG10bbgGZQ+I2KzBzV5QkO/nDqUBenuH7sqafjjUVN3vq L/CF6yQ/1V1vxFHiiqmCHQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :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=fm2; t=1768407786; x= 1768494186; bh=KeonCn1KeNCunPK1JGtUzieAbS1lQikxFWynkQ5Wim8=; b=A uJCmAa1T/mpKkeQTesDzfU5YOyL5CZ+NeDvYYNSc6WyRHDt7nwwD04Hi1ryOcmhI /AKjwunzJBpuKbUc2ELbQUCADup+jE0IpAZVrjZhGWuJtJnxGCL6nM1HChF4+O+T nL4x4MFYq2wqcljDc/Ux4QYadVRrzZDx1m04IVibYuYAr2lZPq38NI98LB99WQfx /qDGI++IvBnRZfcmi91D3Hawm7r2gvJw5XVzww98LSvUjoVefzg6uC4Ik8AptFqT ycvcE3oYToQeVwYf6L7FGg3VfNXRsim5g8/klHKhk2zxOzFMtUFtgomYlZSlfzdG qQKD6d17kFjqRWJuACf2w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdduvdefieehucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhvfevuffkfhggtggugfgjsehtkefstddttdejnecuhfhrohhmpeetnhgurhgv shcuhfhrvghunhguuceorghnughrvghssegrnhgrrhgriigvlhdruggvqeenucggtffrrg htthgvrhhnpedtleelvdfgjedvffeiueekfeeuleffhfegfffhgfffkeevueehieehhfei gffhvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe grnhgurhgvshesrghnrghrrgiivghlrdguvgdpnhgspghrtghpthhtohepuddtpdhmohgu vgepshhmthhpohhuthdprhgtphhtthhopegsohgvkhgvfihurhhmodhpohhsthhgrhgvsh esghhmrghilhdrtghomhdprhgtphhtthhopehlihdrvghvrghnrdgthhgrohesghhmrghi lhdrtghomhdprhgtphhtthhopehmvghlrghnihgvphhlrghgvghmrghnsehgmhgrihhlrd gtohhmpdhrtghpthhtohepmhhitghhrggvlhdrphgrqhhuihgvrhesghhmrghilhdrtgho mhdprhgtphhtthhopehrvghshhhkvghkihhrihhllhesghhmrghilhdrtghomhdprhgtph htthhopehrohgsvghrthhmhhgrrghssehgmhgrihhlrdgtohhmpdhrtghpthhtohepthhh ohhmrghsrdhmuhhnrhhosehgmhgrihhlrdgtohhmpdhrtghpthhtohephhhlihhnnhgrkh grsehikhhirdhfihdprhgtphhtthhopehnohgrhheslhgvrggusghorghtrdgtohhm X-ME-Proxy: Feedback-ID: id4a34324:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 14 Jan 2026 11:23:06 -0500 (EST) Date: Wed, 14 Jan 2026 11:23:05 -0500 From: Andres Freund To: Chao Li Cc: Kirill Reshke , Heikki Linnakangas , Melanie Plageman , Matthias van de Meent , pgsql-hackers@postgresql.org, Thomas Munro , Noah Misch , Robert Haas , Michael Paquier Subject: Re: Buffer locking is special (hints, checksums, AIO writes) Message-ID: References: <1108f18d-cf7c-4f17-b29c-a119fe42f7e5@iki.fi> <5dwlfu2jyzkyf3nrlzxxblxctb6xio5es73ptgsahjnmfu5miu@772rc764hfhi> <4csodkvvfbfloxxjlkgsnl2lgfv2mtzdl7phqzd4jxjadxm4o5@usw7feyb5bzf> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On 2026-01-14 10:26:07 +0800, Chao Li wrote: > So far I’ve only reviewed 0001 and 0002. I’m not very familiar with this area, so the review has been a bit slow. > > Overall, 0001 looks good to me. It renames LW_FLAG_RELEASE_OK to > LW_FLAG_WAKE_IN_PROGRESS and inverts the meaning, which makes sense. I only > have a small nit on naming: the local variable “new_release_in_progress". I > see that it’s inherited from the old name and was updated from “_ok" to > “_in_progress", but now that the flag itself is renamed, would it make sense > to rename the variable as well? Something like “wake_in_progress" or > “new_wake_in_progress" might better reflect the new flag name. Agreed that is better. Updated that way. > In 0002, a bunch of new macros are introduced. My initial impression wasn’t > great, mostly due to the amount of line wrapping. I think the previous formatting made it hard to actually write useful comments and caused line-length problems in the subsequent commits. Lines are cheap. > Looking a bit closer, I also noticed some duplication, for example, > "BUF_REFCOUNT_BITS + BUF_USAGECOUNT_BITS" appears more than once Yea, that's probably better to avoid. I'll add a fix to that in the commit changing it to 64bits, I think. > ; and a small inconsistency between BUF_STATE_GET_REFCOUNT and > BUF_STATE_GET_USAGECOUNT (even though the former doesn’t actually need a > shift). I don't see the point, if we later want to move refcounts elsewhere, we can do it at that time. > I tried a small refactor of the macro definitions in the attached diff to > see if things could be made a bit more regular. It introduces a helper macro > MASK() and a BUF_REFCOUNT_SHIFT constant, and removes a bit of > duplication. If you like it, feel free to take it; otherwise, please just > ignore it. Note that, the diff is based on 0002. I don't think the MASK thing is an improvement. > (I actually hesitated to attach a diff, because if you’ve already created a > CF entry, the attached diff could break the CI tests. If that happens, sorry > about that.) FWIW, there's a trick to avoid that: Rename your patch to end in .txt or such. Greetings, Andres Freund