aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2013-06-05Make all steps ofterm_to_binary work in chunks and yieldPatrik Nyblom
Rewrite and extend of Happi's initial work Extra_root to process structure to enable GC of state - Changed the process structure to point to a separate struct, the struct also contains a destructor function to allow for proper cleanup. Rewrote encode_size_struct and enc_term to have internal versions with reduction counters which will result in interrupt for later restart when the counter reaches zero - removed the EWA_STACK from Happis version and directly save the ESTACK's and WSTACK's in the above mentioned struct (or array thereof) that are pointed out from the process structure. The destructor will take care of the deallocation in case of process death. Added ESTACK and WSTACK macros to save and restore stack and to change allocator, which makes the previously mentioned stack-save work. Rewrote enc_term to not store pointers on the stack, and use one WSTACK for commands etc and another ESTACK for Eterms - Slightly different than Happis version to make halfword code simpler. Rewrote encode_size_struct2 so that it does not store pointers on the stack, also switched to ESTACK instead of WSTACK, this also handles halfword correctly. Added interfaces for chunkwise compression, that are used from term_to_binary/2 when the compressed option is given.
2013-06-04Make term_to_binary yield (trap).happi
2013-06-04Merge branch 'sverk/pwrite-bug' into maintSverker Eriksson
* sverk/pwrite-bug: kernel: Fix bug in file:pwrite for large data sets
2013-06-04Merge branch 'rickard/stale-driver-select/OTP-11084' into maintRickard Green
* rickard/stale-driver-select/OTP-11084: Fix crash when reporting stale driver select
2013-06-04Merge branch 'rickard-sverker/carrier-migration/OTP-10279' into maintRickard Green
* rickard-sverker/carrier-migration/OTP-10279: erts: Document the +M<S>acul command line argument erts: Carrier pool information in allocator information erts: Use carrier pool for migration of carriers erts: Implement test case for carrier pool erts: Implement carrier pool erts: Fix type errors in info functions erts: Use Uint64 for call counts erts: Fix failing testcase alloc_SUITE:rbtree erts: Rename allocator aoffcbf to aoffcaobf erts: Remove unnecessary flag arguments in allocators erts: Remove SBMBC allocator erts: Add test for add_mbc and remove_mbc callbacks erts: Fix deallocation in removed carrier erts: Change naive list to rb-tree of carriers in AOFF allocator erts: Prepare aoff allocator for carrier migration erts: Make carrier header sizes customizable erts: Add "bestfit within carrier" for aoff allocator (aoffcbf)
2013-06-04erts: Carrier pool information in allocator informationRickard Green
That is, include information about carrier pool in result returned from erlang:system_info({allocator,allocator_sizes, _}).
2013-06-04erts: Use carrier pool for migration of carriersRickard Green
2013-06-04erts: Implement test case for carrier poolRickard Green
2013-06-04erts: Implement carrier poolRickard Green
2013-06-04erts: Fix type errors in info functionsRickard Green
2013-06-04erts: Use Uint64 for call countsRickard Green
2013-06-03erts: Fix failing testcase alloc_SUITE:rbtreeSverker Eriksson
2013-06-03Merge branch 'lukas/r16b01/testcase-fixes/OTP-11138' into maintLukas Larsson
* lukas/r16b01/testcase-fixes/OTP-11138: Do not fail if there is no variables file Run iter max ports on a seperate vm with smaller port table Set max ports for slave node Decrease sleep timer
2013-06-03Merge branch 'nox/erl_eval-receive/OTP-11137' into maintFredrik Gustafsson
* nox/erl_eval-receive/OTP-11137: Updated primary bootstrap for erl_eval Added preloaded prim_eval Fix receive support in erl_eval with a BEAM module
2013-06-03erts: Rename allocator aoffcbf to aoffcaobfSverker Eriksson
and add documentation in erts_alloc
2013-06-03erts: Remove unnecessary flag arguments in allocatorsSverker Eriksson
A cleanup after SBMBC was removed.
2013-06-03erts: Remove SBMBC allocatorSverker Eriksson
2013-06-03erts: Add test for add_mbc and remove_mbc callbacksSverker Eriksson
2013-06-03erts: Fix deallocation in removed carrierSverker Eriksson
2013-06-03erts: Change naive list to rb-tree of carriers in AOFF allocatorSverker Eriksson
and add new callbacks add_mbc(), remove_mbc() and largest_fblk_in_mbc() for carrier migration.
2013-06-03erts: Prepare aoff allocator for carrier migrationSverker Eriksson
by putting blocks from different carrier into separate search trees. Carriers are currently organized in a naive linked list by address order.
2013-06-03erts: Make carrier header sizes customizableSverker Eriksson
This is a modified partial revert of 2ab1d972f6fd37c17b05
2013-06-03erts: Add "bestfit within carrier" for aoff allocator (aoffcbf)Sverker Eriksson
2013-05-31kernel: Fix bug in file:pwrite for large data setsSverker Eriksson
Bug introduced in a73414d2e8ad03538 and never released.
2013-05-31Merge branch 'lukas/erts/gc_stat_contention/OTP-10271' into maintLukas Larsson
* lukas/erts/gc_stat_contention/OTP-10271: Replace gc stat lock with sched spec data
2013-05-31Replace gc stat lock with sched spec dataLukas Larsson
2013-05-30Merge branch 'rickard/ptab-id-alloc/OTP-11077' into maintRickard Green
* rickard/ptab-id-alloc/OTP-11077: Introduce a better id allocation algorithm for PTabs
2013-05-28Fix receive support in erl_eval with a BEAM moduleAnthony Ramine
Using the low-level BEAM instructions, we can loop over each message in the process queue and removes the first message that matches, without receiving them all to later send them back to itself. The function prim_eval:'receive'/2 is equivalent to the following pseudo-code: 'receive'(F, T) -> RESET MESSAGE QUEUE POINTER, LOOP: case PEEK CURRENT MESSAGE WITH TIMEOUT T of {ok,Msg} -> case F(Msg) of nomatch -> DECREMENT TIMEOUT T, ADVANCE MESSAGE QUEUE POINTER, GOTO LOOP; Result -> RESET MESSAGE QUEUE POINTER, Result end; timeout -> RESET MESSAGE QUEUE POINTER, timeout end. To not break Dialyzer and other tools, we use a stub Erlang module which abstract code is forcefully inserted into prim_inet.erl afterwards compilation.
2013-05-24Merge branch 'nox/fix-silent-rules/OTP-11111' into maintFredrik Gustafsson
* nox/fix-silent-rules/OTP-11111: Fix some Makefile rules that didn't support silent rules
2013-05-22Merge branch 'sverk/win64-fixes' into maintSverker Eriksson
* sverk/win64-fixes: erts: Change some more 'long' to pointer sized int (ErlDrvUInt) erts: Fix crash in nif_SUITE for win64 erts: Fix assert in isdigit for negative characters
2013-05-22Merge branch 'lukas/erts/process_memory_crash_dump/OTP-11098' into maintLukas Larsson
* lukas/erts/process_memory_crash_dump/OTP-11098: Bump crash dump version
2013-05-21Bump crash dump versionLukas Larsson
2013-05-20Merge branch 'nox/fix-wcwidth/OTP-11106' into maintFredrik Gustafsson
* nox/fix-wcwidth/OTP-11106: Properly guard WIDE_TAG use with HAVE_WCWIDTH in ttsl_drv
2013-05-17Introduce a better id allocation algorithm for PTabsRickard Green
2013-05-16Merge branch 'rickard/frmptr' into maintRickard Green
* rickard/frmptr: Add 'frmptr' emulator type Conflicts: erts/preloaded/ebin/erlang.beam
2013-05-16Merge branch 'rickard/nosuspend/OTP-11076' into maintRickard Green
* rickard/nosuspend/OTP-11076: Only verify not busy for erlang:send(Port, Msg, [nosuspend]) until scheduled
2013-05-16Merge branch 'rickard/inet_opts/OTP-11075' into maintRickard Green
* rickard/inet_opts/OTP-11075: Make high_msgq_watermark and low_msgq_watermark generic inet options Conflicts: erts/preloaded/ebin/prim_inet.beam
2013-05-16Merge branch 'rickard/inet_db/OTP-11074' into maintRickard Green
* rickard/inet_db/OTP-11074: Do not treat port_set_data/port_get_data as signals Conflicts: erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam
2013-05-16Merge branch 'lukas/erts/process_memory_crash_dump/OTP-11098' into maintLukas Larsson
* lukas/erts/process_memory_crash_dump/OTP-11098: Print process memory usage info in crash dump
2013-05-16Merge branch 'lukas/erts/nodes_rwlock_contentions/OTP-11097' into maintLukas Larsson
* lukas/erts/nodes_rwlock_contentions/OTP-11097: Change rwlock to rlock where possible
2013-05-16Change rwlock to rlock where possibleLukas Larsson
Having rwlock could cause high unneccesary contention on the dist table when calling erlang:nodes() from many schedulers at the same time.
2013-05-16Merge branch 'lukas/erts/win32_io_flush_hangs/OTP-11096' into maintLukas Larsson
* lukas/erts/win32_io_flush_hangs/OTP-11096: Repeat flush loop at timeout intervals
2013-05-14Properly guard WIDE_TAG use with HAVE_WCWIDTH in ttsl_drvAnthony Ramine
2013-05-13Print process memory usage info in crash dumpLukas Larsson
2013-05-08Merge branch 'nox/wide-chars/OTP-11088' into maintFredrik Gustafsson
* nox/wide-chars/OTP-11088: Support wide characters in the shell through wcwidth() Fix bogus DEBUGLOG() incantations in ttsl_drv
2013-05-06Only verify not busy for erlang:send(Port, Msg, [nosuspend]) until scheduledRickard Green
2013-05-06Make high_msgq_watermark and low_msgq_watermark generic inet optionsRickard Green
2013-05-06erts: Change some more 'long' to pointer sized int (ErlDrvUInt)Sverker Eriksson
2013-05-06Merge branch 'sverk/fix-alloc-fixes' into maintSverker Eriksson
* sverk/fix-alloc-fixes: erts: Remove unnecessary utf8 analysis step in external decoding erts: Fix locking order violation for allocation wrappers erts: Change locking order for "port_table" and "port_sched_lock" erts: Adjust sizes for fix allocator erts: Fix unabused bug in fixed allocation erts: Fix benign size-bug for fix-allocators MONITOR_SH and NLINK_SH erts: Refactor in new struct ErtsAllctrFixDDBlock_t OTP-11085
2013-05-06Merge branch 'nox/fix-warnings/OTP-11086' into maintFredrik Gustafsson
* nox/fix-warnings/OTP-11086: Fix some sign warnings found with Clang Fix a shift/reduce conflicts warning in icparse Fix two deprecation warnings in com.ericsson.otp.ic.Environment Define matherr only on platforms where it is used Properly declare _sigaction on Darwin Properly mark Uint literals as unsigned in big.c Do not use -mdynamic-no-pic on Darwin