Age | Commit message (Collapse) | Author | |
---|---|---|---|
2012-02-21 | erts: Fix race bug in finish_after_on_load | Sverker Eriksson | |
Must block system before looking up module to not race with other "code upgrader". | |||
2012-02-21 | erts: Refactor export staging lock | Sverker Eriksson | |
Renamed it export_staging_lock and made change it to ordinary mutex. | |||
2012-02-21 | erts: Activate staged code in a thread safe way | Sverker Eriksson | |
Activation of staged code is scheduled for a later moment when all schedulers have done a full memory barrier. This allow them to read active code index while executing without any memory barriers at all. | |||
2012-02-21 | erts: Suspend processes waiting for code_ix lock | Sverker Eriksson | |
This will prevent blocking entrire schedulers in the rare case when several processes are racing to load/upgrade/delete/purge code. | |||
2012-02-21 | erts: Fix compiler warning in inet_drv | Sverker Eriksson | |
2012-02-21 | erts: Fix single threaded fallback in new BIF finish_loading_1 | Sverker Eriksson | |
Must "start staging" even when we go single threaded. | |||
2012-02-21 | erts: Fix type bug | Sverker Eriksson | |
2012-02-21 | Break apart erlang:load_module/2 into two separate BIFs | Björn Gustavsson | |
Introduce two new BIFs, erlang:prepare_loading/2 and erlang:finish_loading/1, and re-implement erlang:load_module/2 in Erlang code. We have two reasons for doing this: * To facilitate suspending a process if another process is already doing code loading. * In the future, we can implement parallel and atomic loading of several modules. Atomic loading works except for modules with on_load handlers. Because of that issue, erlang:finish_loading/2 will currently only accept a list with a single magic binary. | |||
2012-02-21 | Use magic binaries in erts_prepare_loading() and erts_finish_loading() | Björn Gustavsson | |
2012-02-21 | erts: Cleanup non-blocking load | Sverker Eriksson | |
2012-02-21 | erts: Fix memory query for non-blocking module table | Sverker Eriksson | |
2012-02-21 | erts: Refactor more renaming as "staging" | Sverker Eriksson | |
2012-02-21 | erts: Fix memory reports from export table | Sverker Eriksson | |
Report sum from all code index. | |||
2012-02-21 | erts: Fix tracing bug for new non-blocking load | Sverker Eriksson | |
Made on_load-tracing always set after commit on active code_ix when system is still blocked. Bug caused cprof_SUITE:on_load to fail. | |||
2012-02-21 | erts: Fix hipe loading bug for new non-blocking load | Sverker Eriksson | |
2012-02-21 | erts: Change module range end to be atomic | Sverker Eriksson | |
2012-02-21 | erts: Refactor code_ix | Sverker Eriksson | |
Move implementation from beam_load into new file code_ix.c and module.c and make some function inline. | |||
2012-02-21 | erts: Document code_ix interface | Sverker Eriksson | |
2012-02-21 | erts: Fallback to blocking upgrade when tracing is enabled | Sverker Eriksson | |
2012-02-21 | erts: Keep count of number of global traced functions per module | Sverker Eriksson | |
2012-02-21 | erts: Move number-of-breakpoint counter from code to Module struct | Sverker Eriksson | |
The is a refactoring in preparation to add a counter in Module struct for export entry tracing. It is nicer if the two are kept together. | |||
2012-02-21 | test: Force emulator/test/mtx_SUITE to rebuild NIF library | Sverker Eriksson | |
This will prevent test to fail when switching between opt and debug emulator. | |||
2012-02-21 | erts: Fix print-bug in lock checker on debug-vm | Sverker Eriksson | |
2012-02-21 | erts: Cleanup code loading | Sverker Eriksson | |
2012-02-21 | erts: Rename "loader" code_ix as "staging" code_ix | Sverker Eriksson | |
Staging is a better and more general name as does not necessary need to involve code loading (can be deletion, tracing, etc). | |||
2012-02-21 | erts: Fix purge of module with loaded nif library | Sverker Eriksson | |
Easy fallback solution that goes single threaded if the module to be purged has a loaded nif lib. | |||
2012-02-21 | test: Safe purging in code_parallel_load_SUITE | Sverker Eriksson | |
erlang:purge_module/1 is brutal and causes core dump if old code is still executing, especially on debug VM. | |||
2012-02-21 | test: many_load_distributed_only_once | Björn-Egil Dahlberg | |
2012-02-21 | test: parallel_load_check_purge_repeat | Björn-Egil Dahlberg | |
* test trivial non-blocking code loading (smoke test) | |||
2012-02-21 | erts: Remove secondary_export_table | Sverker Eriksson | |
2012-02-21 | erts: Refactor new function index_put_entry() | Sverker Eriksson | |
Same as index_put() but returns pointer to entry instead of index integer. | |||
2012-02-21 | erts: Refactor export entry allocation | Sverker Eriksson | |
Use a more general approach that does not assume in which order the table entries in a blob are allocated and freed. | |||
2012-02-21 | erts: Fix case of breakpoint when deleting module | Sverker Eriksson | |
2012-02-21 | erts: Cleanup in export.c | Sverker Eriksson | |
2012-02-21 | erts: Rename erts_load_module to erts_preload_module | Sverker Eriksson | |
As it can only be used at initialization for preloading | |||
2012-02-21 | erts: Call erts_export_consolidate automatically | Sverker Eriksson | |
Renamed merge_secondary_table and called by export_start_load | |||
2012-02-21 | First try at non-blocking code loading! | Sverker Eriksson | |
Implemented some code_ix locks and commented calls to erts_smp_thr_progress_block() | |||
2012-02-21 | beam_ranges: Make ranges safe with multi-scheduling active | Björn Gustavsson | |
2012-02-21 | BEAM loader: Break out handling of ranges into beam_ranges.c | Björn Gustavsson | |
Having the entire implementation of range handling (address table) in one source file will help when we'll need to update the ranges without stopping all schedulers in the next commit. | |||
2012-02-21 | erts: Remove unused erts_put_fun_entry2 declaration | Sverker Eriksson | |
2012-02-21 | erts: Add abort logic to export tables | Sverker Eriksson | |
2012-02-21 | erts: Fix code_ix handling and locking for some more bifs | Sverker Eriksson | |
2012-02-21 | erts: Multiple module tables using code_ix | Sverker Eriksson | |
2012-02-21 | erts: Use several addresses in each Export | Sverker Eriksson | |
2012-02-21 | erts: Multiple export tab's using code_ix | Sverker Eriksson | |
Still blocking code loading | |||
2012-02-21 | erts: First stab at code_ix interface and beam_catches using it | Sverker Eriksson | |
Code loading still blocking | |||
2012-02-21 | erts: First refactor step of export table | Sverker Eriksson | |
2012-02-21 | erts: Make use of def_lambdas optimization during loading | Sverker Eriksson | |
The default array was defined but not used. | |||
2012-02-21 | erts: Refactor new helper function erts_init_trap_export | Sverker Eriksson | |
2012-02-21 | erts: Refactor Module struct | Sverker Eriksson | |