From fc0427be6d482182ec70f3cd87c73027cfb17ea9 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 9 Dec 2016 11:45:22 +0100 Subject: Prepare release --- lib/tools/doc/src/notes.xml | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 2d9bee0dd1..415f1b8516 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,42 @@

This document describes the changes made to the Tools application.

+
Tools 2.9 + +
Fixed Bugs and Malfunctions + + +

+ Fix unhandled trace event send_to_non_existing_process in + fprof.

+

+ Own Id: OTP-13998

+
+
+
+ + +
Improvements and New Features + + +

+ Improved edoc support in emacs erlang-mode.

+

+ Own Id: OTP-13945 Aux Id: PR-1157

+
+ +

+ Added erldoc to emacs mode which opens html documentation + in browser from emacs. For example M-x erldoc-browse + RET lists:foreach/2.

+

+ Own Id: OTP-14018 Aux Id: PR-1197

+
+
+
+ +
+
Tools 2.8.6
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 532a74a36a889e3d7d25004ebce70da62b013755 Mon Sep 17 00:00:00 2001 From: Anthony Jackson Date: Fri, 3 Mar 2017 10:57:58 +0200 Subject: tools: Allow Emake options to be passed in explicitly This allows build scripts to use emake without needing to generate an Emakefile before running make:all/0,1 or make:file/1,2. --- lib/tools/doc/src/make.xml | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/make.xml b/lib/tools/doc/src/make.xml index fddf5ebd7b..6b878f72fb 100644 --- a/lib/tools/doc/src/make.xml +++ b/lib/tools/doc/src/make.xml @@ -43,15 +43,15 @@ Compile a set of modules. Options = [Option] -  Option = noexec | load | netload | <compiler option> +  Option = noexec | load | netload | {emake, Emake} | <compiler option> -

This function first looks in the current working directory - for a file named Emakefile (see below) specifying the - set of modules to compile and the compile options to use. If - no such file is found, the set of modules to compile - defaults to all modules in the current working - directory.

+

This function determines the set of modules to compile and the + compile options to use, by first looking for the emake make + option, if not present reads the configuration from a file named + Emakefile (see below). If no such file is found, the + set of modules to compile defaults to all modules in the + current working directory.

Traversing the set of modules, it then recompiles every module for which at least one of the following conditions apply:

@@ -77,6 +77,9 @@ netload

Net load mode. Loads all recompiled modules on all known nodes.
+ {emake, Emake}

+ + Rather than reading the Emakefile specify configuration explicitly.

All items in Options that are not make options are assumed to be compiler options and are passed as-is to @@ -108,9 +111,10 @@

Emakefile -

make:all/0,1 and make:files/1,2 looks in the - current working directory for a file named Emakefile. If - it exists, Emakefile should contain elements like this:

+

make:all/0,1 and make:files/1,2 first looks for + {emake, Emake} in options, then in the current working directory + for a file named Emakefile. If present Emake should + contain elements like this:

Modules. {Modules,Options}. -- cgit v1.2.3 From 4d658008be5a08ddadbe75ebadb9ef124436b76e Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 14 Mar 2017 15:59:23 +0100 Subject: Prepare release --- lib/tools/doc/src/notes.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 415f1b8516..af20200d49 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,21 @@

This document describes the changes made to the Tools application.

+
Tools 2.9.1 + +
Improvements and New Features + + +

+ Improved edoc support in emacs mode.

+

+ Own Id: OTP-14217 Aux Id: PR-1282

+
+
+
+ +
+
Tools 2.9
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 83e20c62057ebc1d8064bf57b01be560cd244e1d Mon Sep 17 00:00:00 2001 From: Raimo Niskanen Date: Thu, 4 May 2017 15:42:21 +0200 Subject: Update copyright year --- lib/tools/doc/src/make.xml | 2 +- lib/tools/doc/src/notes.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/make.xml b/lib/tools/doc/src/make.xml index 6b878f72fb..123fcd4afc 100644 --- a/lib/tools/doc/src/make.xml +++ b/lib/tools/doc/src/make.xml @@ -5,7 +5,7 @@
1996 - 2016 + 2017 Ericsson AB, All Rights Reserved diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index af20200d49..bc17fd5307 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -4,7 +4,7 @@
- 20042016 + 20042017 Ericsson AB. All Rights Reserved. -- cgit v1.2.3 From dc57404252c47520f352834ad9be45ad684f96c9 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 4 May 2017 17:05:25 +0200 Subject: Prepare release --- lib/tools/doc/src/notes.xml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index bc17fd5307..ae2b4b00a0 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,35 @@

This document describes the changes made to the Tools application.

+
Tools 2.10 + +
Fixed Bugs and Malfunctions + + +

+ In some situations, make:all() and friends did not + detect changes in include files located in the current + directory. This is now corrected.

+

+ Own Id: OTP-14339 Aux Id: ERL-395

+
+
+
+ + +
Improvements and New Features + + +

The make module now accepts the + {emake,Emake} option.

+

+ Own Id: OTP-14253

+
+
+
+ +
+
Tools 2.9.1
Improvements and New Features -- cgit v1.2.3 From eace29905be436d77245656b2511c9a9c2c67c90 Mon Sep 17 00:00:00 2001 From: Raimo Niskanen Date: Fri, 5 May 2017 13:15:42 +0200 Subject: Revert "Prepare release" This reverts commit dc57404252c47520f352834ad9be45ad684f96c9. --- lib/tools/doc/src/notes.xml | 29 ----------------------------- 1 file changed, 29 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index ae2b4b00a0..bc17fd5307 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,35 +31,6 @@

This document describes the changes made to the Tools application.

-
Tools 2.10 - -
Fixed Bugs and Malfunctions - - -

- In some situations, make:all() and friends did not - detect changes in include files located in the current - directory. This is now corrected.

-

- Own Id: OTP-14339 Aux Id: ERL-395

-
-
-
- - -
Improvements and New Features - - -

The make module now accepts the - {emake,Emake} option.

-

- Own Id: OTP-14253

-
-
-
- -
-
Tools 2.9.1
Improvements and New Features -- cgit v1.2.3 From 2ea5944504695496e2d8d0364ead14e871c71870 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Tue, 16 May 2017 09:22:02 +0200 Subject: Update instructions for how to start the lock-counting VM --- lib/tools/doc/src/lcnt_chapter.xml | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/lcnt_chapter.xml b/lib/tools/doc/src/lcnt_chapter.xml index 6cfdb5cf1b..362f212963 100644 --- a/lib/tools/doc/src/lcnt_chapter.xml +++ b/lib/tools/doc/src/lcnt_chapter.xml @@ -48,29 +48,19 @@

Enabling lock-counting -

For investigation of locks in the emulator we use an internal tool called lcnt (short for lock-count). The VM needs to be compiled with this option enabled. To enable this, use:

+

For investigation of locks in the emulator we use an internal tool called lcnt (short for lock-count). The VM needs to be compiled with this option enabled. + To compile a lock-counting VM along with a normal VM, use:

 cd $ERL_TOP
-./configure --enable-lock-counter
-	
- -

- Another way to enable this alongside a normal VM is to compile it at emulator directory level, much like a debug build. To compile it this way do the following, -

-
-cd $ERL_TOP/erts/emulator
-make lcnt FLAVOR=smp
-	
-

and then starting Erlang with,

+./configure --enable-lock-counter +

Start the lock-counting VM like this:

-$ERL_TOP/bin/cerl -lcnt
-	
-

To verify that you lock-counting enabled check that [lock-counting] appears in the status text when the VM is started.

+$ERL_TOP/bin/erl -emu_type lcnt +

To verify that lock counting is enabled check that [lock-counting] appears in the status text when the VM is started.

-Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:8:8] [rq:8] [async-threads:0] [hipe]
- [kernel-poll:false] [lock-counting]
-	
+Erlang/OTP 20 [erts-9.0] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] + [kernel-poll:false] [lock-counting]
Getting started -- cgit v1.2.3 From 836d9bacfbea741d53e8f007c6a5e0ad37e7bd34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Wed, 17 May 2017 07:10:38 +0200 Subject: Fix a few minor issues in the lcnt documentation We generally avoid abbreviations such as "e.g." and "i.e." in the documentation. We write "Erlang", not "erlang" (except when referring to the erlang module). --- lib/tools/doc/src/lcnt.xml | 10 +++++----- lib/tools/doc/src/lcnt_chapter.xml | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/lcnt.xml b/lib/tools/doc/src/lcnt.xml index 9c8ce148e9..6e66a957ab 100644 --- a/lib/tools/doc/src/lcnt.xml +++ b/lib/tools/doc/src/lcnt.xml @@ -38,7 +38,7 @@ A runtime system Lock Profiling tool.

