aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2019-03-21Merge pull request #2188 from bjorng/bjorn/tune-beam-3Björn Gustavsson
Tune BEAM instructions for the new compiler (part 3)
2019-03-21Merge branch 'bmk/20190320/esock/test_case_adjustements'Micael Karlberg
2019-03-21Merge branch 'bmk/20190318/temporary_fix_for_realtime_on_darwin'Micael Karlberg
2019-03-21Merge branch 'bmk/20190318/invalid_make_ref_at_sock_close'Micael Karlberg
2019-03-21Merge branch 'max-au/erts/dirty_scheduler_shutdown/PR-2172/OTP-15690'Lukas Larsson
* max-au/erts/dirty_scheduler_shutdown/PR-2172/OTP-15690: erts: release dirty runqueue lock before entering endless loop when BEAM is shutting down
2019-03-21erts: release dirty runqueue lock before entering endless loop when BEAM is ↵Maxim Fedorov
shutting down This patch fixes a problem happening when BEAM is shutting down. It is possible for a dirty scheduler to take the lock, and keep it, when the system is shutting down. It may also happen that a normal scheduler decides to schedule some dirty job (example is major garbage collection that results in migrating the process into dirty CPU queue), and hangs trying to take the lock that will never be released. To fix the problem, either release the lock before entering endless wait loop, or reverse the order in which schedulers are stopped. Either fix works, and, of course, it works even better to apply both.
2019-03-20Optimize moving of several Y registers to X registersBjörn Gustavsson
Introduce move_src_window[234] instructions for moving several consecutively numbered Y registers to discontiguously numbered X registers. This optimization is effective because the compiler has sorted the `move` instructions in Y register order.
2019-03-20[socket|test] Improve test case preconditionMicael Karlberg
Added a fun for precondition check run before each test case is actually run. The primary reason for this is the api_to_connect test case, which does not work for a number of platforms. Also, moved the IPv6 check into this fun (instead of an explicit skip in the test case fun) for the IPv6 test cases.
2019-03-20Merge branch 'sverker/nif-test-cuddle'Sverker Eriksson
2019-03-19Optimize map updating instructionsBjörn Gustavsson
2019-03-19Optimize funs converted to literalsBjörn Gustavsson
2019-03-19Combine move and init to move_shiftBjörn Gustavsson
2019-03-19Remove the move_dup instructionBjörn Gustavsson
move_dup is used very infrequently.
2019-03-19Optimize some common uses of '+' and '-'Björn Gustavsson
2019-03-19Extend move_shift to accept a literal Src operandBjörn Gustavsson
2019-03-19Tune the move_jump instructionBjörn Gustavsson
With the new compiler, it has become less common with a move to x(0) before a jump. Change the move_jump instruction to take a destination as well as a source.
2019-03-19Eliminate i_length_setup with a literal list operandBjörn Gustavsson
2019-03-19Replace swap_temp with swap more aggressivelyBjörn Gustavsson
Also support swap of Y registers.
2019-03-19beam_makeops: Eliminate warningBjörn Gustavsson
2019-03-19Add another move_shift variationBjörn Gustavsson
It turns out that sequences such as the following are common: move x0 Y1 move Y2 x0
2019-03-19Combine move with trimBjörn Gustavsson
It is relatively common to move something from a Y register to an X register before trimming.
2019-03-19Refactor put_list instructions for readabilityBjörn Gustavsson
Apart from the refactoring, the instruction "put_list x c y" is replaced with "put_list x n y".
2019-03-19Combine is_tuple with is_tagged_tupleBjörn Gustavsson
2019-03-19beam_load.c: Introduce the GENOP_NAME_ARITY() macroBjörn Gustavsson
Introduce the GENOP_NAME_ARITY() macro to avoid setting the arity wrong for for an instruction.
2019-03-19beam_debug: Stop disassembling after call_nifBjörn Gustavsson
That will avoid showing garbage instructions that will never be executed.
2019-03-19beam_debug: Properly disassemble i_bs_match_string_yfWWBjörn Gustavsson
2019-03-19[socket] Another try at fixing the NULL envMicael Karlberg
During socket stop the close environment somehow has been NULLed. Check this before using when sending the close message.
2019-03-18[socket|net] Temporary fix for absence of clock_gettime(CLOCK_REALTIMEMicael Karlberg
We use clock_gettime(CLOCK_REALTIME, ...) to create a simple timestamp. This is used both for debugging and when writing error/warning messages (from the nif-code). The workaround for the absence of this function (on some platforms, old versions of darwin for example) is to simply skip the timestamp.
2019-03-18Merge branch 'bmk/20190315/net_memleak'Micael Karlberg
2019-03-18Merge branch 'bmk/20190315/use_wrong_current_when_stopping'Micael Karlberg
2019-03-18Merge branch 'bmk/20190314/socket_invalid_activate_next_for_write'Micael Karlberg
2019-03-18Merge branch 'bmk/20190312/linked_test_procs'Micael Karlberg
2019-03-18[socket] Fixed socket close issueMicael Karlberg
Fixed an issue (I think) that during socket close could cause a core.
2019-03-15Merge branch 'sverker/ets-select-fixation-owner-change-bug/OTP-15672'Sverker Eriksson
* sverker/ets-select-fixation-owner-change-bug/OTP-15672: erts: Fix bug for yielding ets:replace
2019-03-15erts: Fix bug for yielding ets:replaceSverker Eriksson
Found by valgrind: Conditional jump or move depends on uninitialised value(s) Suspected: ets_select_replace_1:3034 [erl_db.c] Bug introduced by already merged parent commit 0d550c80d4f19cc432e7de056169695d436c02a0.
2019-03-15[net] Fixed memory leak in address info encodingMicael Karlberg
Fixed a memory leak in the function for address infos encoding.
2019-03-15erts: Fix some racy testsSverker Eriksson
Wait for resource-holding processes to garbage collect before exiting to know destructors have been called.
2019-03-15Merge branch 'sverker/ets-select-fixation-owner-change-bug/OTP-15672'Sverker Eriksson
* sverker/ets-select-fixation-owner-change-bug/OTP-15672: erts: Fix ets:select table fixation leak at owner change erts: Refactor common things into traverse_context_t stdlib: Clarify docs for ets:info(_, safe_fixed)
2019-03-15[socket] Fixing debug printoutMicael Karlberg
A debug printout in the socket_stop fucntion used the wrong requestor record for the pid, which may leasd to a confusing debug printout.
2019-03-14[socket] The activate-next always used read selectMicael Karlberg
The activate-next (reader|writer|acceptor) always *incorrectly* used the read select function. This has now been changed so that the functions are created via a macro with an argument specifying which select function to use.
2019-03-14Merge pull request #2181 from KronicDeth/patch-2Lukas Larsson
retranspissions -> retransmissions
2019-03-14retranspissions -> retransmissionsLuke Imhoff
2019-03-13Merge pull request #2177 from bjorng/bjorn/erts/tail-recursive-bifsBjörn Gustavsson
Optimize tail-recursive calls of BIFs OTP-15674
2019-03-13Merge branch 'bmk/20190308/socket_limitations'Micael Karlberg
2019-03-13Merge branch 'bmk/20190306/win32_fixes'Micael Karlberg
2019-03-13Merge branch 'bmk/20190301/cleanup_through_macro_abuse/OTP-15565'Micael Karlberg
2019-03-12[socket|test] Make the evaluator processes linkedMicael Karlberg
If a test case timed out, all processes created by it should die. But because the 'evaluator' processes where created with spawn_monitor, that was not the case, and therefor, these processes could linger.
2019-03-12Merge branch 'maint'Henrik Nord
* maint: Updated OTP version Prepare release
2019-03-11erts: Fix ets:select table fixation leak at owner changeSverker Eriksson
Symtom: ETS table remains fixed after finished ets:select* call. Problem: The decision to unfix table after a yielding ets:select* is based on table ownership, but ownership might have changed while ets:select* was yielding. Solution: Remember and pass along whether table was fixed when the traversal started.
2019-03-11erts: Refactor common things into traverse_context_tSverker Eriksson
and rename it from match_callbacks_t.