aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2014-12-10Merge branch 'maint'Rickard Green
* maint: Use the new 64-bit atomic ops API Introduce a 64-bit atomic ops API
2014-12-10Use the new 64-bit atomic ops APIRickard Green
2014-12-10Introduce a 64-bit atomic ops APIRickard Green
The 64-bit atomic ops API is implemented by * native word size atomic ops on 64-bit architectures, and * native double word size atomic ops on 32-bit architectures when available. When native double word size atomic is not available, the fallback using modification counters is used.
2014-12-09erts: Allow cpu_timestamp tracing for LinuxLukas Larsson
2014-12-05Merge branch 'egil/ets/use-internal-stack/OTP-12356'Björn-Egil Dahlberg
* egil/ets/use-internal-stack/OTP-12356: erts: Use internal stack for ets db_has_variable
2014-12-05erts: Use linear search for small select_val arraysBjörn-Egil Dahlberg
For searching a key in an array we use linear search in arrays up to 10 elements. Selecting on tuple arity will always use linear search. Instead of using two different instructions we assume selecting on different tuple arities are always few in numbers.
2014-12-02erts: Add compile time assert ERTS_CT_ASSERTSverker Eriksson
and usage
2014-11-26erts: Use internal stack for ets db_has_variableBjörn-Egil Dahlberg
2014-11-26Merge branch 'maint'Sverker Eriksson
2014-11-26Merge branch 'sverk/port_get_data-race/OTP-12208' into maintSverker Eriksson
* sverk/port_get_data-race/OTP-12208: erts: Fix port data memory allocation bug
2014-11-25Merge branch 'maint'Rickard Green
* maint: Do not let non-empty run-queue prevent activation of scheduler
2014-11-25Merge branch 'rickard/maint-17/activate-runq/OTP-12287' into maintRickard Green
* rickard/maint-17/activate-runq/OTP-12287: Do not let non-empty run-queue prevent activation of scheduler
2014-11-25Merge branch 'maint'Sverker Eriksson
2014-11-25Merge branch 'sverk/cpool-search-improvement' into maintSverker Eriksson
OTP-12323 * sverk/cpool-search-improvement: erts: Add internal docs for super carrier and new cpool search. erts: Fix bug causing mbc to be deleted from cpool before it was inserted erts: Fix bug causing mbc removed from cpool to be used at pool entrance erts: Add pooled_list and traitor_list
2014-11-25erts: Fix port data memory allocation bugSverker Eriksson
for non-immediate port data >= sizeof(Eterm)*2 words.
2014-11-13erts: Optimize ets:lookup and ets:take for bagsSverker Eriksson
by reducing number of iterations through objects with matching key
2014-11-10Merge branch 'maint'Bruce Yinhe
2014-11-10Merge branch 'vinoski/dirty-nif-return-gc' into maintBruce Yinhe
OTP-12300 * vinoski/dirty-nif-return-gc: Fix gc-related problem with dirty NIFs
2014-11-07Merge branch 'maint'Bruce Yinhe
2014-11-07Merge branch 'lemenkov/expose_nif_version' into maintBruce Yinhe
OTP-12298 * lemenkov/expose_nif_version: Expose NIF version
2014-11-06Merge branch 'maint'Marcus Arendt
2014-11-06Merge branch 'vinoski/fix-smp-disable-with-ds/OTP-12295' into maintMarcus Arendt
* vinoski/fix-smp-disable-with-ds/OTP-12295: Fix "-smp disable" for emulator with dirty schedulers
2014-11-05Merge branch 'lukas/erts/crash_dump_shell_info/OTP-12292'Lukas Larsson
* lukas/erts/crash_dump_shell_info/OTP-12292: erts: Print that we are crashdumping earlier
2014-11-05Merge branch 'maint'Lukas Larsson
* maint: erts: Fix ub in list_to_integer and bignum div
2014-11-05Merge branch 'lukas/erts/fix_undefined_behaviour/OTP-12290' into maintLukas Larsson
* lukas/erts/fix_undefined_behaviour/OTP-12290: erts: Fix ub in list_to_integer and bignum div
2014-11-04Merge branch 'rickard/activate-runq/OTP-12287' into ↵Rickard Green
rickard/maint-17/activate-runq/OTP-12287 * rickard/activate-runq/OTP-12287: Do not let non-empty run-queue prevent activation of scheduler Conflicts: erts/emulator/beam/erl_process.c
2014-11-04Do not let non-empty run-queue prevent activation of schedulerRickard Green
Conflicts: erts/emulator/beam/erl_process.c
2014-11-04Fix gc-related problem with dirty NIFsSteve Vinoski
Ensure that the return value from a dirty NIF call is made part of the GC rootset. Add a new regression test to nif_SUITE. Thanks to Daniel Goertzen for reporting the error and providing a test case, and to Sverker Eriksson for making test case reproducible and finding the fix.
2014-11-03Merge branch 'maint'Sverker Eriksson
2014-11-03Merge branch 'sverk/beam-ranges-bug/OTP-12273' into maintSverker Eriksson
* sverk/beam-ranges-bug/OTP-12273: erts: Fix bug in beam_ranges
2014-11-03Merge branch 'sverk/yielding-distr-send/OTP-12232'Sverker Eriksson
* sverk/yielding-distr-send/OTP-12232: erts: Add constant TERM_TO_BINARY_MEMCPY_FACTOR erts: Optimize some repeated calls to {E,W}STACK_PUSH erts: Yield in term_to_binary when encoding big maps erts: Remove unnecessary goto for fun encoding erts: Yield in term_to_binary while copying large binaries erts: Implement yielding for distributed send of large messages
2014-11-03erts: Add constant TERM_TO_BINARY_MEMCPY_FACTORSverker Eriksson
and do not piggyback on B2T_MEMCPY_FACTOR
2014-11-02Expose NIF versionPeter Lemenkov
This patch allows checking for NIF API version in a way similar to driver version. E.g. by calling erlang:system_info(nif_version). Signed-off-by: Peter Lemenkov <[email protected]>
2014-10-29erts: Fix bug in beam_rangesSverker Eriksson
Symptom: VM on OSX (darwin11.4.2) with +Meamin running sasl tests, crashing when init:reboot() does erlang:purge_module(installer). Problem: Off-by-one bug in beam_ranges:find_range, returning the wrong range if the 'end' of one module is the 'start' of the next. This is only possible if using sys_alloc (+Meamin) as our own allocators always put block headers between allocated payload data.
2014-10-28Merge branch 'maint'Sverker Eriksson
2014-10-28Merge branch 'sverk/cpool_fetch-dc_list-bug/OTP-12249' into maintSverker Eriksson
* sverk/cpool_fetch-dc_list-bug/OTP-12249: erts: Fix bug when delayed deallocated carrier is reused by cpool_fetch
2014-10-28Merge branch 'egil/nox/maps-match_specs/OTP-12270'Björn-Egil Dahlberg
* egil/nox/maps-match_specs/OTP-12270: erts: Fix return value from erts_maps_get to be const Properly support maps in match_specs Support maps in ms_transform Return pointer to value in erts_maps_get()
2014-10-28Merge branch 'maint'Lukas Larsson
* maint: Use isfinite() instead of finite() when available
2014-10-28Merge branch 'sv/isfinite/OTP-12268' into maintLukas Larsson
* sv/isfinite/OTP-12268: Use isfinite() instead of finite() when available
2014-10-28Use isfinite() instead of finite() when availableAnthony Ramine
OS X Mavericks builds result in a number of warnings about finite() being deprecated, like these: beam/erl_arith.c:451:7: warning: 'finite' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations] ERTS_FP_ERROR(p, f1.fd, goto badarith); ^ sys/unix/erl_unix_sys.h:319:33: note: expanded from macro 'ERTS_FP_ERROR' ^ sys/unix/erl_unix_sys.h:244:51: note: expanded from macro '__ERTS_FP_ERROR' ^ /usr/include/math.h:718:12: note: 'finite' has been explicitly marked deprecated here extern int finite(double) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_NA, __IPHONE_NA); Add checks to use isfinite() instead of finite() where available. Verified on OS X Mavericks 10.9.5 and Ubuntu 12.04.
2014-10-28Merge branch 'maint'Bruce Yinhe
2014-10-28Merge branch 'vinoski/erl-nif-init' into maintBruce Yinhe
OTP-12266 * vinoski/erl-nif-init: Fix missing field initializer in ERL_NIF_INIT macro
2014-10-27erts: Fix return value from erts_maps_get to be constBjörn-Egil Dahlberg
From "warning: assignment discards qualifiers from pointer target type"
2014-10-27Merge branch 'egil/fix-instruction-counter'Björn-Egil Dahlberg
* egil/fix-instruction-counter: erts: Fix SMP for ERTS_OPCODE_COUNTER_SUPPORT erts: Add icount build type for opcode counter
2014-10-26Fix "-smp disable" for emulator with dirty schedulersSteve Vinoski
Running "erl -smp disable" on an emulator built with dirty scheduler support caused problems such as segmentation violations and emulator status line outputs containing garbage. For example: $ erl -smp disable Segmentation fault (core dumped) and: $ erl -smp disable Erlang/OTP 17 [DEVELOPMENT] [erts-6.2] [source] [64-bit] [ds:10:4297895689:4299948152] [async-threads:280] This problem also caused the emulator smoke_test_SUITE to hit these same problems if run in an emulator started with the "-smp disable" option. Fix this segmentation violation by ensuring that dirty scheduler information is printed in the status line only when the emulator is compiled with ERTS_SMP enabled. With this fix in place, the smoke_test_SUITE now passes when the "-smp disable" option is used, and the emulator status line prints correctly for both "-smp enable" and "-smp disable": $ erl -smp enable Erlang/OTP 17 [DEVELOPMENT] [erts-6.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [kernel-poll:false] and: $ erl -smp disable Erlang/OTP 17 [DEVELOPMENT] [erts-6.2] [source] [64-bit] [async-threads:10] [kernel-poll:false]
2014-10-24Merge branch 'sverk/hipe-inline-reserve-trap-frame'Sverker Eriksson
* sverk/hipe-inline-reserve-trap-frame: erts: Extend usage of ASM macro to avoid including asm macros in C code erts: Make hipe_{un}reserve_beam_trap_frame INLINE
2014-10-24erts: Make hipe_{un}reserve_beam_trap_frame INLINESverker Eriksson
2014-10-23Merge branch 'rickard/default-eager-check-io/OTP-12254'Rickard Green
* rickard/default-eager-check-io/OTP-12254: Change default to "eager check I/O"
2014-10-23Merge branch 'rickard/master/eager-check-io/OTP-12117'Rickard Green
* rickard/master/eager-check-io/OTP-12117: No eager check I/O on OSE Introduce support for eager check I/O scheduling
2014-10-23Merge branch 'rickard/maint-17/eager-check-io/OTP-12117' into maintRickard Green
* rickard/maint-17/eager-check-io/OTP-12117: No eager check I/O on OSE Introduce support for eager check I/O scheduling