aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc/src/erl.xml
AgeCommit message (Collapse)Author
2019-05-06Merge pull request #2219 from josevalim/jv-auto-host/OTP-15794Lukas Larsson
Add hostname to -remsh if none is given
2019-04-29Add hostname to -remsh if none is givenJosé Valim
The -name option already computes a default hostname if none is given. This PR adds the same behaviour to -remsh. Now we can run: erl -name foo -remsh bar erl -sname foo -remsh bar This simplifies deployment scripts as otherwise they have to compute the hostname by hand or start an Erlang VM instance only to do so.
2019-04-10Decentralized counters for ETS ordered_set with write_concurrencyKjell Winblad
Previously, all ETS tables used centralized counter variables to keep track of the number of items stored and the amount of memory consumed. These counters can cause scalability problems (especially on big NUMA systems). This commit adds an implementation of a decentralized counter and modifies the implementation of ETS so that ETS tables of type ordered_set with write_concurrency enabled use the decentralized counter. [Experiments][1] indicate that this change substantially improves the scalability of ETS ordered_set tables with write_concurrency enabled in scenarios with frequent `ets:insert/2` and `ets:delete/2` calls. The new counter is implemented in the module erts_flxctr (`erts_flxctr.h` and `erts_flxctr.c`). The module has the suffix flxctr as it contains the implementation of a flexible counter (i.e., counter instances can be configured to be either centralized or decentralized). Counters that are configured to be centralized are implemented with a single counter variable which is modified with atomic operations. Decentralized counters are spread over several cache lines (how many can be configured with the parameter `+dcg`). The scheduler threads are mapped to cache lines so that there is no single point of contention when decentralized counters are updated. The thread progress functionality of the Erlang VM is utilized to implement support for linearizable snapshots of decentralized counters. The snapshot functionality is used by the `ets:info/1` and `ets:info/2` functions. [1]: http://winsh.me/ets_catree_benchmark/flxctr_res.html
2018-11-26Use ssh as the default remote shellRichard Carlsson
2018-06-18Update copyright yearHenrik Nord
2018-06-04erts,stdlib: Improve docs about obsolete ets_limitSverker Eriksson
2018-04-20Fix seealso tags for +sbwt/+swtJohn Högberg
2018-03-26Add +sbwt/+swt analogues for dirty schedulersJohn Högberg
Sharing these settings for all schedulers can degrade performance, so it makes sense to be able to configure them separately. This also changes the default busy-wait time to "short" for both kinds of dirty schedulers.
2018-03-21Change default async thread count to 1John Högberg
All uses of async threads in the built-in drivers have been replaced with dirty IO, so it no longer makes sense to leave the default at 10.
2018-02-02Reword docs related to the runtime system modeXavier Noria
The existing wording may be interpreted as saying that embedded mode eager loads all modules. This revision makes clear embedded mode only disables module auto loading. Since I was on it, I have reordered a couple of places to describe interactive first, and then embedded. It feels natural to cover first the default and positive mode (auto loads), and then its negation.
2017-10-17Merge branch 'dgud/dot_erlang/OTP-14439'Dan Gudmundsson
* dgud/dot_erlang/OTP-14439: fixup! Do not load .erlang from current dir erlc: Do not load .erlang escript: Do not load .erlang dialyzer: Do not load .erlang reltool: Add no_dot_erlang bootfiles Enable usage of no_dot_erlang in bootstrap Do not load .erlang from current dir
2017-10-02fixup! Do not load .erlang from current dirDan Gudmundsson
2017-10-02erts: Update +IOt and msacc docsLukas Larsson
2017-10-02erts: Remove eager check ioLukas Larsson
It is not longer relevant when using the poll thread
2017-10-02erts: Move all I/O polling to a seperate threadLukas Larsson
2017-09-27Do not load .erlang from current dirDan Gudmundsson
It may be confusing that "hidden" .erlang is loaded from the current working directory. Use c:erlangrc([Dir1,..]) to search and load .erlang from other places than "$HOME/.erlang". Implies that c:erlangrc() needs to be documented.
2017-08-14erts: Cleanup erl and erlang docs after non-smp removalLukas Larsson
2017-05-24erts: Clarify ERL_CRASH_DUMP_SECONDS docsSverker Eriksson
especially default behavior without -heart, which is wait indefinitely for crash dump.
2017-05-23otp: Extend secure distribution docs warningsLukas Larsson
Warnings have been added to the relevant documentation about not using un-secure distributed nodes in exposed environments.
2017-05-16Let --enable-lock-counter build an additional emulatorBjörn Gustavsson
"./configure --enable-lock-counter" would modify the behavior of the default emulator (usually SMP). To make lock counting more accessible, change --enable-lock-counter to build an additional emulator in the same way as: (cd erts/emulator && make lcnt) (The next commit will make it easier to start the built lock-counter emulator.)
2017-05-04Update copyright yearRaimo Niskanen
2017-04-27Merge branch 'rickard/ds-stack-size'Rickard Green
OTP-14380 * rickard/ds-stack-size: Suggested stack size options for dirty schedulers
2017-04-21erts: Deprecate the non-smp emulatorsLukas Larsson
2017-04-11Suggested stack size options for dirty schedulersRickard Green
2017-02-14Fixed typos in ertsAndrew Dryga
2017-01-17Remove experimental disclaimer on dirty schedulersRickard Green
2016-12-15Merge branch 'egil/erts/handle-sigterm-nicely/OTP-14085' into maintBjörn-Egil Dahlberg
* egil/erts/handle-sigterm-nicely/OTP-14085: erts: Document SIGTERM handler erts: Add SIGTERM signal handler
2016-12-15erts: Document SIGTERM handlerBjörn-Egil Dahlberg
2016-11-22Merge branch 'sverker/erts/crash-dump-limit/OTP-14046' into maintSverker Eriksson
* sverker/erts/crash-dump-limit: erts: Add env variable ERL_CRASH_DUMP_BYTES erts: Add ErtsStrToSint64 erts: Refactor crash dumping with cbprintf erts: Add cbprintf for Callback Printing erts: Remove unused erl_crash_dump()
2016-11-22erts: Add env variable ERL_CRASH_DUMP_BYTESSverker Eriksson
to limit crash dump size
2016-10-28Document the -epmd_module switch in erlJosé Valim
2016-09-28Document the order of directories added with code:add_pathsa/1Siri Hansen
code:add_pathsa/1 reverts the list of directories when adding it at the beginning of the code path. The command line option '-pa' behaves in the same way. This is now documented.
2016-09-01doc: Correct errors introduced by Editorial changesHans Bolinder
Fix some older errors as well.
2016-07-13erts: Review of documentation changesLukas Larsson
2016-07-13erts: Editorial changesxsipewe
2016-06-17Minor reorganization of dirty NIF documentationRickard Green
2016-06-16Add documentation about dirty job typeRickard Green
2016-06-14erts: Fix doc xml errorsLukas Larsson
2016-05-27Merge branch 'rickard/rm-mqd-mixed/OTP-13366'Rickard Green
* rickard/rm-mqd-mixed/OTP-13366: Remove the 'message_queue_data' option 'mixed'
2016-05-25Add -start_epmd command line optionMagnus Henoch
Add a command line option that lets you disable automatic starting of epmd when starting a distributed node. This differs from the undocumented setting -no_epmd, in that it does not affect the starting of an erl_epmd process within erl_distribution: the newly started node will expect an epmd instance to have been started previously.
2016-05-25Remove the 'message_queue_data' option 'mixed'Rickard Green
2016-05-10erts: Implement max_heap_size process flagLukas Larsson
The max_heap_size process flag can be used to limit the growth of a process heap by killing it before it becomes too large to handle. It is possible to set the maximum using the `erl +hmax` option, `system_flag(max_heap_size, ...)`, `spawn_opt(Fun, [{max_heap_size, ...}])` and `process_flag(max_heap_size, ...)`. It is possible to configure the behaviour of the process when the maximum heap size is reached. The process may be sent an untrappable exit signal with reason kill and/or send an error_logger message with details on the process state. A new trace event called gc_max_heap_size is also triggered for the garbage_collection trace flag when the heap grows larger than the configured size. If kill and error_logger are disabled, it is still possible to see that the maximum has been reached by doing garbage collection tracing on the process. The heap size is defined as the sum of the heap memory that the process is currently using. This includes all generational heaps, the stack, any messages that are considered to be part of the heap and any extra memory the garbage collector may need during collection. In the current implementation this means that when a process is set using on_heap message queue data mode, the messages that are in the internal message queue are counted towards this value. For off_heap, only matched messages count towards the size of the heap. For mixed, it depends on race conditions within the VM whether a message is part of the heap or not. Below is an example run of the new behaviour: Eshell V8.0 (abort with ^G) 1> f(P),P = spawn_opt(fun() -> receive ok -> ok end end, [{max_heap_size, 512}]). <0.60.0> 2> erlang:trace(P, true, [garbage_collection, procs]). 1 3> [P ! lists:duplicate(M,M) || M <- lists:seq(1,15)],ok. ok 4> =ERROR REPORT==== 26-Apr-2016::16:25:10 === Process: <0.60.0> Context: maximum heap size reached Max heap size: 512 Total heap size: 723 Kill: true Error Logger: true GC Info: [{old_heap_block_size,0}, {heap_block_size,609}, {mbuf_size,145}, {recent_size,0}, {stack_size,9}, {old_heap_size,0}, {heap_size,211}, {bin_vheap_size,0}, {bin_vheap_block_size,46422}, {bin_old_vheap_size,0}, {bin_old_vheap_block_size,46422}] flush(). Shell got {trace,<0.60.0>,gc_start, [{old_heap_block_size,0}, {heap_block_size,233}, {mbuf_size,145}, {recent_size,0}, {stack_size,9}, {old_heap_size,0}, {heap_size,211}, {bin_vheap_size,0}, {bin_vheap_block_size,46422}, {bin_old_vheap_size,0}, {bin_old_vheap_block_size,46422}]} Shell got {trace,<0.60.0>,gc_max_heap_size, [{old_heap_block_size,0}, {heap_block_size,609}, {mbuf_size,145}, {recent_size,0}, {stack_size,9}, {old_heap_size,0}, {heap_size,211}, {bin_vheap_size,0}, {bin_vheap_block_size,46422}, {bin_old_vheap_size,0}, {bin_old_vheap_block_size,46422}]} Shell got {trace,<0.60.0>,exit,killed}
2016-04-26erts: Rename erl flag +xmqd to +hmqdLukas Larsson
Flags that control the heap should all fall under the +h flag
2016-03-15update copyright-yearHenrik Nord
2016-03-01Merge branch 'maint'Ingela Anderton Andin
2016-02-10epmd: support IPv6 node registrationMichael Santos
Allow IPv6 nodes to register with and query epmd. On systems with IPv6 support: * epmd listens on both the IPv4 and IPv6 ANY or loopback sockets * the epmd cli client connects to epmd over the IPv6 loopback * distributed nodes started with "-proto_dist inet6_tcp" will register with epmd over IPv6 To work on IPv6 capable systems that have IPv6 support disabled, epmd ignores errors opening the socket if the protocol is not supported. Similarly, the epmd client will fall back to IPv4 if the IPv6 socket is not available. Update the minimum supported version of Windows to Windows Vista to support IPv6.
2016-01-22Merge branch 'maint'Siri Hansen
2016-01-14Add documentation of '-path' flag to 'erl'Siri Hansen
This flag replaces the path specified in the boot script. It has always existed, but was earlier only documented in SASL (script).
2015-12-08Replace off_heap_message_queue option with message_queue_data optionRickard Green
The message_queue_data option can have the values - off_heap - on_heap - mixed
2015-11-12Merge branch 'rickard/ohmq/OTP-13047'Rickard Green
* rickard/ohmq/OTP-13047: Fragmented young heap generation and off_heap_message_queue option Refactor GC Introduce literal tag Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/erl_gc.c