The lcnt module is used to profile the internal ethread locks in the - Erlang Runtime System. With lcnt enabled, Internal counters in the + Erlang Runtime System. With lcnt enabled, internal counters in the runtime system are updated each time a lock is taken. The counters stores information about the number of acquisition tries and the number of collisions that has occurred during the acquisition tries. The counters also record the @@ -47,17 +47,17 @@

The data produced by the lock counters will give an estimate on how well the runtime system will behave from a parallelizable view point for the - scenarios tested. This tool was mainly developed to help erlang runtime + scenarios tested. This tool was mainly developed to help Erlang runtime developers iron out potential and generic bottlenecks.

Locks in the emulator are named after what type of resource they protect and where in the emulator they are initialized, those are lock 'classes'. Most of those locks are also instantiated several times, and given unique identifiers, to increase locking granularity. Typically an instantiated lock protects a disjunct set of - the resource, i.e ets-tables, processes or ports. In other cases it protects a - specific range of a resource, e.g. pix_lock which protects index to process + the resource, for example ets tables, processes or ports. In other cases it protects a + specific range of a resource, for example pix_lock which protects index to process mappings, and is given a unique number within the class. A unique lock in lcnt - is referenced by a name (class) and an identifier, {Name, Id}. + is referenced by a name (class) and an identifier: {Name, Id}.

Some locks in the system are static and protects global resources, for example bif_timers and the run_queue locks. Other locks are dynamic and not diff --git a/lib/tools/doc/src/lcnt_chapter.xml b/lib/tools/doc/src/lcnt_chapter.xml index 6cfdb5cf1b..38bebd1fac 100644 --- a/lib/tools/doc/src/lcnt_chapter.xml +++ b/lib/tools/doc/src/lcnt_chapter.xml @@ -42,7 +42,7 @@ completed its access to the resource and unlocked it. The lcnt tool measures these lock conflicts.

- Locks has an inherent cost in execution time and memory space. It takes time initialize, destroy, aquiring or releasing locks. To decrease lock contention it + Locks have an inherent cost in execution time and memory space. It takes time initialize, destroy, aquiring or releasing locks. To decrease lock contention it some times necessary to use finer grained locking strategies. This will usually also increase the locking overhead and hence there is a tradeoff between lock contention and overhead. In general, lock contention increases with the number of threads running concurrently. The lcnt tool does not measure locking overhead.

@@ -77,7 +77,7 @@ Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:8:8] [rq:8] [async-threads:0]

Once you have a lock counting enabled VM the module lcnt can be used. The module is intended to be used from the current running nodes shell. To access remote nodes use lcnt:clear(Node) and lcnt:collect(Node).

All locks are continuously monitored and its statistics updated. Use lcnt:clear/0 to initially clear all counters before running any specific tests. This command will also reset the duration timer internally.

-

To retrieve lock statistics information use, lcnt:collect/0,1. The collect operation will start a lcnt server if it not already started. All collected data will be built into an erlang term and uploaded to the server and a duration time will also be uploaded. This duration is the time between lcnt:clear/0,1 and lcnt:collect/0,1.

+

To retrieve lock statistics information, use lcnt:collect/0,1. The collect operation will start a lcnt server if it not already started. All collected data will be built into an Erlang term and uploaded to the server and a duration time will also be uploaded. This duration is the time between lcnt:clear/0,1 and lcnt:collect/0,1.

Once the data is collected to the server it can be filtered, sorted and printed in many different ways.

See the reference manual for a description of each function.

-- cgit v1.2.3 From 9f0e2acbdc7105f02a8cac2aa11cf9259dca34ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20H=C3=B6gberg?= Date: Thu, 18 May 2017 23:05:02 +0200 Subject: Make lock counter info independent of the locks being counted This allows us to enable/disable lock counting at will, and greatly improves the performance of erts_debug:lock_counters/1 since we no longer have to worry about the lock counters "dying" while we're enumerating them. OTP-14412 --- lib/tools/doc/src/lcnt.xml | 8 -------- 1 file changed, 8 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/lcnt.xml b/lib/tools/doc/src/lcnt.xml index 6e66a957ab..590049e681 100644 --- a/lib/tools/doc/src/lcnt.xml +++ b/lib/tools/doc/src/lcnt.xml @@ -109,14 +109,6 @@ statistics. If the server held any lock statistics data before the collect then that data is lost.

- -

- When collection occurs the runtime system transitions to a single thread, - blocking all other threads. No other tasks will be scheduled during this - operation. Depending on the size of the data this might take a long time - (several seconds) and cause timeouts in the system. -

-
-- cgit v1.2.3 From eaf8ca41dfa4850437ad270d3897399c9358ced0 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 30 May 2017 16:15:30 +0200 Subject: Prepare release --- lib/tools/doc/src/notes.xml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index bc17fd5307..ae2b4b00a0 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,35 @@

This document describes the changes made to the Tools application.

+
Tools 2.10 + +
Fixed Bugs and Malfunctions + + +

+ In some situations, make:all() and friends did not + detect changes in include files located in the current + directory. This is now corrected.

+

+ Own Id: OTP-14339 Aux Id: ERL-395

+
+
+
+ + +
Improvements and New Features + + +

The make module now accepts the + {emake,Emake} option.

+

+ Own Id: OTP-14253

+
+
+
+ +
+
Tools 2.9.1
Improvements and New Features -- cgit v1.2.3 From 32275a2fc0b86d1f1b124706afc80f3ff92216eb Mon Sep 17 00:00:00 2001 From: Hans Nilsson Date: Wed, 31 May 2017 16:21:00 +0200 Subject: Revert "Prepare release" This reverts commit eaf8ca41dfa4850437ad270d3897399c9358ced0. --- lib/tools/doc/src/notes.xml | 29 ----------------------------- 1 file changed, 29 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index ae2b4b00a0..bc17fd5307 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,35 +31,6 @@

This document describes the changes made to the Tools application.

-
Tools 2.10 - -
Fixed Bugs and Malfunctions - - -

- In some situations, make:all() and friends did not - detect changes in include files located in the current - directory. This is now corrected.

-

- Own Id: OTP-14339 Aux Id: ERL-395

-
-
-
- - -
Improvements and New Features - - -

The make module now accepts the - {emake,Emake} option.

-

- Own Id: OTP-14253

-
-
-
- -
-
Tools 2.9.1
Improvements and New Features -- cgit v1.2.3 From 43718d3b81d7f3d08e25047e22d579801bbe5044 Mon Sep 17 00:00:00 2001 From: Hans Nilsson Date: Wed, 14 Jun 2017 15:36:21 +0200 Subject: Update copyright year --- lib/tools/doc/src/lcnt.xml | 2 +- lib/tools/doc/src/lcnt_chapter.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/lcnt.xml b/lib/tools/doc/src/lcnt.xml index 6e66a957ab..31e5c241e9 100644 --- a/lib/tools/doc/src/lcnt.xml +++ b/lib/tools/doc/src/lcnt.xml @@ -5,7 +5,7 @@
2009 - 2016 + 2017 Ericsson AB, All Rights Reserved diff --git a/lib/tools/doc/src/lcnt_chapter.xml b/lib/tools/doc/src/lcnt_chapter.xml index 1981d66117..c73fcb31e0 100644 --- a/lib/tools/doc/src/lcnt_chapter.xml +++ b/lib/tools/doc/src/lcnt_chapter.xml @@ -4,7 +4,7 @@
- 20092016 + 20092017 Ericsson AB. All Rights Reserved. -- cgit v1.2.3 From c18b13d4c8aa31b145703bbbf228fb07d6b2a0a5 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 21 Jun 2017 10:53:19 +0200 Subject: Prepare release --- lib/tools/doc/src/notes.xml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index bc17fd5307..bdd5455354 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,41 @@

This document describes the changes made to the Tools application.

+
Tools 2.10 + +
Fixed Bugs and Malfunctions + + +

+ In some situations, make:all() and friends did not + detect changes in include files located in the current + directory. This is now corrected.

+

+ Own Id: OTP-14339 Aux Id: ERL-395

+
+
+
+ + +
Improvements and New Features + + +

The make module now accepts the + {emake,Emake} option.

+

+ Own Id: OTP-14253

+
+ +

Miscellaneous updates due to atoms containing + arbitrary Unicode characters.

+

+ Own Id: OTP-14285

