aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-04-23erts: Rewrite memory instrumentationJohn Högberg
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 +M<S>atags option, and is enabled by default for binary_alloc and driver_alloc (which is also used by NIFs).
2018-04-18erts: Fix rare deadlock in realloc when +ramv is enabledJohn Högberg
OTP-15024
2018-04-16tools: Generate typespecs in doc buildJohn Högberg
2018-04-16erts: Keep track of which NIF a scheduler is executingJohn Högberg
This may be of interest in crash dumps and allows the upcoming allocation tagging feature to track allocations on a per-NIF basis. Note that this is only updated when user code calls a NIF; it's not altered when the emulator calls NIFs during code upgrades or tracing.
2018-04-16erts: Always keep a copy of driver names as an atomJohn Högberg
2018-04-16erts: Update esdp->current_port on immediate port callsJohn Högberg
This increases the accuracy of crash dumps and the upcoming allocation tagging feature.
2018-04-16Merge branch 'rickard/process_info/OTP-14966'Rickard Green
* rickard/process_info/OTP-14966: Fix deadlock in HiPE gc after receive
2018-04-16Merge branch 'bjorn/compiler/beam_validator'Björn Gustavsson
* bjorn/compiler/beam_validator: beam_validator: Remove repeated "this" beam_validator: Remove unnecessary inclusion of beam_disasm.hrl beam_validator: Strengthen validation of remaining GC instructions
2018-04-16Merge pull request #1780 from erlang/HansN-patch-1Hans Nilsson
Update SSH(6) documentation
2018-04-16Merge pull request #1776 from surik/patch-1Hans Nilsson
Fix typo in ssh key_cb type description
2018-04-16Fix deadlock in HiPE gc after receiveRickard Green
2018-04-13Merge branch 'rickard/auth-timeout/ERL-601/OTP-15009'Rickard Green
* rickard/auth-timeout/ERL-601/OTP-15009: Set infinity timeout for auth requests
2018-04-13Merge branch 'rickard/monotonic_time_1_fix/OTP-15008'Rickard Green
* rickard/monotonic_time_1_fix/OTP-15008: Teach erlang:monotonic_time/1 the perf_counter time unit
2018-04-13Merge branch 'rickard/process_info/OTP-14966'Rickard Green
* rickard/process_info/OTP-14966: New process_info() implementation using signals
2018-04-13Merge branch 'rickard/signals/OTP-14589'Rickard Green
* rickard/signals/OTP-14589: Fix VM probes compilation Conflicts: erts/emulator/beam/erl_message.c
2018-04-12Merge PR-1770 from sverker/float_to_list-tweak/OTP-15015Sverker Eriksson
Improve float_to_list(F, [{decimals,D}])
2018-04-12Merge branch 'lukas/erts/init_restart_flush_messages/OTP-15013'Lukas Larsson
* lukas/erts/init_restart_flush_messages/OTP-15013: erts: Flush messages before doing init restart
2018-04-12Merge branch 'lukas/erts/fix_openbsd_eof_poll/OTP-14346'Lukas Larsson
* lukas/erts/fix_openbsd_eof_poll/OTP-14346: erts: Break etp-processes/ports when all found erts: Don't use EV_DISPATCH on openbsd
2018-04-12New process_info() implementation using signalsRickard Green
2018-04-12Merge branch 'lukas/erl_docgen/add_github_contrib_link/OTP-14979'Lukas Larsson
* lukas/erl_docgen/add_github_contrib_link/OTP-14979: erl_docgen: Remove git dependency in github link script stdlib: Fix timer monotonic time link erl_docgen: Use name based anchors where possible erl_docgen: Change ghlink icon to pencil erl_docgen: Fix ghlinks to .xmlsrc erl_docgen: Add hover links for ghlink erl_docgen: Add ghlink step for all non-generated doc xml files Fix erlang:abs/2 type docs Tickets missed in 9033a41375f3a31a18eb0cba3ea OTP-14651: temp_alloc disabling OTP-14652: msacc bugs
2018-04-11Update SSH(6) documentationHansN-patch-1Hans Nilsson
Two drafts have now been RFCs. Only editorial changes in them from implementation point of view.
2018-04-11Fix VM probes compilationRickard Green
2018-04-11Merge branch 'rickard/signals/OTP-14589'Rickard Green
* rickard/signals/OTP-14589: Fix seq trace Fix bad assert
2018-04-11Add scripts/diffableBjörn Gustavsson
Run scripts/diffable without arguments to print a description and a few examples.
2018-04-11Merge pull request #1752 from lucafavatella/httpc-connection-closePéter Dimitrov
Teach httpc to honour server connection close
2018-04-11beam_validator: Remove repeated "this"Björn Gustavsson
2018-04-11beam_validator: Remove unnecessary inclusion of beam_disasm.hrlBjörn Gustavsson
2018-04-11beam_validator: Strengthen validation of remaining GC instructionsBjörn Gustavsson
1ee21858db7e strengenthed validatation of GC instructions, but forgot the following instructions: bs_start_match2/5 bs_get_binary2/7 bs_get_float2/7 bs_get_integer2/7 bs_get_utf8/5 bs_get_utf16/5 bs_get_utf32/5 bs_skip_utf8/4 bs_skip_utf16/4 bs_skip_utf32/4
2018-04-10erts: Workaround test t_float_to_string for windowsSverker Eriksson
2018-04-10Set infinity timeout for auth requestsRickard Green
2018-04-10Teach erlang:monotonic_time/1 the perf_counter time unitRickard Green
2018-04-10erl_docgen: Remove git dependency in github link scriptLukas Larsson
2018-04-10stdlib: Fix timer monotonic time linkLukas Larsson
2018-04-10erl_docgen: Use name based anchors where possibleLukas Larsson
We don't want to use generate-id as it varies across builds so it becomes impossible to link permanently to specific sections.
2018-04-10erl_docgen: Change ghlink icon to pencilLukas Larsson
2018-04-10erl_docgen: Fix ghlinks to .xmlsrcLukas Larsson
2018-04-10erl_docgen: Add hover links for ghlinkLukas Larsson
All functions, datatype and h3 headings have gotten a hover attribute that shows a link directly to the edit page on github for easy editing of documentation. The github link links to the maint branch. An early attempt was done to use the SHA of the current branch, but that did not work well as github can only take pull requests from branches.
2018-04-10Merge pull request #1751 from fhunleth/heart-timeoutLukas Larsson
Remove note about heart rebooting on NTP updates
2018-04-10kernel: Update note about heart rebooting on NTP updatesFrank Hunleth
The timestamp code in heart uses monotonic time so it is immune to NTP changes.
2018-04-10erts: Flush messages before doing init restartLukas Larsson
If messages are not flushed they would cause problems when the system is booting. For instance module load requests would be issued before the prim loader has been launched.
2018-04-09erl_docgen: Add ghlink step for all non-generated doc xml filesLukas Larsson
In order to get line numbers into the ghlink we have to add a post processing step for all xml files.
2018-04-09Fix erlang:abs/2 type docsLukas Larsson
2018-04-09Update primary bootstrapBjörn Gustavsson
2018-04-09Merge pull request #1777 from PragTob/fix-timer.tc-documentationLukas Larsson
Reflect actual timer:tc behaviour in documentation
2018-04-08Reflect actual timer:tc behaviour in documentationTobias Pfeiffer
It was switched to monotnic_time from timestamp 3 years ago in d927209aa36fe370eb4ecf0a081923b0b951458b
2018-04-06erts: Fix doc typo for enif_free_iovecSverker Eriksson
2018-04-06Fix typo in ssh key_cb type descriptionYury Gargay
`ssh_server_key_api` was missed instead`ssh_client_key_api` mentioned two times.
2018-04-06Merge pull request #1773 from bjorng/bjorn/compiler/beam_validator-receiveBjörn Gustavsson
Check that messages outside of the heap are not corrupted
2018-04-06Check that messages outside of the heap are not corruptedBjörn Gustavsson
Waiting messages for a process may be stored in a queue outside of any heap or heap fragment belonging to the process. This is an optimization added in a recent major release to avoid garbage collection messages again and again if there is a long message queue. Until such message has been matched and accepted by the remove_message/0 instruction, the message must not be included in the root set for a garbage collection, as that would corrupt the message. The loop_rec/2 instruction explicitly turns off garbage collection of the process as long messages are being matched. However, if the compiler were to put references to a message outside of the heap in an Y register (on the stack) and there happened to be a GC when the process had been scheduled out, the message would be corrupted and the runtime system would crash sooner or later. To ensure that doesn't happen, teach beam_validator to check for references on the stack to messages outside of the heap.
2018-04-06Merge pull request #1774 from bjorng/bjorn/erts/dump-literal-funsBjörn Gustavsson
Support dumping of external fun literals to a crash dump