diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 97cf94526171bbb69b8ad4af23fdd7576cf3604d..6a0f039e7194f260f93b428f410761a646af2681 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.181 2008/06/30 10:58:47 heikki Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.182 2008/07/01 21:49:04 momjian Exp $ --> <chapter Id="runtime-config"> <title>Server Configuration</title> @@ -5104,15 +5104,161 @@ plruby.use_strict = true # generates error: unknown class name <varlistentry> <term><varname>trace_locks</varname> (<type>boolean</type>)</term> + <indexterm> + <primary><varname>trace_locks</> configuration parameter</primary> + </indexterm> + <listitem> + <para> + If on, emit information about lock usage. Information dumped + includes the type of lock operation, the type of lock and the unique + identifier of the object being locked or unlocked. Also included + are bitmasks for the lock types already granted on this object as + well as for the lock types awaited on this object. For each lock + type a count of the number of granted locks and waiting locks is + also dumped as well as the totals. An example of the log file output + is shown here: + </para> + <para> + LOG: LockAcquire: new: lock(0xb7acd844) id(24688,24696,0,0,0,1) + grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 + wait(0) type(AccessShareLock) + </para> + <para> + LOG: GrantLock: lock(0xb7acd844) id(24688,24696,0,0,0,1) + grantMask(2) req(1,0,0,0,0,0,0)=1 grant(1,0,0,0,0,0,0)=1 + wait(0) type(AccessShareLock) + + </para> + <para> + LOG: UnGrantLock: updated: lock(0xb7acd844) id(24688,24696,0,0,0,1) + grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 + wait(0) type(AccessShareLock) + </para> + <para> + LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1) + grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0 + wait(0) type(INVALID) + </para> + <para> + Details of the structure being dumped may be found in + src/include/storage/lock.h + </para> + <para> + This parameter is only available if the <symbol>LOCK_DEBUG</symbol> + macro was defined when <productname>PostgreSQL</productname> was + compiled. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><varname>trace_lwlocks</varname> (<type>boolean</type>)</term> + <indexterm> + <primary><varname>trace_lwlocks</> configuration parameter</primary> + </indexterm> + <listitem> + <para> + If on, emit information about lightweight lock usage. Lightweight + locks are intended primarily to provide mutual exclusion of access + to shared-memory data structures. + </para> + <para> + This parameter is only available if the <symbol>LOCK_DEBUG</symbol> + macro was defined when <productname>PostgreSQL</productname> was + compiled. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><varname>trace_userlocks</varname> (<type>boolean</type>)</term> - <term><varname>trace_lock_oidmin</varname> (<type>boolean</type>)</term> - <term><varname>trace_lock_table</varname> (<type>boolean</type>)</term> + <indexterm> + <primary><varname>trace_userlocks</> configuration parameter</primary> + </indexterm> + <listitem> + <para> + If on, emit information about user lock usage. Output is the same + as for <symbol>trace_locks</symbol>, only for user locks. + </para> + <para> + User locks were removed as of PostgreSQL version 8.2. This option + currently has no effect. + </para> + <para> + This parameter is only available if the <symbol>LOCK_DEBUG</symbol> + macro was defined when <productname>PostgreSQL</productname> was + compiled. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><varname>trace_lock_oidmin</varname> (<type>integer</type>)</term> + <indexterm> + <primary><varname>trace_lock_oidmin</> configuration parameter</primary> + </indexterm> + <listitem> + <para> + If set, do not trace locks for tables below this OID. (use to avoid + output on system tables) + </para> + <para> + This parameter is only available if the <symbol>LOCK_DEBUG</symbol> + macro was defined when <productname>PostgreSQL</productname> was + compiled. + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><varname>trace_lock_table</varname> (<type>integer</type>)</term> + <indexterm> + <primary><varname>trace_lock_table</> configuration parameter</primary> + </indexterm> + <listitem> + <para> + Unconditionally trace locks on this table (OID). + </para> + <para> + This parameter is only available if the <symbol>LOCK_DEBUG</symbol> + macro was defined when <productname>PostgreSQL</productname> was + compiled. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><varname>debug_deadlocks</varname> (<type>boolean</type>)</term> + <indexterm> + <primary><varname>debug_deadlocks</> configuration parameter</primary> + </indexterm> + <listitem> + <para> + If set, dumps information about all current locks when a + DeadLockTimeout occurs. + </para> + <para> + This parameter is only available if the <symbol>LOCK_DEBUG</symbol> + macro was defined when <productname>PostgreSQL</productname> was + compiled. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><varname>log_btree_build_stats</varname> (<type>boolean</type>)</term> + <indexterm> + <primary><varname>log_btree_build_stats</> configuration parameter</primary> + </indexterm> <listitem> <para> - Various other code tracing and debugging options. + If set, logs system resource usage statistics (memory and CPU) on + various btree operations. + </para> + <para> + This parameter is only available if the <symbol>BTREE_BUILD_STATS</symbol> + macro was defined when <productname>PostgreSQL</productname> was + compiled. </para> </listitem> </varlistentry>