+
+
+
+ +
+
Tools 2.9.1
Improvements and New Features -- cgit v1.2.3 From 4597a6882a13bd3cd8e6194b30a140093b667606 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 30 Jun 2017 15:21:21 +0200 Subject: Update release notes --- lib/tools/doc/src/notes.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index bdd5455354..f0df43bf2b 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,26 @@

This document describes the changes made to the Tools application.

+
Tools 2.10.1 + +
Fixed Bugs and Malfunctions + + +

+ In OTP-20.0, the behavior of c, make, and ct_make was + changed so that in some cases the beam files by default + would be written to the directory where the source files + were found. This is now changed back to the old behavior + so beam files are by default written to current + directory.

+

+ Own Id: OTP-14489 Aux Id: ERL-438

+
+
+
+ +
+
Tools 2.10
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 876ecc058d0d7dd48f8c5f7ddaf189d278e69925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20H=C3=B6gberg?= Date: Thu, 29 Jun 2017 19:32:41 +0200 Subject: Document rt_mask and add warnings about copy_save --- lib/tools/doc/src/lcnt.xml | 98 +++++++++++++++++++++++++++++++++----- lib/tools/doc/src/lcnt_chapter.xml | 11 +++-- 2 files changed, 94 insertions(+), 15 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/lcnt.xml b/lib/tools/doc/src/lcnt.xml index 590049e681..922c2ac0f4 100644 --- a/lib/tools/doc/src/lcnt.xml +++ b/lib/tools/doc/src/lcnt.xml @@ -5,7 +5,7 @@
2009 - 2016 + 2017 Ericsson AB, All Rights Reserved @@ -314,24 +314,22 @@ apply(Fun) -> term() Same as apply(Fun, []). + + Fun = fun() +

Same as apply(Fun, []).

apply(Fun, Args) -> term() - Clears counters, applies function and collects the profiling results. + Same as apply(Module, Function, Args). Fun = fun() Args = [term()] -

Clears the lock counters and then setups the instrumentation to save all destroyed locks. - After setup the fun is called, passing the elements in Args as arguments. - When the fun returns the statistics are immediately collected to the server. After the - collection the instrumentation is returned to its previous behavior. - The result of the applied fun is returned. -

+

Same as apply(Module, Function, Args).

@@ -349,6 +347,13 @@ collection the instrumentation is returned to its previous behavior. The result of the applied function is returned.

+ +

+ This function should only be used for micro-benchmarks; it sets copy_save + to true for the duration of the call, which can quickly lead to running + out of memory. +

+
@@ -421,6 +426,68 @@

Clear the internal counters. Same as lcnt:clear(Node).

+ + rt_mask() -> [category_atom()] + Same as rt_mask(node()). +

Same as rt_mask(node()).

+
+ + + rt_mask(Node) -> [category_atom()] + Returns the current lock category mask. + + Node = node() + + +

+ Refer to rt_mask/2 for a list of valid categories. All + categories are enabled by default. +

+
+
+ + + rt_mask(Categories) -> ok | {error, copy_save_enabled} + Same as rt_mask(node(), Categories). + + Categories = [atom()] + +

Same as rt_mask(node(), Categories).

+
+ + + rt_mask(Node, Categories) -> ok | {error, copy_save_enabled} + Changes the lock category mask. + + Node = node() + Categories = [atom()] + + +

+ Sets the lock category mask to the given categories. +

+

+ This will fail if the copy_save option is enabled; see + lcnt:rt_opt/2. +

+

Valid categories are:

+ + allocator + db (ETS tables) + debug + distribution + generic + io + process + scheduler + +

+ This list is subject to change at any time, as is the category any given lock + may belong to. +

+
+
+ rt_opt({Type, bool()}) -> bool() Same as rt_opt(node(), {Type, Opt}). @@ -434,16 +501,25 @@ Type = copy_save | process_locks -

Changes the lock counter behavior and returns the previous behaviour.

Option description:

{copy_save, bool()} - Enable statistics saving from destroyed locks by copying. This might consume a lot of memory. + Retains the statistics of destroyed locks.
Default: false + +

+ This option will use a lot of memory when enabled, which must be + reclaimed with lcnt:rt_clear. Note that it makes no distinction + between locks that were destroyed and locks for which counting was + disabled, so enabling this option will disable changes to the lock + category mask. +

+
{process_locks, bool()} - Profile process locks. + Profile process locks, equal to adding process to the lock category mask; + see lcnt:rt_mask/2
Default: true
diff --git a/lib/tools/doc/src/lcnt_chapter.xml b/lib/tools/doc/src/lcnt_chapter.xml index 1981d66117..24b58136aa 100644 --- a/lib/tools/doc/src/lcnt_chapter.xml +++ b/lib/tools/doc/src/lcnt_chapter.xml @@ -4,7 +4,7 @@
- 20092016 + 20092017 Ericsson AB. All Rights Reserved. @@ -29,7 +29,7 @@ nobody no 2009-11-26 - PA1 + PA2 lcnt_chapter.xml

@@ -97,8 +97,11 @@ ok ok

- Another way to to profile a specific function is to use lcnt:apply/3 or lcnt:apply/1 which does lcnt:clear/0 before the function and lcnt:collect/0 after its invocation. - It also sets copy_save to true for the duration of the function call + Another way to to profile a specific function is to use lcnt:apply/3 or lcnt:apply/1 + which does lcnt:clear/0 before the function and lcnt:collect/0 after its invocation. + This method should only be used in micro-benchmarks since it sets copy_save to true + for the duration of the function call, which may cause the emulator to run out of memory if + attempted under load.

 Erlang R13B03 (erts-5.7.4) [source] [smp:8:8] [rq:8] [async-threads:0] [hipe]
-- 
cgit v1.2.3


From 60c836afbb7c993f3bd635e12c80f018aa017e3b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?John=20H=C3=B6gberg?= 
Date: Mon, 4 Sep 2017 12:39:17 +0200
Subject: Fix list type used in rt_mask category listing

---
 lib/tools/doc/src/lcnt.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'lib/tools/doc')

diff --git a/lib/tools/doc/src/lcnt.xml b/lib/tools/doc/src/lcnt.xml
index 922c2ac0f4..5bdfc60448 100644
--- a/lib/tools/doc/src/lcnt.xml
+++ b/lib/tools/doc/src/lcnt.xml
@@ -471,7 +471,7 @@
                     lcnt:rt_opt/2.
                 

Valid categories are:

- + allocator db (ETS tables) debug @@ -480,7 +480,7 @@ io process scheduler - +

