aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2012-02-23erts: Use correct macro for "yield-return"Sverker Eriksson
2012-02-23erts: Refactor code loading with renamingSverker 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-23erts: Seize code_ix lock when updating trace settingsSverker 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-23erts: Switch order between code_ix lock and thread blockingSverker 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-21erts: Fix race bug in finish_after_on_loadSverker Eriksson
Must block system before looking up module to not race with other "code upgrader".
2012-02-21erts: Refactor export staging lockSverker Eriksson
Renamed it export_staging_lock and made change it to ordinary mutex.
2012-02-21erts: Activate staged code in a thread safe waySverker 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-21erts: Suspend processes waiting for code_ix lockSverker Eriksson
This will prevent blocking entrire schedulers in the rare case when several processes are racing to load/upgrade/delete/purge code.
2012-02-21erts: Fix compiler warning in inet_drvSverker Eriksson
2012-02-21erts: Fix single threaded fallback in new BIF finish_loading_1Sverker Eriksson
Must "start staging" even when we go single threaded.
2012-02-21erts: Fix type bugSverker Eriksson
2012-02-21Break apart erlang:load_module/2 into two separate BIFsBjö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-21Use magic binaries in erts_prepare_loading() and erts_finish_loading()Björn Gustavsson
2012-02-21erts: Cleanup non-blocking loadSverker Eriksson
2012-02-21erts: Fix memory query for non-blocking module tableSverker Eriksson
2012-02-21erts: Refactor more renaming as "staging"Sverker Eriksson
2012-02-21erts: Fix memory reports from export tableSverker Eriksson
Report sum from all code index.
2012-02-21erts: Fix tracing bug for new non-blocking loadSverker 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-21erts: Fix hipe loading bug for new non-blocking loadSverker Eriksson
2012-02-21erts: Change module range end to be atomicSverker Eriksson
2012-02-21erts: Refactor code_ixSverker Eriksson
Move implementation from beam_load into new file code_ix.c and module.c and make some function inline.
2012-02-21erts: Document code_ix interfaceSverker Eriksson
2012-02-21erts: Fallback to blocking upgrade when tracing is enabledSverker Eriksson
2012-02-21erts: Keep count of number of global traced functions per moduleSverker Eriksson
2012-02-21erts: Move number-of-breakpoint counter from code to Module structSverker 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-21test: Force emulator/test/mtx_SUITE to rebuild NIF librarySverker Eriksson
This will prevent test to fail when switching between opt and debug emulator.
2012-02-21erts: Fix print-bug in lock checker on debug-vmSverker Eriksson
2012-02-21erts: Cleanup code loadingSverker Eriksson
2012-02-21erts: Rename "loader" code_ix as "staging" code_ixSverker 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-21erts: Fix purge of module with loaded nif librarySverker Eriksson
Easy fallback solution that goes single threaded if the module to be purged has a loaded nif lib.
2012-02-21test: Safe purging in code_parallel_load_SUITESverker Eriksson
erlang:purge_module/1 is brutal and causes core dump if old code is still executing, especially on debug VM.
2012-02-21test: many_load_distributed_only_onceBjörn-Egil Dahlberg
2012-02-21test: parallel_load_check_purge_repeatBjörn-Egil Dahlberg
* test trivial non-blocking code loading (smoke test)
2012-02-21erts: Remove secondary_export_tableSverker Eriksson
2012-02-21erts: Refactor new function index_put_entry()Sverker Eriksson
Same as index_put() but returns pointer to entry instead of index integer.
2012-02-21erts: Refactor export entry allocationSverker 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-21erts: Fix case of breakpoint when deleting moduleSverker Eriksson
2012-02-21erts: Cleanup in export.cSverker Eriksson
2012-02-21erts: Rename erts_load_module to erts_preload_moduleSverker Eriksson
As it can only be used at initialization for preloading
2012-02-21erts: Call erts_export_consolidate automaticallySverker Eriksson
Renamed merge_secondary_table and called by export_start_load
2012-02-21First try at non-blocking code loading!Sverker Eriksson
Implemented some code_ix locks and commented calls to erts_smp_thr_progress_block()
2012-02-21beam_ranges: Make ranges safe with multi-scheduling activeBjörn Gustavsson
2012-02-21BEAM loader: Break out handling of ranges into beam_ranges.cBjö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-21erts: Remove unused erts_put_fun_entry2 declarationSverker Eriksson
2012-02-21erts: Add abort logic to export tablesSverker Eriksson
2012-02-21erts: Fix code_ix handling and locking for some more bifsSverker Eriksson
2012-02-21erts: Multiple module tables using code_ixSverker Eriksson
2012-02-21erts: Use several addresses in each ExportSverker Eriksson
2012-02-21erts: Multiple export tab's using code_ixSverker Eriksson
Still blocking code loading
2012-02-21erts: First stab at code_ix interface and beam_catches using itSverker Eriksson
Code loading still blocking