aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_lock_count.h
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2010-02-02 15:28:11 +0100
committerBjörn Gustavsson <[email protected]>2010-02-08 18:05:13 +0100
commit628aa0e68a0632905a28f66e71ae10fb15f12fbe (patch)
tree6b0729873a43f1e99354013a06955624ee2c93b1 /erts/emulator/beam/erl_lock_count.h
parentcfff4e99860a4d21a42645b20f76188dde704e54 (diff)
downloadotp-628aa0e68a0632905a28f66e71ae10fb15f12fbe.tar.gz
otp-628aa0e68a0632905a28f66e71ae10fb15f12fbe.tar.bz2
otp-628aa0e68a0632905a28f66e71ae10fb15f12fbe.zip
Add runtime option to enable/disable lcnt stats
Add erts_debug:lock_counters({copy_save, bool()}). This option enables or disables statistics saving for destroyed processes and ets-tables. Enabling this might consume a lot of memory. Add id-numbering for lock classes which is otherwise undefined.
Diffstat (limited to 'erts/emulator/beam/erl_lock_count.h')
-rw-r--r--erts/emulator/beam/erl_lock_count.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_lock_count.h b/erts/emulator/beam/erl_lock_count.h
index 8564c36203..86c85226e4 100644
--- a/erts/emulator/beam/erl_lock_count.h
+++ b/erts/emulator/beam/erl_lock_count.h
@@ -39,6 +39,20 @@
* Each instance of a lock is the unique lock, i.e. set and id in that set.
* For each lock there is a set of statistics with where and what impact
* the lock aqusition had.
+ *
+ * Runtime options
+ * - suspend, used when internal lock-counting can't be applied. For instance
+ * when allocating a term for the outside and halloc needs to be used.
+ * Default: off.
+ * - location, reserved and not used.
+ * - proclock, disable proclock counting. Used when performance might be an
+ * issue. Accessible from erts_debug:lock_counters({process_locks, bool()}).
+ * Default: off.
+ * - copysave, enable saving of destroyed locks (and thereby its statistics).
+ * If memory constraints is an issue this need to be disabled.
+ * Accessible from erts_debug:lock_counters({copy_save, bool()}).
+ * Default: off.
+ *
*/
#include "sys.h"
@@ -74,6 +88,7 @@
#define ERTS_LCNT_OPT_SUSPEND (((Uint16) 1) << 0)
#define ERTS_LCNT_OPT_LOCATION (((Uint16) 1) << 1)
#define ERTS_LCNT_OPT_PROCLOCK (((Uint16) 1) << 2)
+#define ERTS_LCNT_OPT_COPYSAVE (((Uint16) 1) << 3)
typedef struct {
unsigned long s;