aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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-08Merge branch 'pan/cerl-gdb-emacs/OTP-8882' into devPatrik Nyblom
* pan/cerl-gdb-emacs/OTP-8882: Incorporate Michael Santos patch for cerl and gdb via emacs
2010-10-08Merge branch 'rickard/halfword-bug' into devRickard Green
* rickard/halfword-bug: Fix newly introduced halfword emulator bugs
2010-10-08core_lint: Fix the err_desc() type specBjörn Gustavsson
Silence the Dialyzer warning introduced in commit 7b283aa9507b45f2cd403b061ad92ab059fb71b5.
2010-10-07Merge branch 'maint-r14' into devPatrik Nyblom
Conflicts: erts/vsn.mk
2010-10-07Update primary bootstrapBjörn Gustavsson
2010-10-07Incorporate Michael Santos patch for cerl and gdb via emacsPatrik Nyblom
Michael Santos supplied a very nice patch that did set the annotation level correctly for gdb when run from cerl in emacs. The patch adds --annotate=3 to the gdb command line, which makes emacs parse the gdb output correctly, making the right source code be loaded in the emacs buffer. While integrating it, I removed my faulty code trying to do the same with hacky elisp commands. Michaels way is the right way to do it. Thanks!
2010-10-07Merge branch 'bjorn/compiler-bin-generators/OTP-8864' into devBjörn Gustavsson
* bjorn/compiler-bin-generators/OTP-8864: core_lint: Enforce that tail segments only occur at the end Don't generate multiple tail segments in binary matching Factor out some of the code for binary generators Add tests for tail segments in binary generators
2010-10-07core_lint: Enforce that tail segments only occur at the endBjörn Gustavsson
2010-10-07Merge branch 'bjorn/compiler/fix-zero-segment-bug/OTP-8865' into devBjörn Gustavsson
* bjorn/compiler/fix-zero-segment-bug/OTP-8865: Fix compiler crash when constructing zero-size binary segments
2010-10-07Fix newly introduced halfword emulator bugsRickard Green
2010-10-07Merge branch 'bjorn/filelib-document-charset/OTP-8879' into devBjörn Gustavsson
* bjorn/filelib-document-charset/OTP-8879: filelib: Document the character set syntax in wildcards
2010-10-06Merge branch 'ks/fix-dialyzer_plt-spec' into devBjörn Gustavsson
* ks/fix-dialyzer_plt-spec: Dialyzer: Fix erroneous type and use the same definition in two places
2010-10-06Merge branch 'ks/ets-update-counter' into devBjörn Gustavsson
* ks/ets-update-counter: Fix type of ets:update_counter/3 to correspond with the documentation
2010-10-06Merge branch 'ks/syntax_tools-types' into devBjörn Gustavsson
* ks/syntax_tools-types: syntax_tools: Add types to record definitions
2010-10-06Merge branch 'ks/export-types' into devBjörn Gustavsson
* ks/export-types: Export opaque types so as to be used by other modules
2010-10-05Merge branch 'maint-r13' into devKenneth Lundin
Conflicts: lib/asn1/doc/src/notes.xml lib/asn1/test/asn1_SUITE.erl.src lib/asn1/test/asn1_SUITE_data/extensionAdditionGroup.erl lib/asn1/test/test_undecoded_rest.erl lib/asn1/vsn.mk
2010-10-05syntax_tools: Add types to record definitionsKostis Sagonas
2010-10-05filelib: Document the character set syntax in wildcardsBjörn Gustavsson
2010-10-05Prepare releaseErlang/OTP
2010-10-05Merge branch 'pan/win2003-crash/OTP-8876' into maint-r14Erlang/OTP
* pan/win2003-crash/OTP-8876: Teach read_topology not to crash on W2K3
2010-10-04Merge branch 'ks/stdlib-spec-fixes' into devBjörn Gustavsson
* ks/stdlib-spec-fixes: Correct erroneous specs; strengthen some others
2010-10-04Merge branch 'rt/solaris-pty-handling-fixes' into devBjörn Gustavsson
* rt/solaris-pty-handling-fixes: Add corrected support for Solaris PTYs to run_erl Fix a typo that leads to syntax errors with DEBUG defined in run_erl OTP-8878
2010-10-04Merge branch 'mp/fix-hipe-write' into devBjörn Gustavsson
* mp/fix-hipe-write: fix 64-bit writes to 32-bit struct field in HiPE runtime OTP-8877
2010-10-04Merge branch 'ta/eliminate-warning' into devBjörn Gustavsson
* ta/eliminate-warning: emd2exml: Do not auto-import error/2
2010-10-04Dialyzer: Fix erroneous type and use the same definition in two placesKostis Sagonas
2010-10-04Prepare releaseErlang/OTP
2010-10-04Merge branch 'kenneth/asn1/enc_extaddgrp/OTP-8866' into maint-r13Erlang/OTP
* kenneth/asn1/enc_extaddgrp/OTP-8866: Add additional test to cover this correction correct the encoding of ExtensionAdditionGroup temp Add support for ExtensionAdditionGroup notation in nested types as well
2010-10-04Add additional test to cover this correctionKenneth Lundin
2010-10-02Fix type of ets:update_counter/3 to correspond with the documentationKostis Sagonas
2010-10-01Teach read_topology not to crash on W2K3Patrik Nyblom
2010-10-01emulator Makefile: Add missing dependencyBjörn Gustavsson
Make sure that an update to erts/emulator/tools/make_tables will force all generated files to be re-generated.
2010-10-01Merge branch 'bjorn/halfword-emulator' into devBjörn Gustavsson
* bjorn/halfword-emulator: Fix a bug in the ERTS_BIF_PREP_TRAPx() macros ts_install: Identify the halfword emulator
2010-10-01Merge branch 'maint-r14' into devIngela Anderton Andin
Conflicts: lib/public_key/src/pubkey_cert.erl
2010-09-30Fix a bug in the ERTS_BIF_PREP_TRAPx() macrosBjörn Gustavsson
It seems to work (at least on a little-endian architecture) by sheer luck.
2010-09-30ts_install: Identify the halfword emulatorBjörn Gustavsson
2010-09-30fix 64-bit writes to 32-bit struct field in HiPE runtimeMikael Pettersson
In the HiPE part of the runtime system's Process struct there is a state field which is 32 bits wide even on 64-bit machines. There is a single instruction in the HiPE AMD64 runtime where this field is incorrectly written with a 64-bit store. Luckily the extraneous 32 bits are written as zeros to 4 bytes of tail-padding at the end of the struct, so nothing should have broken because of this. The same bug exists in the HiPE PowerPC64 runtime (in development), but on the big-endian PPC64 the effect is to write the actual value to the tail-padding and zero to the struct field, which potentially breaks TRAPs from BIFs (depending on BIF arities and how many parameter registers the runtime has been configured to use). Thanks to Paul Guyot for noticing the oversized write on AMD64.
2010-09-30Merge branch 'ks/dialyzer-fixes' into devBjörn Gustavsson
* ks/dialyzer-fixes: Fix two errors in dialyzer
2010-09-30Merge branch 'ks/hipe-cleanups' into devBjörn Gustavsson
* ks/hipe-cleanups: Cleanup and small fixes in hipe files
2010-09-30Merge branch 'mh/dollar-font-lock' into devBjörn Gustavsson
* mh/dollar-font-lock: Emacs erlang-mode: fix syntax highlighting of $ in two cases
2010-09-30Emacs erlang-mode: fix syntax highlighting of $ in two casesMagnus Henoch
A string whose last character is a dollar sign used to make the syntax highlighter believe that the string never ends, breaking highlighting of following code: -vsn("$Revision: 42 $"). And the double quote as a character constant with a (superfluous) backslash used to make the syntax highlighter believe that a new string started: foo() -> $\". This change fixes both problems by adding two regexps to font-lock-syntactic-keywords in erlang-font-lock-init. One case that is still broken is when a multi-line string ends with a dollar sign: bar() -> "This multi-line string ends with a $". baz() -> this_gets_incorrectly_highlighted.
2010-09-29Add corrected support for Solaris PTYs to run_erlRyan Tilder
Two related but slightly separate issues: run_erl doesn't support Solaris's /dev/ptmx device and run_erl didn't load the necessary STREAMS modules so that to_erl can provide terminal echo of keyboard input. This patch adds ifdef'd support for Solaris and derivatives to open /dev/ptmx directly since adding the C99 defines to CFLAGS breaks all kinds of other things in the build. It also adds ifdef'd ioctl calls to load the necessary STREAMS modules to permit termios to work.
2010-09-29Fix a typo that leads to syntax errors with DEBUG defined in run_erlRyan Tilder
While attempting to debug odd terminal echo issues on Solaris, I noticed that run_erl.c will fail to compile due to a typo causing a syntax error.
2010-09-29Prepare releaseErlang/OTP
2010-09-29Merge branch 'ia/ssl-and-public_key/verify_fun_peer_awarness/OTP-8873' into ↵Erlang/OTP
maint-r14 * ia/ssl-and-public_key/verify_fun_peer_awarness/OTP-8873: Peer awarness
2010-09-29Merge branch 'ia/public_key/basic_constraints/OTP-8867' into maint-r14Erlang/OTP
* ia/public_key/basic_constraints/OTP-8867: Better handling of v1 and v2 certificates.
2010-09-29Merge branch 'ia/ssl-and-public_key/backwards-compatibility/OTP-8858' into ↵Erlang/OTP
maint-r14 * ia/ssl-and-public_key/backwards-compatibility/OTP-8858: Backwards compatibility
2010-09-29Peer awarnessIngela Anderton Andin
Changed the verify fun so that it differentiate between the peer certificate and CA certificates by using valid_peer or valid as the second argument to the verify fun. It may not always be trivial or even possible to know when the peer certificate is reached otherwise.
2010-09-28Better handling of v1 and v2 certificates.Ingela Anderton Andin
V1 and v2 certificates does not have any extensions so then validate_extensions should just accept that there are none and not end up in missing_basic_constraints clause.
2010-09-27Merge branch 'ia/public_key/basic_constraints/OTP-8867' into devIngela Anderton Andin
* ia/public_key/basic_constraints/OTP-8867: Better handling of v1 and v2 certificates.