diff options
author | Rickard Green <[email protected]> | 2016-02-02 16:21:15 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2016-02-02 16:21:15 +0100 |
commit | 876af25b600bf698cac95cd1902fa16aeecc0c7e (patch) | |
tree | 1692da4f540f75506f88fe06715c1cfe7cafdc4f | |
parent | 61ef7511c5ffae0b061d7cc45e9d564b02b891db (diff) | |
parent | 18f0707c218ebdeb6024ecffd7704d3582e0b91c (diff) | |
download | otp-876af25b600bf698cac95cd1902fa16aeecc0c7e.tar.gz otp-876af25b600bf698cac95cd1902fa16aeecc0c7e.tar.bz2 otp-876af25b600bf698cac95cd1902fa16aeecc0c7e.zip |
Merge branch 'rickard/monotonic-time-improvements/OTP-13222' into maint
* rickard/monotonic-time-improvements/OTP-13222:
Use nano second time unit in tracing
-rw-r--r-- | erts/doc/src/erl_driver.xml | 5 | ||||
-rw-r--r-- | erts/doc/src/erlang.xml | 9 | ||||
-rw-r--r-- | erts/emulator/beam/erl_trace.c | 3 | ||||
-rw-r--r-- | erts/emulator/test/trace_bif_SUITE.erl | 4 | ||||
-rw-r--r-- | lib/kernel/doc/src/seq_trace.xml | 5 |
5 files changed, 15 insertions, 11 deletions
diff --git a/erts/doc/src/erl_driver.xml b/erts/doc/src/erl_driver.xml index e338e95938..34dc8af238 100644 --- a/erts/doc/src/erl_driver.xml +++ b/erts/doc/src/erl_driver.xml @@ -1052,8 +1052,9 @@ typedef struct ErlIOVec { <desc> <marker id="driver_get_now"></marker> <warning><p><em>This function is deprecated! Do not use it!</em> - Use the documented - <seealso marker="#time_measurement">time measurement functionality</seealso> + Use <seealso marker="#erl_drv_monotonic_time"><c>erl_drv_monotonic_time()</c></seealso> + (perhaps in combination with + <seealso marker="#erl_drv_time_offset"><c>erl_drv_time_offset()</c></seealso>) instead.</p></warning> <p>This function reads a timestamp into the memory pointed to by the parameter <c>now</c>. See the description of <seealso marker="#ErlDrvNowData">ErlDrvNowData</seealso> for diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index 964601f195..e4d5e6e77a 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -7744,7 +7744,8 @@ ok <p>Timestamps in profile messages will use <seealso marker="time_correction#Erlang_Monotonic_Time">Erlang monotonic time</seealso>. The time-stamp (Ts) has the same - format and value as produced by <c>erlang:monotonic_time()</c>.</p> + format and value as produced by + <c>erlang:monotonic_time(nano_seconds)</c>.</p> </item> <tag><c>runnable_procs</c></tag> <item> @@ -7772,7 +7773,7 @@ ok <seealso marker="time_correction#Erlang_Monotonic_Time">Erlang monotonic time</seealso> and a monotonically increasing integer. The time-stamp (Ts) has the same format and value - as produced by <c>{erlang:monotonic_time(), + as produced by <c>{erlang:monotonic_time(nano_seconds), erlang:unique_integer([monotonic])}</c>.</p> </item> <tag><c>timestamp</c></tag> @@ -8161,7 +8162,7 @@ timestamp() -> <seealso marker="time_correction#Erlang_Monotonic_Time">Erlang monotonic time</seealso> time-stamp in all trace messages. The time-stamp (Ts) has the same format and value as produced by - <c>erlang:monotonic_time()</c>. This flag overrides + <c>erlang:monotonic_time(nano_seconds)</c>. This flag overrides the <c>cpu_timestamp</c> flag.</p> </item> <tag><c>strict_monotonic_timestamp</c></tag> @@ -8171,7 +8172,7 @@ timestamp() -> monotonic time</seealso> and a monotonically increasing integer in all trace messages. The time-stamp (Ts) has the same format and value as produced by - <c>{erlang:monotonic_time(), + <c>{erlang:monotonic_time(nano_seconds), erlang:unique_integer([monotonic])}</c>. This flag overrides the <c>cpu_timestamp</c> flag.</p> </item> diff --git a/erts/emulator/beam/erl_trace.c b/erts/emulator/beam/erl_trace.c index 2243639099..8a4c0ab1f2 100644 --- a/erts/emulator/beam/erl_trace.c +++ b/erts/emulator/beam/erl_trace.c @@ -165,7 +165,8 @@ take_timestamp(ErtsTraceTimeStamp *tsp, int ts_type) case ERTS_TRACE_FLG_STRICT_MONOTONIC_TIMESTAMP: { Uint hsz = 0; ErtsMonotonicTime mtime = erts_get_monotonic_time(NULL); - mtime += ERTS_MONOTONIC_OFFSET_NATIVE; + mtime = ERTS_MONOTONIC_TO_NSEC(mtime); + mtime += ERTS_MONOTONIC_OFFSET_NSEC; hsz = (IS_SSMALL(mtime) ? (Uint) 0 : ERTS_SINT64_HEAP_SIZE((Sint64) mtime)); diff --git a/erts/emulator/test/trace_bif_SUITE.erl b/erts/emulator/test/trace_bif_SUITE.erl index 760666d077..96b7dd159f 100644 --- a/erts/emulator/test/trace_bif_SUITE.erl +++ b/erts/emulator/test/trace_bif_SUITE.erl @@ -314,9 +314,9 @@ receive_trace_msg_ts_return_to({trace_ts, Pid, return_to, {M,F,A}}, PrevTs, TsTy make_ts(timestamp) -> erlang:now(); make_ts(monotonic_timestamp) -> - erlang:monotonic_time(); + erlang:monotonic_time(nano_seconds); make_ts(strict_monotonic_timestamp) -> - MT = erlang:monotonic_time(), + MT = erlang:monotonic_time(nano_seconds), UMI = erlang:unique_integer([monotonic]), {MT, UMI}. diff --git a/lib/kernel/doc/src/seq_trace.xml b/lib/kernel/doc/src/seq_trace.xml index 9f191d488d..f4fcd222ec 100644 --- a/lib/kernel/doc/src/seq_trace.xml +++ b/lib/kernel/doc/src/seq_trace.xml @@ -136,7 +136,7 @@ seq_trace:set_token(OldToken), % activate the trace token again <seealso marker="erts:time_correction#Erlang_Monotonic_Time">Erlang monotonic time</seealso> and a monotonically increasing integer. The time-stamp has the same format and value - as produced by <c>{erlang:monotonic_time(), + as produced by <c>{erlang:monotonic_time(nano_seconds), erlang:unique_integer([monotonic])}</c>.</p> </item> <tag><c>set_token(monotonic_timestamp, <anno>Bool</anno>)</c></tag> @@ -147,7 +147,8 @@ seq_trace:set_token(OldToken), % activate the trace token again will use <seealso marker="erts:time_correction#Erlang_Monotonic_Time">Erlang monotonic time</seealso>. The time-stamp has the same - format and value as produced by <c>erlang:monotonic_time()</c>.</p> + format and value as produced by + <c>erlang:monotonic_time(nano_seconds)</c>.</p> </item> <p>If multiple timestamp flags are passed, <c>timestamp</c> has precedence over <c>strict_monotonic_timestamp</c> which |