Age | Commit message (Collapse) | Author |
|
The perf_counter is a very very cheap and high resolution timer
that can be used to timestamp system events. It does not have
monoticity guarantees, but should on most OS's expose a monotonous
time.
A special instruction has been created for this counter to further
speed up fetching it.
OTP-12908
|
|
ERTS_WRITE_UNLIKELY can be used to place global variables in
a specific section where only data that is very rarely modified
sits. This is used to improve cache locality.
|
|
* maint:
Fix inet driver multi timers using new time API
|
|
* rickard/tcp-accept-tmo-bug/OTP-13254:
Fix inet driver multi timers using new time API
|
|
* maint:
Introduce time management in native APIs
Introduce time warp safe replacement for safe_fixed option
Introduce time warp safe trace timestamp formats
Conflicts:
erts/emulator/beam/erl_bif_trace.c
erts/emulator/beam/erl_driver.h
erts/emulator/beam/erl_nif.h
erts/emulator/beam/erl_trace.c
erts/preloaded/ebin/erlang.beam
|
|
* rickard/monotonic-time-improvements/OTP-13222:
Introduce time management in native APIs
Introduce time warp safe replacement for safe_fixed option
Introduce time warp safe trace timestamp formats
|
|
|
|
* maint:
erts: Fix sendfile:ing of large files on FreeBSD
|
|
* theom/freebsd-sendfile-patch-2/OTP-13271:
erts: Fix sendfile:ing of large files on FreeBSD
|
|
If the file was larger than the OS send buffer the call
would fail before this patch.
|
|
* maint:
efile_drv: logic error in compressed file write
|
|
* mikpe/erts/efile-write-compressed-error/OTP-13270:
efile_drv: logic error in compressed file write
|
|
|
|
* lukas/erts/gc_info/OTP-13265:
erts: Add garbage_collection_info to process_info/2
Conflicts:
erts/emulator/beam/erl_bif_info.c
|
|
|
|
* siri/document-path-flag/OTP-13060:
Add documentation of '-path' flag to 'erl'
|
|
* maint:
Fix HL timer hard debug implementation
Fix stack alignment problem in ethread test on arm
Skip time_SUITE:timestamp on timewarp test
|
|
* rickard/test-fix:
Fix HL timer hard debug implementation
Fix stack alignment problem in ethread test on arm
Skip time_SUITE:timestamp on timewarp test
|
|
|
|
|
|
* bjorn/erts/clean-up-preloaded/OTP-13112:
Update preloaded modules
erl_prim_loader: Rename release_archives/0
erl_prim_loader: Correct timeout handling for efile
erl_prim_loader: Correct purging of the archive cache
erl_prim_loader: Remove unused 'cache' field
|
|
|
|
|
|
|
|
Rename release_archives/0 to purge_archive_cache/0 to make it
clearer what it does and what it doesn't do. Also add a comment
about its intended purpose.
Note that release_archives/0 is not documented and is part of the
experimental archive feature. Furthermore, the only uses I could find
were in the test suite. I did not find any uses in the external
applications relx and rebar3 applications that are known to use
archives. Therefore, I think that the increased clarity is worth
the small risk of breaking code.
|
|
The timeout routine for efile was never called. While at it,
eliminate the n_timeouts field and simplify the logic.
|
|
prim_do_release_archives/3 can't make up its mind whether the
primary archive should be released or not. The key in the process
dictionary is kept, while #prim_state.primary_archive is cleared.
It seems that intent was the primary archive should be preserved,
because the function was intended to be called by a timeout routine
every sixth minute (it is not because of a bug in setting up
the timeout).
Therefore, rewrite the code to preserve the primary archive and
simplify it while at it. Also, rename prim_release_archives/1 to
prim_purge_cache/0 to make it clearer what it is doing.
|
|
The #prim_state.cache' field is unused. The actual cache is kept
in the process dictionary.
|
|
* hb/stdlib/refine_abstr_types/OTP-10292:
erts: Improve readability of The Abstract Format
erts: Improve the documentation of the abstract format
stdlib: Update erl_parse(3)
stdlib: Refine the types of the abstract format
compiler: Improve type and specs
hipe: Improve types
dialyzer: Improve a type
doc: Update a refman example
syntax_tools: Correct a type
stdlib: Correct a type
|
|
The new time warp safe option is safe_fixed_monotonic_time which
gives erlang:monotonic_time().
The safe_fixed option was also slightly changed. It now gives
erlang:timestamp() instead of erlang:now(). This has however
not been documented, so it is considered a compatible change.
The above effects both ets, and dets.
This commit also include the bugfix OTP-13239 for
dets:info(Tab, safe_fixed). The timestamp in the result returned
by dets:info(Tab, safe_fixed) was unintentionally broken as a
result of the time API rewrites in OTP 18.0.
|
|
New timestamp options for trace, sequential trace, and
system profile:
- monotonic_timestamp
- strict_monotonic_timestamp
|
|
* maint:
Fix dirty scheduler check in handle_aux_work
|
|
* vinoski/check-awdp-esdp:
Fix dirty scheduler check in handle_aux_work
|
|
More verbose, but hopefully more readable than before.
|
|
|
|
|
|
* sverk/armata-memset-bug:
erts: Workaround memset bug in test case
|
|
* sverk/safe-purging/OTP-13122:
erts: Ignore unexpected messages to erts_code_purger
erts: Optimize erlang:check_process_code
erts: Refactor check_process_code/3
erts: Make copy_literals more fail safe
erts: Move copy_literals/2 from erlang to erts_internal
erts: Make erlang:purge_module/1 safe
erts: Refactor code:purge/1 and code:soft_purge/1
erts: Introduce erts_code_purger
|
|
|
|
|
|
|
|
* sverk/trace-doc-typo:
erts: Correct faulty doc for erlang:trace/3
|
|
The entire MFA tuple is replaced with 0, not just Arity.
|
|
This flag replaces the path specified in the boot script. It has
always existed, but was earlier only documented in SASL (script).
|
|
* maint:
Do not allow aux work on dirty schedulers
|
|
* vinoski/dirty-sched-no-aux-work/OTP-13236:
Do not allow aux work on dirty schedulers
|
|
by ignoring literals.
erts_internal:check_process_code will be called again anyway
(with option {copy_literals, true}) before the module is actually purged.
No need to check literals twice.
|
|
Move impl from erlang to erts_internal. Cut and paste.
|
|
* Same process must do enable-disable.
* System process will force it and never get 'aborted'
|
|
as it's not a public interface.
|