diff options
author | Björn-Egil Dahlberg <[email protected]> | 2010-02-02 15:28:11 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2010-02-08 18:05:13 +0100 |
commit | 628aa0e68a0632905a28f66e71ae10fb15f12fbe (patch) | |
tree | 6b0729873a43f1e99354013a06955624ee2c93b1 /erts/emulator/beam/erl_lock_count.h | |
parent | cfff4e99860a4d21a42645b20f76188dde704e54 (diff) | |
download | otp-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.h | 15 |
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; |