Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-06-07 | Merge branch 'rickard/purge-hibernated-19/ERIERL-24/OTP-14444' into maint-19 | Erlang/OTP | |
* rickard/purge-hibernated-19/ERIERL-24/OTP-14444: Update testcase to check that purge handle hibernated process correct Do not GC hibernated process from other processes Fix check_process_code() on hibernated process | |||
2017-06-01 | Merge branch 'rickard/purge-hibernated' into rickard/purge-hibernated-19 | Rickard Green | |
* rickard/purge-hibernated: Do not GC hibernated process from other processes Fix check_process_code() on hibernated process Conflicts: erts/emulator/beam/beam_bif_load.c erts/emulator/beam/erl_gc.c erts/emulator/beam/erl_process.h | |||
2017-06-01 | Do not GC hibernated process from other processes | Rickard Green | |
2017-03-10 | Update copyright year | Rickard Green | |
2017-02-06 | Merge branch 'rickard/ds-fix' into maint | Rickard Green | |
OTP-14122 * rickard/ds-fix: Dirty schedulers should not touch scheduler data pointed to by process struct Conflicts: erts/emulator/beam/erl_process.c | |||
2017-02-02 | Dirty schedulers should not touch scheduler data pointed to by process struct | Rickard Green | |
2017-01-17 | Merge branch 'rickard/abandoned-heap-bugs' into maint | Rickard Green | |
OTP-14135 * rickard/abandoned-heap-bugs: Fix memory leak of temporary heap | |||
2017-01-13 | Fix memory leak of temporary heap | Rickard Green | |
This bug was introduced in previous commit, and has never been released in an official OTP version. | |||
2017-01-11 | Merge branch 'rickard/debug-fix' into maint | Rickard Green | |
* rickard/debug-fix: Fix faulty assertion | |||
2017-01-02 | Merge branch 'rickard/ds-fixes' into maint | Rickard Green | |
OTP-14122 * rickard/ds-fixes: Fix VM global GC info for dirty schedulers Leave dirty work in dirty run-queues on multi scheduling block Fix premature removal of process struct Fix crash due to GC of node entry on dirty scheduler | |||
2017-01-02 | Fix faulty assertion | Rickard Green | |
2016-12-30 | Multi scheduling block bug-fixes | Rickard Green | |
2016-12-28 | Leave dirty work in dirty run-queues on multi scheduling block | Rickard Green | |
2016-12-28 | Fix premature removal of process struct | Rickard Green | |
Refc on process struct could reach zero while it was still referred by dirty scheduler | |||
2016-11-23 | Merge branch 'rickard/dirty-scheduling-fixes' into maint | Rickard Green | |
OTP-14051 * rickard/dirty-scheduling-fixes: Update etp-commands for dirty schedulers Fix scheduling of system tasks on processes executing dirty Fix call time tracing with dirty schedulers Fix send of exit signal to process executing dirty Fix dirty scheduler process priority Fix alloc-util hard-debug Silence debug warning when no beam jump table is used with dirty schedulers Conflicts: erts/etc/unix/etp-commands.in | |||
2016-11-22 | Fix scheduling of system tasks on processes executing dirty | Rickard Green | |
2016-11-22 | Fix call time tracing with dirty schedulers | Rickard Green | |
2016-11-22 | Fix send of exit signal to process executing dirty | Rickard Green | |
2016-11-22 | Fix dirty scheduler process priority | Rickard Green | |
2016-11-17 | erts: Refactor crash dumping with cbprintf | Sverker Eriksson | |
Instead of passing around a file descriptor use a function pointer to facilitate more advanced backend write logic such as size limitation or compression. | |||
2016-08-30 | Merge branch 'rickard/ds-win-32bit/OTP-13759' into maint | Rickard Green | |
* rickard/ds-win-32bit/OTP-13759: Fix dirty schedulers build on windows | |||
2016-08-29 | Merge branch 'rickard/ds-trace/OTP-13822' into maint | Rickard Green | |
* rickard/ds-trace/OTP-13822: Fix tracing of processes executing dirty | |||
2016-08-29 | Merge branch 'rickard/ds-purge-module/OTP-13808' into maint | Rickard Green | |
* rickard/ds-purge-module/OTP-13808: Perform check_process_code while process is executing dirty Conflicts: erts/doc/src/erl_nif.xml | |||
2016-08-29 | Merge branch 'rickard/fun-purge-bug/OTP-13809' and ↵ | Rickard Green | |
'rickard/new-purge-strategy/OTP-13833' into maint * rickard/fun-purge-bug/OTP-13809: Fix purge of code Reclaim literal area after purge has completed Separate literal area from code Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/beam_bif_load.c erts/emulator/beam/erl_init.c erts/preloaded/ebin/init.beam | |||
2016-08-29 | Fix tracing of processes executing dirty | Rickard Green | |
2016-08-29 | Perform check_process_code while process is executing dirty | Rickard Green | |
2016-08-26 | Reclaim literal area after purge has completed | Rickard Green | |
2016-08-12 | erts: Fix port monitor memory leak | Lukas Larsson | |
2016-07-20 | Fix dirty schedulers build on windows | Rickard Green | |
2016-07-14 | erts: Fix msacc for dirty scheduler and heap_limit | Lukas Larsson | |
2016-07-14 | hipe: Remove performance profiling code | Lukas Larsson | |
This type of statistics is now available through the microstate accounting API. | |||
2016-06-10 | erts: Fix undefined shift to msb in erl_process | Björn-Egil Dahlberg | |
2016-06-10 | Merge branch 'kvakvs/erts/monitor_port/OTP-11384' | Lukas Larsson | |
* kvakvs/erts/monitor_port/OTP-11384: erts: Add port monitors | |||
2016-06-10 | erts: Add port monitors | Dmytro Lytovchenko | |
* erlang:monitor/2 with port argument is added, erlang:demonitor, using port task API and avoiding locking; * port_info and process_info support for monitored ports (with named port monitors support); * Exit signals contain type 'process' or 'port'; * Propagation of port exit signals; * Self-cleaning when origin process dies with monitor on; * 8 test cases + testcase for port driver crashing; * Documentation for all of the above (monitor, demonitor, port_info and process_info) updated | |||
2016-06-08 | No GC on dirty IO schedulers | Rickard Green | |
2016-05-31 | Move dirty reduction count to erts_dirty_process_main() | Rickard Green | |
2016-05-31 | Add dirty_process_main function | Steve Vinoski | |
Dirty schedulers only execute NIFs, so having them execute the full process_main function isn't necessary. Add dirty_process_main for dirty schedulers to execute instead. Add erts_pre_dirty_nif(), called when preparing to execute a dirty nif. Add more dirty NIF tests to verify that activities requiring the process main lock can succeed when the process is executing a dirty NIF. | |||
2016-05-25 | Remove the 'message_queue_data' option 'mixed' | Rickard Green | |
2016-05-11 | Merge branch 'lukas/trace-fix' | Rickard Green | |
* lukas/trace-fix: erts: Only allow remove from trace_status callback | |||
2016-05-11 | Merge branch 'rickard/ds-proc-exit/OTP-13123' | Rickard Green | |
* rickard/ds-proc-exit/OTP-13123: Add dirty_heap_access test case Add dirty_call_while_terminated test case Move dirty nif test cases into dirty_nif_SUITE Add better support for communication with a process executing dirty NIF Remove conditional dirty schedulers API | |||
2016-05-11 | erts: Only allow remove from trace_status callback | Lukas Larsson | |
Make it so that it is only possible to remove a tracer via returning remove from an erl_tracer. This limition is put in place in order to avoid a lot of lock checking and taking in various places, especially in regards to trace events happening on dirty schedulers. | |||
2016-05-11 | Add better support for communication with a process executing dirty NIF | Rickard Green | |
- Termination of a process... - Modify trace flags of process... - Process info on process... - Register/unregister of name on process... - Set group leader on process... ... while it is executing a dirty NIF. | |||
2016-05-10 | erts: Implement max_heap_size process flag | Lukas Larsson | |
The max_heap_size process flag can be used to limit the growth of a process heap by killing it before it becomes too large to handle. It is possible to set the maximum using the `erl +hmax` option, `system_flag(max_heap_size, ...)`, `spawn_opt(Fun, [{max_heap_size, ...}])` and `process_flag(max_heap_size, ...)`. It is possible to configure the behaviour of the process when the maximum heap size is reached. The process may be sent an untrappable exit signal with reason kill and/or send an error_logger message with details on the process state. A new trace event called gc_max_heap_size is also triggered for the garbage_collection trace flag when the heap grows larger than the configured size. If kill and error_logger are disabled, it is still possible to see that the maximum has been reached by doing garbage collection tracing on the process. The heap size is defined as the sum of the heap memory that the process is currently using. This includes all generational heaps, the stack, any messages that are considered to be part of the heap and any extra memory the garbage collector may need during collection. In the current implementation this means that when a process is set using on_heap message queue data mode, the messages that are in the internal message queue are counted towards this value. For off_heap, only matched messages count towards the size of the heap. For mixed, it depends on race conditions within the VM whether a message is part of the heap or not. Below is an example run of the new behaviour: Eshell V8.0 (abort with ^G) 1> f(P),P = spawn_opt(fun() -> receive ok -> ok end end, [{max_heap_size, 512}]). <0.60.0> 2> erlang:trace(P, true, [garbage_collection, procs]). 1 3> [P ! lists:duplicate(M,M) || M <- lists:seq(1,15)],ok. ok 4> =ERROR REPORT==== 26-Apr-2016::16:25:10 === Process: <0.60.0> Context: maximum heap size reached Max heap size: 512 Total heap size: 723 Kill: true Error Logger: true GC Info: [{old_heap_block_size,0}, {heap_block_size,609}, {mbuf_size,145}, {recent_size,0}, {stack_size,9}, {old_heap_size,0}, {heap_size,211}, {bin_vheap_size,0}, {bin_vheap_block_size,46422}, {bin_old_vheap_size,0}, {bin_old_vheap_block_size,46422}] flush(). Shell got {trace,<0.60.0>,gc_start, [{old_heap_block_size,0}, {heap_block_size,233}, {mbuf_size,145}, {recent_size,0}, {stack_size,9}, {old_heap_size,0}, {heap_size,211}, {bin_vheap_size,0}, {bin_vheap_block_size,46422}, {bin_old_vheap_size,0}, {bin_old_vheap_block_size,46422}]} Shell got {trace,<0.60.0>,gc_max_heap_size, [{old_heap_block_size,0}, {heap_block_size,609}, {mbuf_size,145}, {recent_size,0}, {stack_size,9}, {old_heap_size,0}, {heap_size,211}, {bin_vheap_size,0}, {bin_vheap_block_size,46422}, {bin_old_vheap_size,0}, {bin_old_vheap_block_size,46422}]} Shell got {trace,<0.60.0>,exit,killed} | |||
2016-05-09 | Merge branch 'sverker/trace-send-receive-matchspec/OTP-13507' | Sverker Eriksson | |
2016-05-04 | erts: Add Sender in 'receive' trace matchspec | Sverker Eriksson | |
All 'EXIT' and monitor messages are sent from 'system' Timeouts are "sent" from 'clock_service' | |||
2016-05-04 | Merge branch 'rickard/fix-sched-sys-task/OTP-13047' | Rickard Green | |
* rickard/fix-sched-sys-task/OTP-13047: Fix scheduling of system tasks | |||
2016-05-04 | Ensure correct reduction counting | Rickard Green | |
2016-04-21 | erts: Fix lock-order trace status | Björn-Egil Dahlberg | |
2016-04-18 | erts: Fix lock order bug when only child is procs traced | Lukas Larsson | |
2016-04-15 | erts: Add 'spawned' trace event to 'procs' trace flag | Lukas Larsson | |
OTP-13497 This trace event is triggered when a process is created from the process that is created. |