Age | Commit message (Collapse) | Author |
|
* rickard/thr-spec-inet-buf/OTP-8916:
Remove tight restrictions on some options
Thread specific inet driver buffer stack
|
|
|
|
Remove tight restrictions on the high_watermark, low_watermark, and
buffer options.
|
|
The inet driver internal buffer stack implementation
has been rewritten in order to reduce lock contention.
|
|
* rickard/cpu-groups/OTP-8861:
Generalize reader groups
Move cpu topology functionality into erl_cpu_topology.[ch]
Do not use more reader groups for schedulers than schedulers
Conflicts:
erts/emulator/beam/erl_init.c
|
|
Reader groups have been generalized to cpu groups which can be
used for implementing reader groups, but also for implementing
other functionality in the future.
|
|
|
|
When the runtime system had fewer schedulers than logical processors,
the system could get an unnecessarily large amount reader groups.
|
|
* rickard/sys_schedule_debug:
Verify that no outstanding I/O exist when checking for I/O in debug build
|
|
|
|
* pg/freebsd-cpu-affinity-and-topology:
Add support for CPU affinity & topology detection on FreeBSD 8
OTP-8939
|
|
* pg/fix-system_info-cpu_topology-segfault:
Fix crash with erlang:system_info({cpu_topology,junk})
OTP-8914
|
|
|
|
* rickard/sched-misc/OTP-8932:
Fix erts_schedule_misc_op() so it can be called from arbitrary threads
|
|
* rickard/halfword-fix/OTP-8910:
Fix ERL_DRV_INT and ERL_DRV_UINT in halfword emulator
|
|
* rickard/dist/OTP-8901:
Be less eager to set dist entry in busy state
|
|
* rickard/tsd-get/OTP-8889:
Fix erl_drv_tsd_get() and enif_tsd_get()
|
|
* rickard/configure-help/OTP-8859:
Cleanup configure help texts
Conflicts:
erts/aclocal.m4
|
|
* rickard/pre-pentium4-compat/OTP-8847:
Allow usage of libatomic_ops when other compilers than gcc are used
Add pre pentium 4 compatibilty configure test
Fix --enable-ethread-pre-pentium4-compatibility
|
|
* dgud/erts/windows-vs10-express:
Fix manifest files
|
|
It seems windows have updated manifest files in VS2010 which
caused the erlang programs to contain duplicate requestedExecutionLevel
entries, which is not allowed.
This patch removes the microsoft entry, before adding our own which
is known to work with XP and Vista.
|
|
* raimo/inet-getifaddrs/OTP-8926:
Write documentation
Delete decommented code
Add testcase
Implement inet:getifaddrs/0 on Windows
Implement basic inet:getifaddrs/0
Fix building error of SCTP in FreeBSD 7.1 and later
|
|
Tracing to port could cause an emulator crash when unloading the
trace driver.
|
|
* sverker/doc-fixes/OTP-8880:
Documentation update to ETS and drivers
|
|
|
|
|
|
|
|
This patch fixes building error of SCTP in FreeBSD 7.1 and later.
See
http://www.erlang.org/cgi-bin/ezmlm-cgi?2:mss:1257:200904:hppnfialjjdlgecdiehe
for the details.
R13A patch for solving a compilation error when building
erts/emulator/drivers/common/inet_drv.c
by Kenji Rikitake 12-APR-2009
Symptom solved by this patch:
When building R13A in FreeBSD 7.1-RELEASE,
the compiler flag
HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_SACKDELAY
is NOT enabled.
Some code in
erts/emulator/drivers/common/inet_drv.c
incorrectly assumes
HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_SACKDELAY
is always true when
HAVE_STRUCT_SCTP_PADDRPARAMS_SPP_FLAGS
is true in config.h.
This assumption causes a compilation error.
|
|
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.
|
|
* sf/erts_de_busy_limit:
Add flag-based setting for the distribution buffer busy limit
|
|
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.
|
|
|
|
|
|
|
|
* maint-r14:
Prepare release
Fix that the documentation top index generator can handle an Ericsson internal application group
Teach -init_debug to print info about on_load handlers begin run
Fix hang in on_load handlers in embedded mode
Conflicts:
erts/vsn.mk
lib/kernel/vsn.mk
|
|
|
|
|
|
In embedded mode, all on_load handlers will be called after
loading all modules but before starting any servers. Therefore,
if an on_load handler calls any function in the code module that
calls the code server (such as code:priv_dir/1), there will be a
deadlock because the code server has not yet been started.
Fix this problem by invoking the on_load handlers after
having started most servers in the kernel application.
|
|
* ms/security-fixes:
erlc: remove unused variable
typer: prevent buffer overflows
run_test: prevent buffer overflow
heart: prevent buffer overflow
escript: prevent buffer overflows
erlexec: prevent buffer overflows
erlc: prevent buffer overflows
dialyzer: prevent buffer overflows
OTP-8892
|
|
With newer releases erts/emulator/internal_doc/erl_ext_dist.txt just
forwards the reader to the ERTS User's Guide. Adjust the comment in
epmd_srv.c to point to this location too.
Signed-off-by: Ralf Doering <[email protected]>
|
|
A bug in erl_drv_tsd_get() and enif_tsd_get() could cause an
emulator crash. These functions are currently not used in OTP.
That is, the crash only occur on systems with user implemented
NIF libraries or drivers that use one of these functions.
|
|
* pan/cerl-gdb-emacs/OTP-8882:
Incorporate Michael Santos patch for cerl and gdb via emacs
|
|
* rickard/halfword-bug:
Fix newly introduced halfword emulator bugs
|
|
Conflicts:
erts/vsn.mk
|
|
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!
|
|
|
|
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.
|
|
|
|
* 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
|
|
* mp/fix-hipe-write:
fix 64-bit writes to 32-bit struct field in HiPE runtime
OTP-8877
|