aboutsummaryrefslogtreecommitdiffstats
path: root/erts/doc
AgeCommit message (Collapse)Author
2010-11-09Merge branch 'sverker/doc-fixes/OTP-8880' into devSverker Eriksson
* sverker/doc-fixes/OTP-8880: Documentation update to ETS and drivers
2010-11-02Be less eager to set dist entry in busy stateRickard Green
The runtime system is now less eager to suspend processes sending messages over the distribution. The default value of the distribution buffer busy limit has also been increased from 128 KB to 1 MB. This in order to improve throughput.
2010-11-02Merge branch 'sf/erts_de_busy_limit' into devRickard Green
* sf/erts_de_busy_limit: Add flag-based setting for the distribution buffer busy limit
2010-11-02Add flag-based setting for the distribution buffer busy limitScott Lystig Fritchie
Id: OTP-8912 This patch creates a new family of flags with the "+z" prefix. It further creates a new configuration option called "dbbl" (which is the first letter of the name dist_buf_busy_limit). Example usage of this flag would be "+zdbbl 1048576". This patch creates an adjustable buffer limit for the amount of data that may be buffered by the erlang distribution code (in dist.c specifically). Before this patch, this hard-coded constant was used: #define ERTS_DE_BUSY_LIMIT (128*1024) When large binaries are transmitted between nodes (or simply a lot of medium-sized binaries), it is very easy to hit the old 128KB limit. Processes that use the erlang:system_monitor() BIF to monitor system events can be spammed by {monitor, busy_dist_port, ...} message tuples at rates of tens to even hundreds of messages/second. A larger buffer limit will allow processes to buffer more outgoing messages over the distribution. When the buffer limit has been reached, sending processes will be suspended until the buffer size has shrunk. The buffer limit is per distribution channel. A higher limit will give lower latency and higher throughput at the expense of higher memory usage. A variation of this patch has been in commercial production use in at least two companies that the author is aware of. Larger buffer values can reduce the number of {monitor, busy_dist_port, ...} system messages drastically, lower overall messaging latencies, and prevent false timeouts and 'nodedown' messages in extremely busy Mnesia systems. Test suite: there are two tests: a. In erlexec_SUITE.erl to test basic set & get of the value b. In distribution_SUITE.erl, to verify that setting +zdbbl very low will actually change behavior.
2010-10-21Prepare releaseErlang/OTP
2010-10-06Documentation update to ETS and driversSverker Eriksson
State more clearly that ETS functions will throw badarg if calling process lacks access right. And that driver stop callback should free memory allocted by start.
2010-10-05Prepare releaseErlang/OTP
2010-09-13Prepare releaseOTP_R14BErlang/OTP
2010-09-13Merge branch 'pan/epmd-vulnerabilities/OTP-8780' into devPatrik Nyblom
* pan/epmd-vulnerabilities/OTP-8780: Teach testcases to survive TIME_WAIT overload Update erl_interface doc and testsuite for epmd changes Restore null termination of input buffer Teach testcase epmd_SUITE:too_large to accept econnaborted Teach epmd_cli.c to not respond 'Killed' when killing denied Calculate minimal packet size for ALIVE2 requests correctly Document epmd and it's options properly and fixup help text Fix anomalies in epmd not yet reported as security issues Remove two buffer overflow vulnerabilities in EPMD Remove all support for ancient EPMD protocol Remove very old protocol from EPMD Conflicts: lib/erl_interface/src/epmd/epmd_port.c
2010-09-10Correct erlang.xml regarding autoimportsPatrik Nyblom
2010-09-08Merge branch 'cg/docs-fixes' into devBjörn Gustavsson
* cg/docs-fixes: Linkify applications listed under "See Also" Fix minor typos in the documentation
2010-09-07Correct typos in erlang.xmlTuncer Ayaz
semanticts -> semantics where -> were ddl -> dll NIF's -> NIFs OS-dependant -> OS-dependent
2010-09-06Fix minor typos in the documentationCristian Greco
2010-09-06Remove warning about experimental status of NIFs from erlang.xmlPatrik Nyblom
Also made the SEEALSO link at the bottom of erl_nif.xml more "erlangish".
2010-09-04Add scheduler wakup threshold as command line argumentRickard Green
The scheduler wakeup threshold is now possible to adjust at system boot. For more information see the `+swt' command line argument of `erl'.
2010-09-02Add erlang:system_info(build_type)Rickard Green
Added erlang:system_info(build_type) which makes it easier to chose drivers, NIF libraries, etc based on build type of the runtime system.
2010-08-31Document epmd and it's options properly and fixup help textPatrik Nyblom
2010-08-30Fix variable name in spawn/4 docTuncer Ayaz
ArgumentList -> Args
2010-08-30Merge branch 'sverker/NIF-64bit-integers/OTP-8746' into devPatrik Nyblom
* sverker/NIF-64bit-integers/OTP-8746: Make windows 64bit types be declared more consistently Teach Windows about the int64 functions NIF doc official support note NIF 64-bit integer support
2010-08-30Merge branch 'rickard/cpu-info/OTP-8765' into devRickard Green
* rickard/cpu-info/OTP-8765: Initialize environment functionality after thread lib Fix faulty assertions Implement automatic detection of CPU topology on Windows Make it possible to reread and update detected CPU information
2010-08-30Implement automatic detection of CPU topology on WindowsRickard Green
The CPU topology is now automatically detected on Windows systems with less than 33 logical processors. The runtime system will now, also on Windows, by default bind schedulers to logical processors using the 'default_bind' bind type if the amount of schedulers is at least equal to the amount of logical processors configured, binding of schedulers is supported, and a CPU topology is available at startup.
2010-08-20Merge branch 'bjorn/remove-elib_malloc/OTP-8764' into devBjörn Gustavsson
* bjorn/remove-elib_malloc/OTP-8764: erts: Remove broken elib_malloc erts: Remove the unused mem_drv driver erts: Remove stray pre-ISO-C compatibility macros erts: Remove unused decl.h
2010-08-19Merge branch 'hb/type_reference/OTP-8733' into devHans Bolinder
* hb/type_reference/OTP-8733: reference() substituted for ref() in docs
2010-08-18Make it possible to reread and update detected CPU informationRickard Green
Calling erlang:system_info/1 with the new argument 'update_cpu_info' will make the runtime system reread and update the internally stored CPU information. For more information see the documentation of erlang:system_info(update_cpu_info).
2010-08-17erts: Remove broken elib_mallocBjörn Gustavsson
elib_malloc is an alternate memory allocator that is no longer possible to build.
2010-08-10Merge branch 'rickard/ethread-rewrite/OTP-8544' into devRickard Green
* rickard/ethread-rewrite/OTP-8544: Rewrite ethread library
2010-08-10Rewrite ethread libraryRickard Green
Large parts of the ethread library have been rewritten. The ethread library is an Erlang runtime system internal, portable thread library used by the runtime system itself. Most notable improvement is a reader optimized rwlock implementation which dramatically improve the performance of read-lock/read-unlock operations on multi processor systems by avoiding ping-ponging of the rwlock cache lines. The reader optimized rwlock implementation is used by miscellaneous rwlocks in the runtime system that are known to be read-locked frequently, and can be enabled on ETS tables by passing the `{read_concurrency, true}' option upon table creation. See the documentation of `ets:new/2' for more information. The ethread library can now also use the libatomic_ops library for atomic memory accesses. This makes it possible for the Erlang runtime system to utilize optimized atomic operations on more platforms than before. Use the `--with-libatomic_ops=PATH' configure command line argument when specifying where the libatomic_ops installation is located. The libatomic_ops library can be downloaded from: http://www.hpl.hp.com/research/linux/atomic_ops/ The changed API of the ethread library has also caused modifications in the Erlang runtime system. Preparations for the to come "delayed deallocation" feature has also been done since it depends on the ethread library. Note: When building for x86, the ethread library will now use instructions that first appeared on the pentium 4 processor. If you want the runtime system to be compatible with older processors (back to 486) you need to pass the `--enable-ethread-pre-pentium4-compatibility' configure command line argument when configuring the system.
2010-07-23NIF doc official support noteSverker Eriksson
2010-07-23NIF 64-bit integer supportSverker Eriksson
2010-07-08reference() substituted for ref() in docsHans Bolinder
2010-07-06Documentation clarifications for now/0 and timer:tc/3Raimo Niskanen
2010-06-15The R14A releaseOTP_R14AErlang/OTP
Final merge of all unexpected differences from dev to release.
2010-06-14OTP-8710 Fix emulator crash caused by setting CPU topologyRickard Green
A user defined CPU topology set via a call to <seealso marker="erlang#system_flag_cpu_topology">erlang:system_flag(cpu_topology, CPUTopology)</seealso> was not properly verified, and could in worst case cause an emulator crash. The emulator crash could only occur when a user defined CPU topology already existed and was redefined.
2010-06-11Update release notesBjörn Gustavsson
2010-06-09Merge branch 'pan/otp_8669_doc_autoimported' into devErlang/OTP
* pan/otp_8669_doc_autoimported: Change documentation for erlang:min/2,max/2 and port_command/3 to OTP-8669 erlang:min, erlang:max and erlang:port_command/3 autoimported The recently added BIFs erlang:min/2, erlang:max/2 and erlang:port_command/3 are now auto-imported (as they were originally intended to be). Due to the recent compiler change (OTP-8579), the only impact on old code defining it's own min/2, max/2 or port_command/3 functions will be a warning, the local functions will still be used. The warning can be removed by using -compile({no_auto_import,[min/2,max/2,port_command/3]}). in the source file.
2010-06-08Merge branch 'bg/nif_error' into devErlang/OTP
* commit 'bg/nif_error': crypto: Add type specs for all documented functions crypto: Use erlang:nif_error/1 to squelch false Dialyzer warnings Add erlang:nif_error/1,2
2010-06-04Change documentation for erlang:min/2,max/2 and port_command/3 toPatrik Nyblom
reflect auto-import
2010-06-03Add documentation for call time breakpointsBjörn-Egil Dahlberg
Documented call time breakpoints in - erlang:trace_pattern/3 - erlang:trace_info/2
2010-06-03OTP-8666 Enable automatic binding of schedulers when possibleRickard Green
The runtime system will by default bind schedulers to logical processors using the default_bind bind type if the amount of schedulers are at least equal to the amount of logical processors configured, binding of schedulers is supported, and a CPU topology is available at startup. NOTE: If the Erlang runtime system is the only operating system process that binds threads to logical processors, this improves the performance of the runtime system. However, if other operating system processes (as for example another Erlang runtime system) also bind threads to logical processors, there might be a performance penalty instead. If this is the case you, are are advised to unbind the schedulers using the <seealso marker="erl#+sbt">+sbtu</seealso> command line argument, or by invoking <seealso marker="erlang#system_flag_scheduler_bind_type">erlang:system_flag(schedule r_bind_type, unbound)</seealso>.
2010-06-03OTP-8555 Send message from NIFSverker Eriksson
New NIF features: Send messages from a NIF, or from thread created by NIF, to any local process (enif_send) Store terms between NIF calls (enif_alloc_env, enif_make_copy) Create binary terms with user defined memory management (enif_make_resource_binary)
2010-06-03Merge branch 'pan/otp_8086_ms_grammar' into devErlang/OTP
* pan/otp_8086_ms_grammar: Add match_specification grammar documentation specifically for ets OTP-8086 Grammar for match specification describes tracing only The grammar for match specifications in ERTS users guide only described the tracing dialect of match specifications. An informal grammar for the ETS dialect is added.
2010-06-02Merge branch 'jv/autoimport-binary_to_term_2' into devErlang/OTP
* jv/autoimport-binary_to_term_2: Change binary_to_term/2 to be auto-imported OTP-8671 jv/autoimport-binary_to_term_2 Now, binary_to_term/2 is auto-imported. This will cause a compile warning if and only if a module has got a local function with that name.
2010-06-02Add match_specification grammar documentation specifically for etsPatrik Nyblom
2010-05-31Add erlang:nif_error/1,2Björn Gustavsson
A stub function that is supposed to be replaced by a NIF usually calls erlang:error/1 to cause an exception if the NIF library is not loaded. For example: foo() -> erlang:error(nif_not_loaded). The problem is that although erlang:error/1 will normally never be called, Dialyzer will think that any call to the function will fail and thus generate false warnings. Adding a spec for the function will not help because Dialyzer will not believe the spec. Add erlang:nif_error/1,2 that work exactly like erlang:error/1,2. Define the return types for both BIFs to be t_any(). erlang:nif_error is used like this: -spec foo() -> binary(). foo() -> erlang:nif_error(nif_not_loaded). (The -spec is optional but highly recommended, since Dialyzer otherwise has no chance to figure out the types.)
2010-05-24erl_nif: add make_atom_len, make_existing_atom_len and make_string_lenTuncer Ayaz
Add new NIF API functions - enif_make_atom_len - enif_make_existing_atom_len - enif_make_string_len These are basically the same as enif_make_atom, enif_make_existing_atom and enif_make_string except that the new functions require a length parameter instead of a null-terminated C-string. Signed-off-by: Tuncer Ayaz <[email protected]>
2010-05-24erl_nif: add enif_get_atom_length and enif_get_list_lengthTuncer Ayaz
Add new NIF API functions - enif_get_atom_length - enif_get_list_length Signed-off-by: Tuncer Ayaz <[email protected]>
2010-05-24erl_nif: add enif_is_list and enif_is_tupleTuncer Ayaz
Add new NIF API functions - enif_is_list - enif_is_tuple Signed-off-by: Tuncer Ayaz <[email protected]>
2010-05-24Change binary_to_term/2 to be auto-importedJayson Vantuyl
While binary_to_term/2 was added in R13B04, it wasn't auto-imported. This conformed to longstanding policy of not changing auto-imports between major versions. This patch contains changes to auto-import binary_to_term/2 to coincide with the release of R14.
2010-05-21Correct typos in EEP-0031 implementationTuncer Ayaz
Signed-off-by: Tuncer Ayaz <[email protected]>
2010-05-17Add documentation for binary modulePatrik Nyblom
Correct behaviour of copy/2 witn 0 copies.