pahole-PGPROC.txt
text/plain
Filename: pahole-PGPROC.txt
Type: text/plain
Part: 0
struct PGPROC {
dlist_head * procgloballist; /* 0 8 */
dlist_node freeProcsLink; /* 8 16 */
int pid; /* 24 4 */
BackendType backendType; /* 28 4 */
Oid databaseId; /* 32 4 */
Oid roleId; /* 36 4 */
Oid tempNamespaceId; /* 40 4 */
int pgxactoff; /* 44 4 */
uint8 statusFlags; /* 48 1 */
/* XXX 3 bytes hole, try to pack */
struct {
ProcNumber procNumber; /* 52 4 */
LocalTransactionId lxid; /* 56 4 */
} vxid; /* 52 8 */
TransactionId xid; /* 60 4 */
/* --- cacheline 1 boundary (64 bytes) --- */
TransactionId xmin; /* 64 4 */
XidCacheStatus subxidStatus; /* 68 2 */
/* XXX 2 bytes hole, try to pack */
struct XidCache subxids; /* 72 256 */
/* --- cacheline 5 boundary (320 bytes) was 8 bytes ago --- */
Latch procLatch; /* 328 16 */
PGSemaphore sem; /* 344 8 */
int delayChkptFlags; /* 352 4 */
pg_atomic_uint32 pendingRecoveryConflicts; /* 356 4 */
uint8 lwWaiting; /* 360 1 */
uint8 lwWaitMode; /* 361 1 */
/* XXX 2 bytes hole, try to pack */
proclist_node lwWaitLink; /* 364 8 */
proclist_node cvWaitLink; /* 372 8 */
/* XXX 4 bytes hole, try to pack */
/* --- cacheline 6 boundary (384 bytes) --- */
PGPROC * lockGroupLeader; /* 384 8 */
dlist_head lockGroupMembers; /* 392 16 */
dlist_node lockGroupLink; /* 408 16 */
LOCK * waitLock; /* 424 8 */
dlist_node waitLink; /* 432 16 */
/* --- cacheline 7 boundary (448 bytes) --- */
PROCLOCK * waitProcLock; /* 448 8 */
LOCKMODE waitLockMode; /* 456 4 */
LOCKMASK heldLocks; /* 460 4 */
pg_atomic_uint64 waitStart __attribute__((__aligned__(8))); /* 464 8 */
ProcWaitStatus waitStatus; /* 472 4 */
/* XXX 4 bytes hole, try to pack */
dlist_head myProcLocks[16]; /* 480 256 */
/* --- cacheline 11 boundary (704 bytes) was 32 bytes ago --- */
LWLock fpInfoLock; /* 736 16 */
uint64 * fpLockBits; /* 752 8 */
Oid * fpRelId; /* 760 8 */
/* --- cacheline 12 boundary (768 bytes) --- */
_Bool fpVXIDLock; /* 768 1 */
/* XXX 3 bytes hole, try to pack */
LocalTransactionId fpLocalTransactionId; /* 772 4 */
XLogRecPtr waitLSN; /* 776 8 */
int syncRepState; /* 784 4 */
/* XXX 4 bytes hole, try to pack */
dlist_node syncRepLinks; /* 792 16 */
_Bool procArrayGroupMember; /* 808 1 */
/* XXX 3 bytes hole, try to pack */
pg_atomic_uint32 procArrayGroupNext; /* 812 4 */
TransactionId procArrayGroupMemberXid; /* 816 4 */
_Bool clogGroupMember; /* 820 1 */
/* XXX 3 bytes hole, try to pack */
pg_atomic_uint32 clogGroupNext; /* 824 4 */
TransactionId clogGroupMemberXid; /* 828 4 */
/* --- cacheline 13 boundary (832 bytes) --- */
XidStatus clogGroupMemberXidStatus; /* 832 4 */
/* XXX 4 bytes hole, try to pack */
int64 clogGroupMemberPage; /* 840 8 */
XLogRecPtr clogGroupMemberLsn; /* 848 8 */
uint32 wait_event_info; /* 856 4 */
/* size: 864, cachelines: 14, members: 51 */
/* sum members: 828, holes: 10, sum holes: 32 */
/* padding: 4 */
/* forced alignments: 1 */
/* last cacheline: 32 bytes */
} __attribute__((__aligned__(8)));