Age | Commit message (Collapse) | Author |
|
|
|
OTP-14152
* rickard/ds-features-20:
Remove experimental disclaimer on dirty schedulers
Scheduler wall time support for dirty schedulers
Always return info from system_info(dirty_[cpu|io]_schedulers*)
Improve etp-commands
Switch between scheduler types when multi-scheduling is blocked
Perform potentially long GC on dirty schedulers if available
Return and exception trace for nif-export scheduled BIFs
Optimize handling of BIF errors
Support for dirty BIFs
Reduction counting on non-tail return
|
|
* maint:
Fix memory leak of temporary heap
|
|
OTP-14135
* rickard/abandoned-heap-bugs:
Fix memory leak of temporary heap
|
|
|
|
|
|
This bug was introduced in previous commit, and has never been
released in an official OTP version.
|
|
|
|
|
|
* maint:
Fix faulty assertion
|
|
* rickard/debug-fix:
Fix faulty assertion
|
|
* maint:
Multi scheduling block bug-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
|
|
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
|
|
|
|
|
|
|
|
Refc on process struct could reach zero while it was still
referred by dirty scheduler
|
|
* maint:
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
Fix check_process_code() when NifExport is in use
Fix GC when NifExport is in use
Fix saving of original arguments when rescheduling via NifExport
Conflicts:
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/erl_nif.c
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
Instead of passing around a file descriptor
use a function pointer to facilitate more advanced
backend write logic such as size limitation or compression.
|
|
|
|
|
|
This commit adds two new structs to be used to represent
erlang code in erts.
ErtsCodeInfo is used to describe the i_func_info header
that is part of all Export entries and the prelude of
each function. This replaces all the BeamInstr * that
were previously used to point to these locations.
After this change the code should never use BeamInstr *
with offsets to figure out different parts of the
func_info header.
ErtsCodeMFA is a struct that is used to descripe a
MFA in code. It is used within ErtsCodeInfo and also
in Process->current.
All function that previously took Eterm * or BeamInstr *
to identify a MFA now use the ErtsCodeMFA or ErtsCodeInfo
where appropriate.
The code has been tested to work when adding a new field to the
ErtsCodeInfo struct, but some updates are needed in ops.tab to
make it work.
|
|
* kvakvs/erts/gc_minor_option/OTP-11695:
erts: Fix req_system_task gc typespec
Fix process_SUITE system_task_blast and no_priority_inversion2
Option to erlang:garbage_collect to request minor (generational) GC
Conflicts:
erts/emulator/beam/erl_process.c
erts/preloaded/src/erts_internal.erl
|
|
* bjorn/erts/help-clang:
Slightly reduce code size of process_main()
|
|
* rickard/remove-old-purge-strategy/OTP-13844:
Avoid selective receive in code-purger process
Remove old purge strategy
Conflicts:
erts/emulator/beam/beam_bif_load.c
erts/emulator/beam/global.h
|
|
clang will generate smaller code if we avoid reassigning the
reg and freg arrays. That can be easily arranged by passing them
as arguments to process_main().
|
|
|
|
* maint:
Fix dirty schedulers build on windows
|
|
* rickard/ds-win-32bit/OTP-13759:
Fix dirty schedulers build on windows
|
|
* maint:
Fix tracing of processes executing dirty
Perform check_process_code while process is executing dirty
Fix purge of code
Reclaim literal area after purge has completed
Separate literal area from code
Conflicts:
erts/emulator/beam/global.h
|
|
* rickard/ds-trace/OTP-13822:
Fix tracing of processes executing dirty
|
|
* rickard/ds-purge-module/OTP-13808:
Perform check_process_code while process is executing dirty
Conflicts:
erts/doc/src/erl_nif.xml
|
|
'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
|
|
|
|
|
|
|
|
|
|
|
|
Note: Minor GC option is a hint, and GC may still decide to run fullsweep.
Test case for major and minor gc on self
Test case for major and minor gs on some other process + async gc test check
docs fix
|
|
|
|
* Literals are not copied between processes for messages or spawn
Increases performance of message sent and processes spawned when
literals are involved in messages or arguments.
|
|
|
|
|
|
This type of statistics is now available through the microstate
accounting API.
|