This list is subject to change at any time, as is the category any given lock may belong to. -- cgit v1.2.3 From 15e3d354f56ea0b20ce3ab048c7574eed39b69b4 Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Thu, 14 Sep 2017 12:20:47 +0200 Subject: tools: Correction of xref(3) --- lib/tools/doc/src/xref.xml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/xref.xml b/lib/tools/doc/src/xref.xml index 8c49f3a206..11c6fa56f6 100644 --- a/lib/tools/doc/src/xref.xml +++ b/lib/tools/doc/src/xref.xml @@ -559,8 +559,10 @@ Two functions (modules, analyzing operators:

- Expression ::= Expression GraphOp Expression - GraphOp ::= components | condensation | of + Expression ::= Expression BinaryGraphOp Expression + Expression ::= UnaryGraphOp Expression + UnaryGraphOp ::= components | condensation + BinaryGraphOp ::= of

As was mentioned before, the graph analyses operate on the digraph representation of graphs. -- cgit v1.2.3 From 8d1b7f9c65f14aea03d63dbdba86b0ef96804fc4 Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Wed, 13 Sep 2017 14:58:40 +0200 Subject: tools: Add handling of the -on_load() attribute to Xref --- lib/tools/doc/src/venn2.fig | 66 ++++++++++++++++++++++---------------------- lib/tools/doc/src/venn2.gif | Bin 3369 -> 3507 bytes lib/tools/doc/src/xref.xml | 6 +++- 3 files changed, 38 insertions(+), 34 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/venn2.fig b/lib/tools/doc/src/venn2.fig index 3694c12f0c..233686a729 100644 --- a/lib/tools/doc/src/venn2.fig +++ b/lib/tools/doc/src/venn2.fig @@ -1,4 +1,4 @@ -#FIG 3.2 +#FIG 3.2 Produced by xfig version 3.2.5c Portrait Center Inches @@ -7,34 +7,7 @@ Letter Single -2 1200 2 -6 3392 953 5034 3329 -6 3392 953 5034 2595 -6 3392 953 5034 2595 -5 1 0 1 -1 7 0 0 -1 0.000 0 0 0 0 2652.489 1773.500 3518 1357 3613 1774 3518 2190 -5 1 0 1 -1 7 0 0 -1 0.000 0 0 0 0 6306.956 1773.000 4028 2575 3891 1774 4028 971 -5 1 0 1 -1 7 0 0 -1 0.000 0 0 0 0 2105.283 1773.000 4402 971 4538 1774 4402 2575 -1 1 0 1 -1 7 0 0 -1 0.000 1 0.0000 4214 1774 820 821 4214 1774 3659 1171 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 1 - 4821 2325 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 - 4816 1217 4816 2329 -2 1 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 2 - 3392 1769 4816 1769 -2 1 0 1 0 0 100 0 1 0.000 0 0 -1 0 0 2 - 4816 1982 5008 1982 --6 -2 3 0 0 0 0 101 0 5 0.000 0 0 -1 0 0 36 - 4026 977 4011 1025 3996 1072 3981 1120 3966 1177 3954 1225 - 3944 1272 3929 1327 3919 1412 3909 1477 3899 1540 3894 1592 - 3894 1642 3891 1697 3889 1742 3889 1770 3394 1767 3396 1717 - 3399 1665 3409 1610 3424 1555 3439 1502 3464 1440 3489 1390 - 3516 1340 3551 1292 3584 1250 3631 1200 3679 1150 3731 1110 - 3801 1065 3869 1030 3931 1005 3986 982 4009 980 4026 977 --6 -4 0 0 101 0 0 11 0.0000 4 105 525 3965 3044 X - XU\001 -4 0 0 101 0 0 11 0.0000 4 150 1110 3688 3299 exports_not_used\001 --6 -6 5850 938 7560 3329 +6 5850 938 8070 3344 6 5884 938 7526 2580 6 5884 938 7526 2580 5 1 0 1 -1 7 0 0 -1 0.000 0 0 0 0 5144.489 1758.500 6010 1342 6105 1759 6010 2175 @@ -63,8 +36,8 @@ Single 7019 1990 7022 1945 7027 1900 7029 1855 7029 1805 7032 1765 7029 1752 7309 1757 -6 -4 0 0 101 0 0 11 0.0000 4 135 1470 6000 3014 L * (UU + (XU - LU))\001 -4 0 0 101 0 0 11 0.0000 4 150 1800 5850 3299 locals_not_used (simplified)\001 +4 0 0 101 0 0 11 0.0000 4 180 2070 6000 3014 (L-OL) * (UU + (XU-LU))\001 +4 0 0 101 0 0 11 0.0000 4 180 2160 5850 3299 locals_not_used (simplified)\001 -6 6 900 900 2550 3600 6 900 900 2550 2625 @@ -91,7 +64,34 @@ Single 2330 1222 2365 1265 2402 1317 2437 1382 2477 1455 2500 1517 2520 1585 2532 1645 2540 1712 2542 1780 2540 1842 2535 1907 2527 1957 2517 1990 2325 1987 2330 1222 -4 0 0 101 0 0 11 0.0000 4 105 780 1331 3044 XU - X - B\001 -4 0 0 101 0 0 11 0.0000 4 150 1260 1113 3314 undefined_functions\001 +4 0 0 101 0 0 11 0.0000 4 135 825 1331 3044 XU - X - B\001 +4 0 0 101 0 0 11 0.0000 4 180 1530 1113 3314 undefined_functions\001 4 0 0 100 0 0 10 0.0000 4 135 1005 1275 3525 (modules mode)\001 -6 +6 3392 953 5034 3329 +6 3392 953 5034 2595 +6 3392 953 5034 2595 +5 1 0 1 -1 7 0 0 -1 0.000 0 0 0 0 2652.489 1773.500 3518 1357 3613 1774 3518 2190 +5 1 0 1 -1 7 0 0 -1 0.000 0 0 0 0 6306.956 1773.000 4028 2575 3891 1774 4028 971 +5 1 0 1 -1 7 0 0 -1 0.000 0 0 0 0 2105.283 1773.000 4402 971 4538 1774 4402 2575 +1 1 0 1 -1 7 0 0 -1 0.000 1 0.0000 4214 1774 820 821 4214 1774 3659 1171 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 1 + 4821 2325 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2 + 4816 1217 4816 2329 +2 1 0 1 -1 7 0 0 -1 0.000 0 0 7 0 0 2 + 3392 1769 4816 1769 +2 1 0 1 0 0 100 0 1 0.000 0 0 -1 0 0 2 + 4816 1982 5008 1982 +-6 +2 3 0 0 0 0 101 0 5 0.000 0 0 -1 0 0 36 + 4026 977 4011 1025 3996 1072 3981 1120 3966 1177 3954 1225 + 3944 1272 3929 1327 3919 1412 3909 1477 3899 1540 3894 1592 + 3894 1642 3891 1697 3889 1742 3889 1770 3394 1767 3396 1717 + 3399 1665 3409 1610 3424 1555 3439 1502 3464 1440 3489 1390 + 3516 1340 3551 1292 3584 1250 3631 1200 3679 1150 3731 1110 + 3801 1065 3869 1030 3931 1005 3986 982 4009 980 4026 977 +-6 +4 0 0 101 0 0 11 0.0000 4 135 555 3965 3044 X - XU\001 +4 0 0 101 0 0 11 0.0000 4 180 1350 3688 3299 exports_not_used\001 +-6 diff --git a/lib/tools/doc/src/venn2.gif b/lib/tools/doc/src/venn2.gif index 4cfea24646..bb12f4bd1f 100644 Binary files a/lib/tools/doc/src/venn2.gif and b/lib/tools/doc/src/venn2.gif differ diff --git a/lib/tools/doc/src/xref.xml b/lib/tools/doc/src/xref.xml index 11c6fa56f6..6f833246ad 100644 --- a/lib/tools/doc/src/xref.xml +++ b/lib/tools/doc/src/xref.xml @@ -4,7 +4,7 @@

- 20002016 + 20002017 Ericsson AB. All Rights Reserved. @@ -347,6 +347,9 @@ represented by Locally Used Functions (*). Functions of all modules that have been used in some local call. + OL + Functions with an attribute tag on_load (*). + LC Local Calls (*). XC @@ -393,6 +396,7 @@ facts about the LU and XU may have elements in common. Put in another way: V is equal to UU + XU + LU. + OL is a subset of F. E is equal to LC + XC. Note that LC and XC may have elements in common, namely if some function is locally and externally used from one and the same -- cgit v1.2.3 From af2073640c4b7c67c9b978ebc203d57ac43e96dc Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 22 Sep 2017 15:21:49 +0200 Subject: Update release notes --- lib/tools/doc/src/notes.xml | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index f0df43bf2b..3eaa2058a0 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,75 @@

This document describes the changes made to the Tools application.

+
Tools 2.11 + +
Fixed Bugs and Malfunctions + + +

The predefined Xref analysis locals_not_used + no longer reports unused functions with the + -on_load() attribute.

The new predefined + Xref variable OL holds all functions with the + -on_load() attribute.

+

+ Own Id: OTP-14344

+
+ +

+ In fprof when sampling multiple processes and analyzing + with totals set to true, the output now sums together all + caller and callee entries which concerns the same + function. Previous behaviour was to report each + contributing entry separately.

+

+ Own Id: OTP-14500

+
+
+
+ + +
Improvements and New Features + + +

Lock counting can now be fully toggled at runtime in + the lock counting emulator (-emu_type lcnt). + Everything is enabled by default to match the old + behavior, but specific categories can be toggled at will + with minimal runtime overhead when disabled. Refer to the + documentation on lcnt:rt_mask/1 for details.

+

+ Own Id: OTP-13170

+
+ +

lcnt:collect and lcnt:clear will no + longer block all other threads in the runtime system.

+

+ Own Id: OTP-14412

+
+ +

+ General Unicode improvements.

+

+ Own Id: OTP-14462

+
+ +

+ Tools are updated to show Unicode atoms correctly.

+

+ Own Id: OTP-14464

+
+ +

Add erlang:iolist_to_iovec/1, which converts an + iolist() to an erlang:iovec(), which suitable for use + with enif_inspect_iovec.

+

+ Own Id: OTP-14520

+
+
+
+ +
+
Tools 2.10.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 9395c7b4a2079349fdb881a1f537af5b73eacfd2 Mon Sep 17 00:00:00 2001 From: Lars Thorsen Date: Mon, 25 Sep 2017 15:15:37 +0200 Subject: Remove unused files from the documentation build --- lib/tools/doc/src/Makefile | 17 +++++++------- lib/tools/doc/src/fascicules.xml | 18 -------------- lib/tools/doc/src/note.gif | Bin 1539 -> 0 bytes lib/tools/doc/src/part_notes.xml | 39 ------------------------------- lib/tools/doc/src/part_notes_history.xml | 39 ------------------------------- lib/tools/doc/src/warning.gif | Bin 1498 -> 0 bytes 6 files changed, 8 insertions(+), 105 deletions(-) delete mode 100644 lib/tools/doc/src/fascicules.xml delete mode 100644 lib/tools/doc/src/note.gif delete mode 100644 lib/tools/doc/src/part_notes.xml delete mode 100644 lib/tools/doc/src/part_notes_history.xml delete mode 100644 lib/tools/doc/src/warning.gif (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/Makefile b/lib/tools/doc/src/Makefile index d9c3b0ad2a..7011f869cd 100644 --- a/lib/tools/doc/src/Makefile +++ b/lib/tools/doc/src/Makefile @@ -1,7 +1,7 @@ # # %CopyrightBegin% # -# Copyright Ericsson AB 1997-2016. All Rights Reserved. +# Copyright Ericsson AB 1997-2017. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -47,9 +47,9 @@ XML_REF3_FILES = \ make.xml \ tags.xml \ xref.xml \ - erlang_mode.xml + erlang_mode.xml -XML_PART_FILES = part.xml part_notes.xml part_notes_history.xml +XML_PART_FILES = part.xml XML_CHAPTER_FILES = \ cover_chapter.xml \ @@ -86,9 +86,9 @@ HTML_REF_MAN_FILE = $(HTMLDIR)/index.html TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf # ---------------------------------------------------- -# FLAGS +# FLAGS # ---------------------------------------------------- -XML_FLAGS += +XML_FLAGS += # ---------------------------------------------------- # Targets @@ -108,17 +108,17 @@ man: $(MAN3_FILES) gifs: $(GIF_FILES:%=$(HTMLDIR)/%) -debug opt: +debug opt: clean clean_docs: rm -rf $(HTMLDIR)/* rm -f $(MAN3DIR)/* rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo) - rm -f errs core *~ + rm -f errs core *~ # ---------------------------------------------------- # Release Target -# ---------------------------------------------------- +# ---------------------------------------------------- include $(ERL_TOP)/make/otp_release_targets.mk release_docs_spec: docs @@ -132,4 +132,3 @@ release_docs_spec: docs $(INSTALL_DATA) $(MAN3DIR)/* "$(RELEASE_PATH)/man/man3" release_spec: - diff --git a/lib/tools/doc/src/fascicules.xml b/lib/tools/doc/src/fascicules.xml deleted file mode 100644 index 37feca543f..0000000000 --- a/lib/tools/doc/src/fascicules.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - User's Guide - - - Reference Manual - - - Release Notes - - - Off-Print - - - diff --git a/lib/tools/doc/src/note.gif b/lib/tools/doc/src/note.gif deleted file mode 100644 index 6fffe30419..0000000000 Binary files a/lib/tools/doc/src/note.gif and /dev/null differ diff --git a/lib/tools/doc/src/part_notes.xml b/lib/tools/doc/src/part_notes.xml deleted file mode 100644 index c4c6fa4d7d..0000000000 --- a/lib/tools/doc/src/part_notes.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - -
- - 20042016 - Ericsson AB. All Rights Reserved. - - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - - Tools Release Notes - - - - -
- -

The Tools application contains a number of stand-alone - tools, which are useful when developing Erlang programs.

-

For information about older versions, see - Release Notes History.

-
- -
- diff --git a/lib/tools/doc/src/part_notes_history.xml b/lib/tools/doc/src/part_notes_history.xml deleted file mode 100644 index a34e35fc56..0000000000 --- a/lib/tools/doc/src/part_notes_history.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - -
- - 2006 - 2016 - Ericsson AB, All Rights Reserved - - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - The Initial Developer of the Original Code is Ericsson AB. - - - Tools Release Notes History - - - - -
- -

The Tools application contains a number of stand-alone - tools, which are useful when developing Erlang programs.

-
- -
- diff --git a/lib/tools/doc/src/warning.gif b/lib/tools/doc/src/warning.gif deleted file mode 100644 index 96af52360e..0000000000 Binary files a/lib/tools/doc/src/warning.gif and /dev/null differ -- cgit v1.2.3 From cc8dade5326d130f1c704f7a47a4d0ce88af370e Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Mon, 23 Oct 2017 13:10:21 +0200 Subject: Refactor xmllint check and make it fail on failure This commit also adds a check to see that all files that are part of an xi:include also have part of XML_FILES and vice versa. It also fixes any applications where this was not true. --- lib/tools/doc/src/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/Makefile b/lib/tools/doc/src/Makefile index 7011f869cd..b554781382 100644 --- a/lib/tools/doc/src/Makefile +++ b/lib/tools/doc/src/Makefile @@ -58,8 +58,7 @@ XML_CHAPTER_FILES = \ lcnt_chapter.xml \ erlang_mode_chapter.xml \ xref_chapter.xml \ - notes.xml \ - notes_history.xml + notes.xml BOOK_FILES = book.xml -- cgit v1.2.3 From 47198f179ab14cf8cfcdab0d976650cd1519b236 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 8 Dec 2017 10:57:50 +0100 Subject: Update release notes --- lib/tools/doc/src/notes.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 3eaa2058a0..1edc08c9cd 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,21 @@

This document describes the changes made to the Tools application.

+
Tools 2.11.1 + +
Fixed Bugs and Malfunctions + + +

Removed all old unused files in the documentation. +

+

+ Own Id: OTP-14475 Aux Id: ERL-409, PR-1493

+
+
+
+ +
+
Tools 2.11
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 6328a1345783d13684407fc6dcbe9ea473c12cdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20G=C3=B6m=C3=B6ri?= Date: Wed, 7 Feb 2018 09:20:11 +0100 Subject: Remove 'Example' without an example from docs --- lib/tools/doc/src/lcnt.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/lcnt.xml b/lib/tools/doc/src/lcnt.xml index 5bdfc60448..0c24375b91 100644 --- a/lib/tools/doc/src/lcnt.xml +++ b/lib/tools/doc/src/lcnt.xml @@ -371,7 +371,7 @@ Serial = integer() -

Creates a process id with creation 0. Example:

+

Creates a process id with creation 0.

-- cgit v1.2.3 From 7c7ba7191a3932e737fa81fd0166df1c637d4b31 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 9 Mar 2018 11:01:07 +0100 Subject: Update release notes --- lib/tools/doc/src/notes.xml | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 1edc08c9cd..45f276c09e 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,46 @@

This document describes the changes made to the Tools application.

+
Tools 2.11.2 + +
Fixed Bugs and Malfunctions + + +

A counting bug is corrected in Cover. The bug + was introduced in Erlang/OTP 18.0.

+

+ Own Id: OTP-14817 Aux Id: PR 1641

+
+ +

The lcnt server will no longer crash if + lcnt:information/0 is called before + lcnt:collect/0.

+

+ Own Id: OTP-14912

+
+ +

lcnt:collect will now implicitly start the + lcnt server, as per the documentation.

+

+ Own Id: OTP-14913

+
+
+
+ + +
Improvements and New Features + + +

+ Improved indentation in emacs and various other updates.

+

+ Own Id: OTP-14944

+
+
+
+ +
+
Tools 2.11.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From d969e5dce796a7d73975785dc1a1c421e09c2583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20H=C3=B6gberg?= Date: Fri, 13 Apr 2018 17:14:52 +0200 Subject: tools: Generate typespecs in doc build --- lib/tools/doc/specs/.gitignore | 1 + lib/tools/doc/src/Makefile | 14 ++++++++++++++ lib/tools/doc/src/specs.xml | 12 ++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 lib/tools/doc/specs/.gitignore create mode 100644 lib/tools/doc/src/specs.xml (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/specs/.gitignore b/lib/tools/doc/specs/.gitignore new file mode 100644 index 0000000000..322eebcb06 --- /dev/null +++ b/lib/tools/doc/specs/.gitignore @@ -0,0 +1 @@ +specs_*.xml diff --git a/lib/tools/doc/src/Makefile b/lib/tools/doc/src/Makefile index b554781382..4b663106a0 100644 --- a/lib/tools/doc/src/Makefile +++ b/lib/tools/doc/src/Makefile @@ -84,11 +84,20 @@ HTML_REF_MAN_FILE = $(HTMLDIR)/index.html TOP_PDF_FILE = $(PDFDIR)/$(APPLICATION)-$(VSN).pdf +SPECS_FILES = $(XML_REF3_FILES:%.xml=$(SPECDIR)/specs_%.xml) + +TOP_SPECS_FILE = specs.xml + # ---------------------------------------------------- # FLAGS # ---------------------------------------------------- XML_FLAGS += +TOOLS_SRC=$(ERL_TOP)/lib/tools/src +TOOLS_INCLUDE=$(ERL_TOP)/lib/tools/include + +SPECS_FLAGS = -I$(TOOLS_SRC) -I$(TOOLS_INCLUDE) + # ---------------------------------------------------- # Targets # ---------------------------------------------------- @@ -113,8 +122,13 @@ clean clean_docs: rm -rf $(HTMLDIR)/* rm -f $(MAN3DIR)/* rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo) + rm -f $(SPECDIR)/* rm -f errs core *~ +# erlang_mode doesn't have erlang source so we generate a dummy file for it. +$(SPECDIR)/specs_erlang_mode.xml: + echo '' > $(SPECDIR)/specs_erlang_mode.xml + # ---------------------------------------------------- # Release Target # ---------------------------------------------------- diff --git a/lib/tools/doc/src/specs.xml b/lib/tools/doc/src/specs.xml new file mode 100644 index 0000000000..0b5b7b171c --- /dev/null +++ b/lib/tools/doc/src/specs.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + -- cgit v1.2.3 From 573a5abd9d6b1668b49376b489b187780c7125c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20H=C3=B6gberg?= Date: Tue, 27 Mar 2018 13:14:40 +0200 Subject: erts: Rewrite memory instrumentation This commit replaces the old memory instrumentation with a new implementation that scans carriers instead of wrapping erts_alloc/erts_free. The old implementation could not extract information without halting the emulator, had considerable runtime overhead, and the memory maps it produced were noisy and lacked critical information. Since the new implementation walks through existing data structures there's no longer a need to start the emulator with special flags to get information about carrier utilization/fragmentation. Memory fragmentation is also easier to diagnose as it's presented on a per-carrier basis which eliminates the need to account for "holes" between mmap segments. To help track allocations, each allocation can now be tagged with what it is and who allocated it at the cost of one extra word per allocation. This is controlled on a per-allocator basis with the +Matags option, and is enabled by default for binary_alloc and driver_alloc (which is also used by NIFs). --- lib/tools/doc/src/instrument.xml | 527 ++++++++++++--------------------------- 1 file changed, 165 insertions(+), 362 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/instrument.xml b/lib/tools/doc/src/instrument.xml index bb6f9b6100..9fd9332373 100644 --- a/lib/tools/doc/src/instrument.xml +++ b/lib/tools/doc/src/instrument.xml @@ -4,7 +4,7 @@
- 19982016 + 19982018 Ericsson AB. All Rights Reserved. @@ -41,387 +41,190 @@

Note that this whole module is experimental, and the representations used as well as the functionality is likely to change in the future.

-

The instrument module interface was slightly changed in - Erlang/OTP R9C.

-

To start an Erlang runtime system with instrumentation, use the - +Mi* set of command-line arguments to the erl command (see - the erts_alloc(3) and erl(1) man pages).

-

The basic object of study in the case of memory allocation is a memory - allocation map. A memory allocation map contains a list of descriptors - for each allocated memory block. Currently, a descriptor is a 4-tuple

-
-        {TypeNo, Address, Size, PidDesc}    
-

where TypeNo is the memory block type number, Address - is its place in memory, and Size is its size, in bytes. - PidDesc is either a tuple {X,Y,Z} identifying the - process which was executing when the block was allocated, or - undefined if no process was executing. The pid tuple - {X,Y,Z} can be transformed into a real pid by usage of the - c:pid/3 function.

-

Various details about memory allocation:

-

Memory blocks are allocated both on the heap segment and on other memory - segments. This can cause the instrumentation functionality to report - very large holes. Currently the instrumentation functionality doesn't - provide any support for distinguishing between holes between memory - segments, and holes between allocated blocks inside memory segments. - The current size of the process cannot be obtained from within Erlang, - but can be seen with one of the system statistics tools, e.g., - ps or top. The Solaris utility pmap can be - useful. It reports currently mapped memory segments.

-

Overhead for instrumentation: When the emulator has been started with - the "+Mim true" - flag, each block is preceded by a 24 bytes large - header on a 32-bit machine and a 48 bytes large header on a 64-bit - machine. When the emulator has been started with the - "+Mis true" - flag, each block is preceded by an 8 bytes large header. These are the header - sizes used by the Erlang 5.3/OTP R9C emulator. Other versions of the - emulator may use other header sizes. The function - block_header_size/1 - can be used for retrieving the header size used for a specific memory - allocation map. The time overhead for managing the instrumentation - data is small.

-

Sizes presented by the instrumentation functionality are (by the - emulator) requested sizes, i.e. neither instrumentation headers nor - headers used by allocators are included.

+ + + + +

A histogram of block sizes where each interval's upper bound is + twice as high as the one before it.

+

The upper bound of the first interval is provided by the function + that returned the histogram, and the last interval has no upper + bound.

+
+
+ + + +

A summary of allocated block sizes (including their headers) grouped + by their Origin and Type.

+

Origin is generally which NIF or driver that + allocated the blocks, or 'system' if it could not be determined.

+

Type is the allocation category that the blocks + belong to, e.g. db_term, message or binary.

+

If one or more carriers could not be scanned in full without harming + the responsiveness of the system, UnscannedSize + is the number of bytes that had to be skipped.

+
+
+ + + +

AllocatorType is the type of the allocator that + employs this carrier.

+

TotalSize is the total size of the carrier, + including its header.

+

AllocatedSize is the combined size of the + carrier's allocated blocks, including their headers.

+

AllocatedCount is the number of allocated + blocks in the carrier.

+

InPool is whether the carrier is in the + migration pool.

+

FreeBlocks is a histogram of the free block + sizes in the carrier.

+

If the carrier could not be scanned in full without harming the + responsiveness of the system, UnscannedSize is + the number of bytes that had to be skipped.

+
+
+
+ - allocator_descr(MemoryData, TypeNo) -> AllocDescr | invalid_type | "unknown" - Returns a allocator description - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - TypeNo = int() - AllocDescr = atom() | string() - - -

Returns the allocator description of the allocator that - manages memory blocks of type number TypeNo used in - MemoryData. - Valid TypeNos are in the range returned by - type_no_range/1 on - this specific memory allocation map. If TypeNo is an - invalid integer, invalid_type is returned.

-
-
- - block_header_size(MemoryData) -> int() - Returns the memory block header size used by the emulator that generated the memory allocation map - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - - - -

Returns the memory block header size used by the - emulator that generated the memory allocation map. The block - header size may differ between different emulators.

-
-
- - class_descr(MemoryData, TypeNo) -> ClassDescr | invalid_type | "unknown" - Returns a allocator description - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - TypeNo = int() - ClassDescr = atom() | string() - - -

Returns the class description of the class that - the type number TypeNo used in MemoryData belongs - to. - Valid TypeNos are in the range returned by - type_no_range/1 on - this specific memory allocation map. If TypeNo is an - invalid integer, invalid_type is returned.

-
-
- - descr(MemoryData) -> DescrMemoryData - Replace type numbers in memory allocation map with type descriptions - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - DescrMemoryData = {term(), DescrAllocList} - DescrAllocList = [DescrDesc] - DescrDesc = {TypeDescr, int(), int(), DescrPidDesc} - TypeDescr = atom() | string() - DescrPidDesc = pid() | undefined - - -

Returns a memory allocation map where the type numbers (first - element of Desc) have been replaced by type descriptions, - and pid tuples (fourth element of Desc) have been - replaced by real pids.

-
-
- - holes(MemoryData) -> ok - Print out the sizes of unused memory blocks - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - - -

Prints out the size of each hole (i.e., the space between - allocated blocks) on the terminal. NOTE: Really large holes - are probably holes between memory segments. - The memory allocation map has to be sorted (see - sort/1).

-
-
- - mem_limits(MemoryData) -> {Low, High} - Return lowest and highest memory address used - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - Low = High = int() - - -

Returns a tuple {Low, High} indicating - the lowest and highest address used. - The memory allocation map has to be sorted (see - sort/1).

-
-
- - memory_data() -> MemoryData | false - Return the current memory allocation map - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - - -

Returns MemoryData (a the memory allocation map) - if the emulator has been started with the "+Mim true" - command-line argument; otherwise, false. NOTE:memory_data/0 blocks execution of other processes while - the data is collected. The time it takes to collect the data can - be substantial.

-
-
- - memory_status(StatusType) -> [StatusInfo] | false - Return current memory allocation status - - StatusType = total | allocators | classes | types - StatusInfo = {About, [Info]} - About = atom() - Info = {InfoName, Current, MaxSinceLast, MaxEver} - InfoName = sizes|blocks - Current = int() - MaxSinceLast = int() - MaxEver = int() - - -

Returns a list of StatusInfo if the emulator has been - started with the "+Mis true" or "+Mim true" - command-line argument; otherwise, false.

-

See the - read_memory_status/1 - function for a description of the StatusInfo term.

-
-
- - read_memory_data(File) -> MemoryData | {error, Reason} - Read memory allocation map - - File = string() - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - + + Return a summary of all allocations in the system. - -

Reads a memory allocation map from the file File and - returns it. The file is assumed to have been created by - store_memory_data/1. The error codes are the same as for - file:consult/1.

+

Shorthand for + allocations(#{}).

+ - read_memory_status(File) -> MemoryStatus | {error, Reason} - Read memory allocation status from a file - - File = string() - MemoryStatus = [{StatusType, [StatusInfo]}] - StatusType = total | allocators | classes | types - StatusInfo = {About, [Info]} - About = atom() - Info = {InfoName, Current, MaxSinceLast, MaxEver} - InfoName = sizes|blocks - Current = int() - MaxSinceLast = int() - MaxEver = int() - - - -

Reads memory allocation status from the file File and - returns it. The file is assumed to have been created by - store_memory_status/1. The error codes are the same as - for file:consult/1.

-

When StatusType is allocators, About is - the allocator that the information is about. When - StatusType is types, About is - the memory block type that the information is about. Memory - block types are not described other than by their name and may - vary between emulators. When StatusType is classes, - About is the memory block type class that information is - presented about. Memory block types are classified after their - use. Currently the following classes exist:

+ + Return a summary of all allocations filtered by allocator type + and scheduler id. + +

Returns a summary of all tagged allocations in the system, + optionally filtered by allocator type and scheduler id.

+

Only binaries and allocations made by NIFs and drivers are tagged by + default, but this can be configured an a per-allocator basis with the + +M<S>atags + emulator option.

+

If tagged allocations are not enabled on any of the specified + allocator types, the call will fail with + {error, not_enabled}.

+

The following options can be used:

- process_data - Erlang process specific data. - binary_data - Erlang binaries. - atom_data - Erlang atoms. - code_data - Erlang code. - system_data - Other data used by the system + allocator_types + +

The allocator types that will be searched. Defaults to all + alloc_util allocators.

+
+ scheduler_ids + +

The scheduler ids whose allocator instances will be searched. A + scheduler id of 0 will refer to the global instance that is not + tied to any particular scheduler. Defaults to all schedulers and + the global instance.

+
+ histogram_start + +

The upper bound of the first interval in the allocated block + size histograms. Defaults to 128.

+
+ histogram_width + +

The number of intervals in the allocated block size histograms. + Defaults to 18.

+
-

When InfoName is sizes, Current, - MaxSinceLast, and MaxEver are, respectively, current - size, maximum size since last call to - store_memory_status/1 or memory_status/1 with the - specific StatusType, and maximum size since the emulator - was started. When InfoName is blocks, Current, - MaxSinceLast, and MaxEver are, respectively, current - number of blocks, maximum number of blocks since last call to - store_memory_status/1 or memory_status/1 with the - specific StatusType, and maximum number of blocks since the - emulator was started.

-

NOTE:A memory block is accounted for at - "the first level" allocator. E.g. fix_alloc allocates its - memory pools via ll_alloc. When a fix_alloc block - is allocated, neither the block nor the pool in which it resides - are accounted for as memory allocated via ll_alloc even - though it is.

-
-
- - sort(MemoryData) -> MemoryData - Sort the memory allocation list - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - - - -

Sorts a memory allocation map so that the addresses are in - ascending order.

-
-
- - store_memory_data(File) -> true|false - Store the current memory allocation map on a file - - File = string() - - -

Stores the current memory allocation map on the file - File. Returns true if the emulator has been - started with the "+Mim true" command-line argument, and - the map was successfully stored; otherwise, false. The - contents of the file can later be read using - read_memory_data/1. - NOTE:store_memory_data/0 blocks execution of - other processes while the data is collected. The time it takes - to collect the data can be substantial.

-
-
- - store_memory_status(File) -> true|false - Store the current memory allocation status on a file - - File = string() - - -

Stores the current memory status on the file - File. Returns true if the emulator has been - started with the "+Mis true", or "+Mim true" - command-line arguments, and the data was successfully stored; - otherwise, false. The contents of the file can later be - read using - read_memory_status/1.

-
-
- - sum_blocks(MemoryData) -> int() - Return the total amount of memory used - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - - -

Returns the total size of the memory blocks in the list.

+

Example:

+ instrument:allocations(#{ histogram_start => 128, histogram_width => 15 }). +{ok,{128,0, + #{udp_inet => + #{driver_event_state => {0,0,0,0,0,0,0,0,0,1,0,0,0,0,0}}, + system => + #{heap => {0,0,0,0,20,4,2,2,2,3,0,1,0,0,1}, + db_term => {271,3,1,52,80,1,0,0,0,0,0,0,0,0,0}, + code => {0,0,0,5,3,6,11,22,19,20,10,2,1,0,0}, + binary => {18,0,0,0,7,0,0,1,0,0,0,0,0,0,0}, + message => {0,40,78,2,2,0,0,0,0,0,0,0,0,0,0}, + ... } + spawn_forker => + #{driver_select_data_state => + {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0}}, + ram_file_drv => #{drv_binary => {0,0,0,0,0,0,1,0,0,0,0,0,0,0,0}}, + prim_file => + #{process_specific_data => {2,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + nif_trap_export_entry => {0,4,0,0,0,0,0,0,0,0,0,0,0,0,0}, + monitor_extended => {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, + drv_binary => {0,0,0,0,0,0,1,0,3,5,0,0,0,1,0}, + binary => {0,4,0,0,0,0,0,0,0,0,0,0,0,0,0}}, + prim_buffer => + #{nif_internal => {0,4,0,0,0,0,0,0,0,0,0,0,0,0,0}, + binary => {0,4,0,0,0,0,0,0,0,0,0,0,0,0,0}}}}} + ]]>
+ - type_descr(MemoryData, TypeNo) -> TypeDescr | invalid_type - Returns a type description - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - TypeNo = int() - TypeDescr = atom() | string() - + + Return a list of all carriers in the system. -

Returns the type description of a type number used in - MemoryData. - Valid TypeNos are in the range returned by - type_no_range/1 on - this specific memory allocation map. If TypeNo is an - invalid integer, invalid_type is returned.

+

Shorthand for + carriers(#{}).

+ - type_no_range(MemoryData) -> {Min, Max} - Returns the memory block type numbers - - MemoryData = {term(), AllocList} - AllocList = [Desc] - Desc = {int(), int(), int(), PidDesc} - PidDesc = {int(), int(), int()} | undefined - Min = int() - Max = int() - + + Return a list of all carriers filtered by allocator type and + scheduler id. - -

Returns the memory block type number range used in - MemoryData. When the memory allocation map was generated - by an Erlang 5.3/OTP R9C or newer emulator, all integers T - that satisfy Min <= T <= Max are - valid type numbers. When the memory allocation map was generated - by a pre Erlang 5.3/OTP R9C emulator, all integers in the - range are not valid type numbers.

+

Returns a summary of all carriers in the system, optionally filtered + by allocator type and scheduler id.

+

If the specified allocator types are not enabled, the call will fail + with {error, not_enabled}.

+

The following options can be used:

+ + allocator_types + +

The allocator types that will be searched. Defaults to all + alloc_util allocators.

+
+ scheduler_ids + +

The scheduler ids whose allocator instances will be searched. A + scheduler id of 0 will refer to the global instance that is not + tied to any particular scheduler. Defaults to all schedulers and + the global instance.

+
+ histogram_start + +

The upper bound of the first interval in the free block size + histograms. Defaults to 512.

+
+ histogram_width + +

The number of intervals in the free block size histograms. + Defaults to 14.

+
+
+

Example:

+ instrument:carriers(#{ histogram_start => 512, histogram_width => 8 }). +{ok,{512, + [{ll_alloc,1048576,0,1048344,71,false,{0,0,0,0,0,0,0,0}}, + {binary_alloc,1048576,0,324640,13,false,{3,0,0,1,0,0,0,2}}, + {eheap_alloc,2097152,0,1037200,45,false,{2,1,1,3,4,3,2,2}}, + {fix_alloc,32768,0,29544,82,false,{22,0,0,0,0,0,0,0}}, + {...}|...]}} + ]]>
+
-- cgit v1.2.3 From 202bb737e3deabfebee683266f4b7c42781eb521 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 30 Apr 2018 10:06:42 +0200 Subject: Update release notes --- lib/tools/doc/src/notes.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 45f276c09e..6452080572 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,27 @@

This document describes the changes made to the Tools application.

+
Tools 3.0 + +
Improvements and New Features + + +

Added instrument:allocations and + instrument:carriers for retrieving information + about memory utilization and fragmentation.

+

The old instrument interface has been removed, + as have the related options +Mim and + +Mis.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-14961

+
+
+
+ +
+
Tools 2.11.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 561e871d680a081d531ff205b8331eacca1d7a3c Mon Sep 17 00:00:00 2001 From: Henrik Date: Wed, 2 May 2018 09:19:05 +0200 Subject: Revert "Update release notes" This reverts commit 202bb737e3deabfebee683266f4b7c42781eb521. --- lib/tools/doc/src/notes.xml | 21 --------------------- 1 file changed, 21 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 6452080572..45f276c09e 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,27 +31,6 @@

This document describes the changes made to the Tools application.

-
Tools 3.0 - -
Improvements and New Features - - -

Added instrument:allocations and - instrument:carriers for retrieving information - about memory utilization and fragmentation.

-

The old instrument interface has been removed, - as have the related options +Mim and - +Mis.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-14961

-
-
-
- -
-
Tools 2.11.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From d5dc5584884488c8fcb5710997a14c2c418692f3 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Tue, 15 May 2018 16:32:26 +0200 Subject: erts: Make cpu_timestamp use per thread on Linux If we don't use per thread the value becomes completely nonsensical on systems with more than one scheduler. We keep the old solaris behaviour in order to support the option, but it only really works when using a single scheduler. --- lib/tools/doc/src/fprof.xml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/fprof.xml b/lib/tools/doc/src/fprof.xml index 4c9e48045e..72624bd33b 100644 --- a/lib/tools/doc/src/fprof.xml +++ b/lib/tools/doc/src/fprof.xml @@ -328,10 +328,16 @@ purposes. This option is only allowed with the start option. cpu_time| {cpu_time, bool()} - The options cpu_time or {cpu_time, true> + The options cpu_time or {cpu_time, true} makes the timestamps in the trace be in CPU time instead of wallclock time which is the default. This option is - only allowed with the start option. + only allowed with the start option. +

Getting correct values out of cpu_time can be difficult. + The best way to get correct values is to run using a single + scheduler and bind that scheduler to a specific CPU, + i.e. erl +S 1 +sbt db.

+
+
{procs, PidSpec}| {procs, [PidSpec]} Specifies which processes that shall be traced. If this option is not given, the calling process is -- cgit v1.2.3 From fd8e49b5bddceaae803670121b603b5eee8c5c08 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 25 May 2018 12:14:27 +0200 Subject: Prepare release --- lib/tools/doc/src/notes.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 45f276c09e..6452080572 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,27 @@

This document describes the changes made to the Tools application.

+
Tools 3.0 + +
Improvements and New Features + + +

Added instrument:allocations and + instrument:carriers for retrieving information + about memory utilization and fragmentation.

+

The old instrument interface has been removed, + as have the related options +Mim and + +Mis.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-14961

+
+
+
+ +
+
Tools 2.11.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From b9faca269de1de51ae33577cc204befbea24243c Mon Sep 17 00:00:00 2001 From: Henrik Date: Tue, 29 May 2018 10:47:25 +0200 Subject: Revert "Prepare release" This reverts commit fd8e49b5bddceaae803670121b603b5eee8c5c08. --- lib/tools/doc/src/notes.xml | 21 --------------------- 1 file changed, 21 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 6452080572..45f276c09e 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,27 +31,6 @@

This document describes the changes made to the Tools application.

-
Tools 3.0 - -
Improvements and New Features - - -

Added instrument:allocations and - instrument:carriers for retrieving information - about memory utilization and fragmentation.

-

The old instrument interface has been removed, - as have the related options +Mim and - +Mis.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-14961

-
-
-
- -
-
Tools 2.11.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 5ca92e2eac1e84fd22f60e7abc3aa2b0ff1cb42b Mon Sep 17 00:00:00 2001 From: Henrik Nord Date: Mon, 18 Jun 2018 14:51:18 +0200 Subject: Update copyright year --- lib/tools/doc/src/Makefile | 2 +- lib/tools/doc/src/fprof.xml | 2 +- lib/tools/doc/src/lcnt.xml | 2 +- lib/tools/doc/src/notes.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/Makefile b/lib/tools/doc/src/Makefile index 4b663106a0..001c31a443 100644 --- a/lib/tools/doc/src/Makefile +++ b/lib/tools/doc/src/Makefile @@ -1,7 +1,7 @@ # # %CopyrightBegin% # -# Copyright Ericsson AB 1997-2017. All Rights Reserved. +# Copyright Ericsson AB 1997-2018. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/lib/tools/doc/src/fprof.xml b/lib/tools/doc/src/fprof.xml index 72624bd33b..1fd828d127 100644 --- a/lib/tools/doc/src/fprof.xml +++ b/lib/tools/doc/src/fprof.xml @@ -4,7 +4,7 @@
- 20012016 + 20012018 Ericsson AB. All Rights Reserved. diff --git a/lib/tools/doc/src/lcnt.xml b/lib/tools/doc/src/lcnt.xml index 0c24375b91..d2595cdb60 100644 --- a/lib/tools/doc/src/lcnt.xml +++ b/lib/tools/doc/src/lcnt.xml @@ -5,7 +5,7 @@
2009 - 2017 + 2018 Ericsson AB, All Rights Reserved diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 45f276c09e..acaedb5613 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -4,7 +4,7 @@
- 20042017 + 20042018 Ericsson AB. All Rights Reserved. -- cgit v1.2.3 From bb19e24a485e9ef43bcca3fbe9757da83f70c3a0 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 19 Jun 2018 08:24:54 +0200 Subject: Prepare release --- lib/tools/doc/src/notes.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index acaedb5613..8b0a2ca283 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,27 @@

This document describes the changes made to the Tools application.

+
Tools 3.0 + +
Improvements and New Features + + +

Added instrument:allocations and + instrument:carriers for retrieving information + about memory utilization and fragmentation.

+

The old instrument interface has been removed, + as have the related options +Mim and + +Mis.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-14961

+
+
+
+ +
+
Tools 2.11.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From b453f67879df577fcf5b0eb6062ec444b0c43958 Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Fri, 13 Jul 2018 15:10:57 +0200 Subject: docs: make clean all XMLDIR --- lib/tools/doc/src/Makefile | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/Makefile b/lib/tools/doc/src/Makefile index 001c31a443..5ff4fe3113 100644 --- a/lib/tools/doc/src/Makefile +++ b/lib/tools/doc/src/Makefile @@ -120,6 +120,7 @@ debug opt: clean clean_docs: rm -rf $(HTMLDIR)/* + rm -rf $(XMLDIR) rm -f $(MAN3DIR)/* rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo) rm -f $(SPECDIR)/* -- cgit v1.2.3 From fb7006280f8d5a45459e1fba066fe6f6131e8e86 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 24 Sep 2018 11:32:41 +0200 Subject: Prepare release --- lib/tools/doc/src/notes.xml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index 8b0a2ca283..f10953774f 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,28 @@

This document describes the changes made to the Tools application.

+
Tools 3.0.1 + +
Improvements and New Features + + +

+ The HTML pages generated by cover:analyse_to_file/1 and + related functions is improved for readability.

+

+ Own Id: OTP-15213 Aux Id: PR-1807

+
+ +

+ Add alignment functionality in emacs.

+

+ Own Id: OTP-15239 Aux Id: PR-1728

+
+
+
+ +
+
Tools 3.0
Improvements and New Features -- cgit v1.2.3 From a2ca3bd78fc002dd1e6533c191e44092cc3aa949 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 10 Dec 2018 11:07:05 +0100 Subject: Prepare release --- lib/tools/doc/src/notes.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'lib/tools/doc') diff --git a/lib/tools/doc/src/notes.xml b/lib/tools/doc/src/notes.xml index f10953774f..a6781dfdb3 100644 --- a/lib/tools/doc/src/notes.xml +++ b/lib/tools/doc/src/notes.xml @@ -31,6 +31,21 @@

This document describes the changes made to the Tools application.

+
Tools 3.0.2 + +
Improvements and New Features + + +

+ Remove emacs warnings and added more tests.

+

+ Own Id: OTP-15476

+
+
+
+ +
+
Tools 3.0.1
Improvements and New Features -- cgit v1.2.3