aboutsummaryrefslogtreecommitdiffstats
path: root/erts
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2016-02-02 16:21:15 +0100
committerRickard Green <[email protected]>2016-02-02 16:21:15 +0100
commit876af25b600bf698cac95cd1902fa16aeecc0c7e (patch)
tree1692da4f540f75506f88fe06715c1cfe7cafdc4f /erts
parent61ef7511c5ffae0b061d7cc45e9d564b02b891db (diff)
parent18f0707c218ebdeb6024ecffd7704d3582e0b91c (diff)
downloadotp-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
Diffstat (limited to 'erts')
-rw-r--r--erts/doc/src/erl_driver.xml5
-rw-r--r--erts/doc/src/erlang.xml9
-rw-r--r--erts/emulator/beam/erl_trace.c3
-rw-r--r--erts/emulator/test/trace_bif_SUITE.erl4
4 files changed, 12 insertions, 9 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}.