Age | Commit message (Collapse) | Author | |
---|---|---|---|
2012-02-23 | erts: Use correct macro for "yield-return" | Sverker Eriksson | |
2012-02-23 | erts: Refactor code loading with renaming | Sverker Eriksson | |
Rename lock_code_ix as seize_code_write_permission. Don't want to call it a "lock" as it can be held between schedulings and different threads and is not managed by lock checker. Rename "activate" staging as "commit" staging. Why not be consistent and use git terminology all the way. | |||
2012-02-23 | erts: Seize code_ix lock when updating trace settings | Sverker Eriksson | |
We want to avoid the race when trace settings are done in the time gap while a code stager process is waiting for thread process before commiting and releasing code_ix lock. | |||
2012-02-23 | erts: Switch order between code_ix lock and thread blocking | Sverker Eriksson | |
Make for simpler code when we just can block threads and continue without having to release code_ix lock and repeat code lookups to avoid race. | |||
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 |