aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2011-05-18Fix driver_async_cancel()Rickard Green
2011-05-13Merge branch 'rickard/barriers/OTP-9281' into devRickard Green
* rickard/barriers/OTP-9281: Silence warnings Fix build with hipe on amd64 Reduce number of atomic ops Use 32-bit atomic for port snapshot Remove pointless erts_ports_alive variable Ensure quick break Ensure that all rehashing information are seen when done Ensure that stack updates are seen when stack is released Add needed barriers for write_concurrency tables Homogenize memory barriers on atomics
2011-05-13Silence warningsRickard Green
2011-05-13Fix build with hipe on amd64Rickard Green
2011-05-13Reduce number of atomic opsRickard Green
Counters for active, and used schedulers have been coalesced in order to reduce the amount of atomic operations needed. Some currently not strictly necessary barriers have also been added in order to be future proof.
2011-05-13Use 32-bit atomic for port snapshotRickard Green
2011-05-13Remove pointless erts_ports_alive variableRickard Green
2011-05-13Ensure quick breakRickard Green
Make sure that we don't have to wait in poll before break handling is done.
2011-05-13Ensure that all rehashing information are seen when doneRickard Green
This is not a bugfix. The change is done in order to avoid a future bug.
2011-05-13Ensure that stack updates are seen when stack is releasedRickard Green
Ets tables using ordered_set could potentially get into an internally inconsistent state.
2011-05-13Merge branch 'bjorn/fix-warnings/OTP-9250' into devBjörn Gustavsson
* bjorn/fix-warnings/OTP-9250: Eliminate alias warning in gcc 4.5.2 erl_trace: Eliminate alias warning
2011-05-13Merge branch 'bjorn/test-environment-improvements/OTP-9297' into devBjörn Gustavsson
* bjorn/test-environment-improvements/OTP-9297: erlexec: Make ERL_<version>_FLAGS behave like ERL_AFLAGS cerl: Fix several incompatibilities with 'erl' Teach erlexec the -emu_name_exit option cerl: Remove ancient obsolete options
2011-05-13Merge branch 'bjorn/fix-binary-overflow/OTP-9118' into devBjörn Gustavsson
* bjorn/fix-binary-overflow/OTP-9118: Fix overflow in list_to_bitstring/1 Replace io_list_len() with erts_iolist_size() Make port_command/2 reject non-byte sized bitstrings io.c: Make io_list_vec_len() less general iolist_size/1: Fix truncation of result Test iolist_size/1 with bad arguments binary_SUITE: Remove workaround for avoiding stack overflow
2011-05-13Add needed barriers for write_concurrency tablesRickard Green
Ets tables using the write_concurrency option could potentially get into an internally inconsistent state.
2011-05-12Merge branch 'sverker/halfword-printf-relative-terms/OTP-9292' into devBjörn-Egil Dahlberg
* sverker/halfword-printf-relative-terms/OTP-9292: ETS usage of erts_printf %R erts_printf %R for relative ets-terms in halfword-vm Another halfword is_same-bug for ETS ordered_set
2011-05-12Merge branch 'sverker/halfword-high-alloc/OTP-9291' into devBjörn-Egil Dahlberg
* sverker/halfword-high-alloc/OTP-9291: Present 'low' memory count for halfword-vm with erlang:memory() Fix faulty values from erlang:memory() on halfword-vm Allow allocator disable for high memory (better valgrind for halfword) Expand the use of high memory allocation in halfword emulator
2011-05-11Merge branch 'dc/improved_find_redist' into devPatrik Nyblom
* dc/improved_find_redist: support new SDKs in find_redist.sh and fallback to $ERL_TOP as last resort OTP-9287
2011-05-11Merge branch 'rickard/gc-other/OTP-9211' into devRickard Green
* rickard/gc-other/OTP-9211: Fix bad assertions Avoid scheduling of processes being garbage collected by others
2011-05-11Fix bad assertionsRickard Green
2011-05-11erlexec: Make ERL_<version>_FLAGS behave like ERL_AFLAGSBjörn Gustavsson
The contents of the ERL_<version>_FLAGS undocumented environment variable would be added at the end of the command line passed to the BEAM emualator (similar to ERL_ZFLAGS), making it impossible to override (for example) "-smp" with "-smp disable" on the command line. To allow overriding, put the contents of ERL_<version>_FLAGS at the beginning of the command line (similar to ERL_AFLAGS). Since the ERL_<version>_FLAGS variable is undocumented and unsupported, it is OK to change its behaviour in a minor release.
2011-05-11cerl: Fix several incompatibilities with 'erl'Björn Gustavsson
Invoking 'cerl' like 'cerl -smp' would only start the smp emulator if default was to start the non-smp emulator, otherwise 'erlexec' would try to start 'beam.smp.smp'. Furthermore 'cerl -smp disable' would be handled in the same way as 'cerl -smp'.
2011-05-11Teach erlexec the -emu_name_exit optionBjörn Gustavsson
It is difficult/impossible to find out whether an invocation of 'erl' will start the smp emulator or the non-smp emulator (short of actually starting the emulator). Therefore we will need a way to ask 'erlexec'.
2011-05-11cerl: Remove ancient obsolete optionsBjörn Gustavsson
The -frag and -smp_frag options was used to start an (at the time) experimental build of the emulator. The -shared and -hybrid option was used to start experimental versions of the emulator with alternate heap architectures.
2011-05-11Homogenize memory barriers on atomicsRickard Green
Atomic operations with specified barriers have specified barrier semantics. Set and read operations have undefined barrier semantics. All other atomic operations implied full memory barriers, except when using the libatomic_ops library and the tilera atomics api. Some code in the runtime system assumed that all operations used (except for set, read and specified) implied full memory barriers. The use of the libatomic_ops library and the tilera atomics api have therefore been modified to behave as the other implementations. Some atomic operations with specified barrier semantics on sparc32 have also been been relaxed in this commit.
2011-05-11Eliminate alias warning in gcc 4.5.2Björn Gustavsson
2011-05-11erl_trace: Eliminate alias warningBjörn Gustavsson
Avoid creating two variable names referring to the same memory area, because that can cause aliasing warnings in some versions of gcc.
2011-05-10Present 'low' memory count for halfword-vm with erlang:memory()Sverker Eriksson
2011-05-10Fix overflow in list_to_bitstring/1Björn Gustavsson
Noticed-by: Jon Meredith
2011-05-10Replace io_list_len() with erts_iolist_size()Björn Gustavsson
The io_list_len() function returns an int, where a negative return value indicates a type error. One problem is that an int only consists of 32 bits in a 64-bit emulator. Changing the return type to Sint will solve that problem, but in the 32-bit emulator, a large iolist and a iolist with a type error will both return a negative number. (Noticed by Jon Meredith.) Another problem is that for iolists whose total size exceed the word size, the result would be truncated, leading to a subsequent buffer overflow and emulator crash. Therefore, introduce the new erts_iolist_size() function which returns a status indication and writes the result size through a passed pointer. If the result size does not fit in a word, return an overflow indication.
2011-05-09Fix faulty values from erlang:memory() on halfword-vmSverker Eriksson
Use of Uint instead of UWord could cause overflow errors on systems with large memory use.
2011-05-09Allow allocator disable for high memory (better valgrind for halfword)Sverker Eriksson
2011-05-09Expand the use of high memory allocation in halfword emulatorSverker Eriksson
Also add 'low' field in system_info(allocator) SHORT_LIVED is still in low memory
2011-05-09Merge branch 'egil/file-write/OTP-9276' into devBjörn-Egil Dahlberg
* egil/file-write/OTP-9276: Update prim_file.beam Remove unnecessary copy in prim_file:drv_command/3
2011-05-06ETS usage of erts_printf %RSverker Eriksson
2011-05-06erts_printf %R for relative ets-terms in halfword-vmSverker Eriksson
Conflicts: erts/emulator/beam/erl_printf_term.c
2011-05-06Another halfword is_same-bug for ETS ordered_setSverker Eriksson
This one is less likely to provoke error as one of the terms is always NULL-based.
2011-05-06Update prim_file.beamBjörn-Egil Dahlberg
2011-05-06Remove unnecessary copy in prim_file:drv_command/3Björn-Egil Dahlberg
2011-05-06Make port_command/2 reject non-byte sized bitstringsBjörn Gustavsson
Also rename the fun_to_port/1 test case to outputv_errors/1 and test sending more kinds of bad data to an outputv-enabled driver.
2011-05-06Merge branch 'jf/run_erl-disable-flow-control' into devHenrik Nord
* jf/run_erl-disable-flow-control: Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow control OTP-9270
2011-05-06io.c: Make io_list_vec_len() less generalBjörn Gustavsson
io_list_vec_len() is slightly more general than it needs to be. Specifically: * The only caller always passes ERL_SMALL_IO_BIN_LIMIT as the value for the bin_limit parameter, so the bin_limit parameter can be eliminated. * The only caller never passes any NULL pointers, so there is no need test the pointers before writing through them.
2011-05-06Merge branch 'ta/inet_drv-cleanup' into devHenrik Nord
* ta/inet_drv-cleanup: inet_drv: remove unused tcp request id inet_drv: remove gratuitous assignment OTP-9263
2011-05-06Merge branch 'ms/beam-fix-format-specifiers-in-erl_exit-msg' into devHenrik Nord
* ms/beam-fix-format-specifiers-in-erl_exit-msg: Fix format specifiers in erl_exit messages OTP-9262
2011-05-05Merge branch 'maint-r14' into devSverker Eriksson
Conflicts: erts/vsn.mk
2011-05-04iolist_size/1: Fix truncation of resultBjörn Gustavsson
iolist_size/1 would silently return a truncated result for iolists whose size exceeded the word size. For example: iolist(lists:duplicate(256, <<0:(1 bsl 24)/unit:8>>)). would return 0 (instead of 4294967296 or 1 bsl 32). Rewrite iolist_size/1 to accumulate the size in a bignum if necessary and result the correct result.
2011-05-04Test iolist_size/1 with bad argumentsBjörn Gustavsson
2011-05-04binary_SUITE: Remove workaround for avoiding stack overflowBjörn Gustavsson
In older releases of Erlang/OTP, the '=:=' operator could run out of stack if used to compare very deep lists. Since that problem has been fixed, we can remove the workaround used in the deep/1 test case.
2011-05-04Prepare releaseErlang/OTP
2011-05-04Fix bug in halfword emulator causing ets:select_delete on ordered_set to crashSverker Eriksson
2011-05-02Teach run_erl RUN_ERL_DISABLE_FLOWCNTRL for disabling flow controlJonas Faklkevik
Flow control can cause unwanted behaviour of the beam process, if accidentally hit Ctrl-S (instead of Ctrl-D to detach) the entire beam may be blocked. Fix this problem by making it possible to turn off flow control by setting the environment variable RUN_ERL_DISABLE_FLOWCNTRL.