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.94.2) (envelope-from ) id 1rsoDC-009OnM-Tp for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Apr 2024 18:22:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rsoDB-0045U7-1A for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Apr 2024 18:22:49 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rsoDA-0045Tz-IY for pgsql-hackers@lists.postgresql.org; Fri, 05 Apr 2024 18:22:48 +0000 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rsoD7-000mzx-Mh for pgsql-hackers@lists.postgresql.org; Fri, 05 Apr 2024 18:22:46 +0000 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-6e6b22af648so2653633b3a.0 for ; Fri, 05 Apr 2024 11:22:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20230601.gappssmtp.com; s=20230601; t=1712341364; x=1712946164; darn=lists.postgresql.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=DH6J+7Ei5zLzXE2F842VaFVA6nuAYh5Nxfpf4T0r5l8=; b=sMc7M0n37+stYNz3lijT5iy0Zk6ZCVQCv4LA80xQMy+0H0tUxb0ZzJz0qouLlejCyG gRn2nAGxbPhU7cZ+2K+FoSvQb6Jpq5cBKyV6ZQ4d0WljspOBKba71HDNMYxXfSxf6A5S E1TlUfPlBrk7chyMhf/2R/lEtVEeoROIIE11tVhkOl/pErddpUgJRG7r5jJ2PeHpocnE x6kTpWI8gOR3jN/vMgVTqKSZsN4a73Qm+UZEUvuIOaDP1BQBgrn++z4VUZ9BYlmn17E5 cDM8gd2jkPFjH8DWJIGO8ZbYDZM/ITmC8WyrEaooSUeQDPkGjB3z6fyGfgIxKnuyZ8tZ Zs4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712341364; x=1712946164; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=DH6J+7Ei5zLzXE2F842VaFVA6nuAYh5Nxfpf4T0r5l8=; b=gd5wShD1Vvvh2JslT6o1SOQKxGkLtYzK/mKLCuACYFQeRGOSQ6+hw9w3wdyCahWwWo laeDdJxvOZLFdssOBUfRVzHCpRc+1GIdXK3KHt68+p0mZF8YdEx2BUBefaj25g8NzZf+ Imuxy586ynPigLBR34FJfmuFCXhMDOaegjFKX2wdhgNuQLGILtskIZNqCcRONxrwMnqA +qUs5skFdtNZJQqGakaxqU7DgGqoANm/8ttptTmtrUKYn61ns+sqA0mxRzyWOcKVe9VO 1is2EqIQE2f/Ki4sPyv6vf+/jPbbDkt6qQMdoxITH5ad91gh/X4/kd0y7yTxqroTKGvD rrgw== X-Forwarded-Encrypted: i=1; AJvYcCXXP+uXZK8QlLPTB9xAqwQlek7iiKiefzR7JXfYUGuM2ZUI7oYmlDlDIsSjKKq78uT22zYPGwv002vF6lubxPsSqJyK/ZVxbgIUn7JsD/0X2URk X-Gm-Message-State: AOJu0YyI/0vKOs59hZKKVHQ6UE9Fkj2FmQQENODhK/FxSK5236PNreFW rsLRNeBV6nys5WHJFklmBhm2f6mgvAoVm3B4wqmD6KVM693x1kHD4EzY3W/4FA== X-Google-Smtp-Source: AGHT+IGg6SNGs7L/ZlEh8nE20PuwP3nJqaGTfgUXvC4w2XWlZuwhn15f03NPCM5/0UbdM/G497SO7A== X-Received: by 2002:a05:6a20:a10c:b0:1a7:4907:8a8e with SMTP id q12-20020a056a20a10c00b001a749078a8emr1192791pzk.27.1712341363760; Fri, 05 Apr 2024 11:22:43 -0700 (PDT) Received: from jeff-laptop.lan (c-76-102-242-158.hsd1.ca.comcast.net. [76.102.242.158]) by smtp.gmail.com with ESMTPSA id kt4-20020a056a004ba400b006e6b3c4e70bsm1877716pfb.171.2024.04.05.11.22.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Apr 2024 11:22:42 -0700 (PDT) Message-ID: <43269689137ce4f80224b58a4e162fb891a6fc4e.camel@j-davis.com> Subject: Re: LogwrtResult contended spinlock From: Jeff Davis To: Alvaro Herrera , Bharath Rupireddy Cc: Tom Lane , Andres Freund , pgsql-hackers@lists.postgresql.org, Jaime Casanova Date: Fri, 05 Apr 2024 11:22:40 -0700 In-Reply-To: <202404051154.am63tvpedo5p@alvherre.pgsql> References: <202404051154.am63tvpedo5p@alvherre.pgsql> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.44.4-0ubuntu2 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Fri, 2024-04-05 at 13:54 +0200, Alvaro Herrera wrote: > Couldn't push: I tested with --disable-atomics --disable-spinlocks > and > the tests fail because the semaphore for the atomic variables is not > always initialized.=C2=A0 This is weird -- it's like a client process is > running at a time when StartupXLOG has not initialized the variable > ... > so the initialization in the other place was not completely wrong. It looks like you solved the problem and pushed the first patch. Looks good to me. Patch 0002 also looks good to me, after a mostly-trivial rebase (just remember to initialize logCopyResult). Minor comments: * You could consider using a read barrier before reading the Copy ptr, or using the pg_atomic_read_membarrier_u64() variant. I don't see a correctness problem, but it might be slightly more clear and I don't see a lot of downside. * Also, I assume that the Max() call in pg_atomic_monotonic_advance_u64() is just for clarity? Surely the currval cannot be less than _target when it returns. I'd probably just do Assert(currval >=3D _target) and then return currval. Regards, Jeff Davis