Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n8ItC-0007Ze-W9 for pgsql-hackers@arkaria.postgresql.org; Fri, 14 Jan 2022 09:28:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1n8ItB-0004sp-HE for pgsql-hackers@arkaria.postgresql.org; Fri, 14 Jan 2022 09:28:53 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n8ItB-0004sg-0b for pgsql-hackers@lists.postgresql.org; Fri, 14 Jan 2022 09:28:53 +0000 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1n8It5-00058i-2b for pgsql-hackers@postgresql.org; Fri, 14 Jan 2022 09:28:51 +0000 Received: by mail-pl1-x62a.google.com with SMTP id a7so10056736plh.1 for ; Fri, 14 Jan 2022 01:28:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=C8AALl3qlK/igpAhBjUMjqD8JmrcaAb69mlBaV8ixNI=; b=iX2SXQZIB6tDhQdTA+RhvYs3oGYFle6V13mNPb8Qim3g++VtuWcbyC9uTC5WEIY9+W xKzW1jdH3pz/JzTt41ETDhRnax0CUMqnU8qP97/6T0mHZOrq8Cg8WWK9Uvd74QN7wuZu an5xNKsu0PA2law9ELz9yVGHlDeTGQs9KMGgH833MjsrOPEjwS9ny04BzkZQOqyiLT7J T/5Js9VNCFcrTmSn9+PCM7Q4vd1YhOEYjbchMi6sCO68EnidWybKHitZ0a4BjYn88NDD yZWUTYcff+TC519Dhfq+DqB8sW0AqYO2D+9rZhwZFl/mdHSZPXumeAgQkkXyaTEDALNM Ag+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=C8AALl3qlK/igpAhBjUMjqD8JmrcaAb69mlBaV8ixNI=; b=4qsr+qhOPGKBH0UgN5dLHKjMCuVJC5tVt0oAgs/U+4n2uKkmY847JDdkfLQurCc4WE O49eakIME0VaNG7p/21RIetE/7B7oWFVtnzNigbA6sr2PLdvXzryB/GOSOBhLUnEob/n VYhBCqGkxsteIuL7gql25oCwCris9MeYbAcC0Pp9+huIKQ5PB0Txy412DwPk3A39snd3 rmR052I6JaW9qLEuNnvxacE9DBeZA4nD/orXUQNSWm3XuWHFejGaAulnv9JAqIq7KDcA hi4GIkOCPylnICfI9fFTNuWyAaWbrI2lRMJF38MKUdBSNFSd26R0EXPBBP8BT6H1zbCA Pj2w== X-Gm-Message-State: AOAM532E0/7+9cuhlBns8CT0KVbc+st92LBspOVuojiTkIkqChlqxo4r eeKHli3hU1Yq/KrkjT9yOOg= X-Google-Smtp-Source: ABdhPJwWw13A5eeYGTbkvY5r5s+xtwwXwAmfEPcG9FHHbTNRdWJ4oMzE636zwl3U+RxL7w/BbEkP/A== X-Received: by 2002:a17:903:24d:b0:14a:677d:843a with SMTP id j13-20020a170903024d00b0014a677d843amr8946442plh.129.1642152525522; Fri, 14 Jan 2022 01:28:45 -0800 (PST) Received: from jrouhaud (1-171-185-43.dynamic-ip.hinet.net. [1.171.185.43]) by smtp.gmail.com with ESMTPSA id j18sm4071683pgb.27.2022.01.14.01.28.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Jan 2022 01:28:45 -0800 (PST) Date: Fri, 14 Jan 2022 17:28:38 +0800 From: Julien Rouhaud To: Andrey Borodin Cc: Gilles Darold , Tomas Vondra , Tomas Vondra , Alexander Korotkov , Anastasia Lubennikova , Daniel Gustafsson , Kyotaro Horiguchi , pgsql-hackers , Thomas Munro Subject: Re: MultiXact\SLRU buffers configuration Message-ID: <20220114092838.gbr6ea7zxbaespsr@jrouhaud> References: <27D90FFC-B897-4BC5-B4F5-9047B9886AA3@yandex-team.ru> <15CA416B-3446-462D-902B-4883DD3ADEE6@yandex-team.ru> <494C5E7F-E410-48FA-A93E-F7723D859561@yandex-team.ru> <28051640513399@vla1-36b7415cbc1b.qloud-c.yandex.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <28051640513399@vla1-36b7415cbc1b.qloud-c.yandex.net> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi, On Sun, Dec 26, 2021 at 03:09:59PM +0500, Andrey Borodin wrote: > > > PFA rebase of the patchset. Also I've added a patch to combine page_number, page_status, and page_dirty together to touch less cachelines. The cfbot reports some errors on the latest version of the patch: https://cirrus-ci.com/task/6121317215764480 [04:56:38.432] su postgres -c "make -s -j${BUILD_JOBS} world-bin" [04:56:48.270] In file included from async.c:134: [04:56:48.270] ../../../src/include/access/slru.h:47:28: error: expected identifier or ‘(’ before ‘:’ token [04:56:48.270] 47 | typedef enum SlruPageStatus:int16_t [04:56:48.270] | ^ [04:56:48.270] ../../../src/include/access/slru.h:53:3: warning: data definition has no type or storage class [04:56:48.270] 53 | } SlruPageStatus; [04:56:48.270] | ^~~~~~~~~~~~~~ [04:56:48.270] ../../../src/include/access/slru.h:53:3: warning: type defaults to ‘int’ in declaration of ‘SlruPageStatus’ [-Wimplicit-int] [04:56:48.270] ../../../src/include/access/slru.h:58:2: error: expected specifier-qualifier-list before ‘SlruPageStatus’ [04:56:48.270] 58 | SlruPageStatus page_status; [04:56:48.270] | ^~~~~~~~~~~~~~ [04:56:48.270] async.c: In function ‘asyncQueueAddEntries’: [04:56:48.270] async.c:1448:41: error: ‘SlruPageEntry’ has no member named ‘page_dirty’ [04:56:48.270] 1448 | NotifyCtl->shared->page_entries[slotno].page_dirty = true; [04:56:48.270] | ^ [04:56:48.271] make[3]: *** [: async.o] Error 1 [04:56:48.271] make[3]: *** Waiting for unfinished jobs.... [04:56:48.297] make[2]: *** [common.mk:39: commands-recursive] Error 2 [04:56:48.297] make[2]: *** Waiting for unfinished jobs.... [04:56:54.554] In file included from clog.c:36: [04:56:54.554] ../../../../src/include/access/slru.h:47:28: error: expected identifier or ‘(’ before ‘:’ token [04:56:54.554] 47 | typedef enum SlruPageStatus:int16_t [04:56:54.554] | ^ [04:56:54.554] ../../../../src/include/access/slru.h:53:3: warning: data definition has no type or storage class [04:56:54.554] 53 | } SlruPageStatus; [04:56:54.554] | ^~~~~~~~~~~~~~ [04:56:54.554] ../../../../src/include/access/slru.h:53:3: warning: type defaults to ‘int’ in declaration of ‘SlruPageStatus’ [-Wimplicit-int] [04:56:54.554] ../../../../src/include/access/slru.h:58:2: error: expected specifier-qualifier-list before ‘SlruPageStatus’ [04:56:54.554] 58 | SlruPageStatus page_status; [04:56:54.554] | ^~~~~~~~~~~~~~ [04:56:54.554] clog.c: In function ‘TransactionIdSetPageStatusInternal’: [04:56:54.554] clog.c:396:39: error: ‘SlruPageEntry’ has no member named ‘page_dirty’ [04:56:54.554] 396 | XactCtl->shared->page_entries[slotno].page_dirty = true; [04:56:54.554] | ^ [04:56:54.554] In file included from ../../../../src/include/postgres.h:46, [04:56:54.554] from clog.c:33: [04:56:54.554] clog.c: In function ‘BootStrapCLOG’: [04:56:54.554] clog.c:716:47: error: ‘SlruPageEntry’ has no member named ‘page_dirty’ [04:56:54.554] 716 | Assert(!XactCtl->shared->page_entries[slotno].page_dirty); [04:56:54.554] | ^ [04:56:54.554] ../../../../src/include/c.h:848:9: note: in definition of macro ‘Assert’ [04:56:54.554] 848 | if (!(condition)) \ [04:56:54.554] | ^~~~~~~~~ [04:56:54.554] clog.c: In function ‘TrimCLOG’: [04:56:54.554] clog.c:801:40: error: ‘SlruPageEntry’ has no member named ‘page_dirty’ [04:56:54.554] 801 | XactCtl->shared->page_entries[slotno].page_dirty = true; [04:56:54.554] | ^ [04:56:54.554] In file included from ../../../../src/include/postgres.h:46, [04:56:54.554] from clog.c:33: [04:56:54.554] clog.c: In function ‘clog_redo’: [04:56:54.554] clog.c:997:48: error: ‘SlruPageEntry’ has no member named ‘page_dirty’ [04:56:54.554] 997 | Assert(!XactCtl->shared->page_entries[slotno].page_dirty); [04:56:54.554] | ^ [04:56:54.554] ../../../../src/include/c.h:848:9: note: in definition of macro ‘Assert’ [04:56:54.554] 848 | if (!(condition)) \ [04:56:54.554] | ^~~~~~~~~ [04:56:54.555] make[4]: *** [: clog.o] Error 1 [04:56:54.555] make[3]: *** [../../../src/backend/common.mk:39: transam-recursive] Error 2 [04:56:54.555] make[3]: *** Waiting for unfinished jobs.... [04:56:56.405] make[2]: *** [common.mk:39: access-recursive] Error 2 [04:56:56.405] make[1]: *** [Makefile:42: all-backend-recurse] Error 2 [04:56:56.405] make: *** [GNUmakefile:21: world-bin-src-recurse] Error 2 [04:56:56.407] [04:56:56.407] Exit status: 2 Could you send a new version? In the meantime I will switch the patch status to Waiting on Author.