aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2012-03-09Merge branch 'sverk/threadsafe-code-loading'Sverker Eriksson
* sverk/threadsafe-code-loading: (59 commits) erts: Fix assert failure when code_server exits "during" commit erts: Fix memory leak in code loading erts: Adapt gdb etp-command for new beam_ranges erts: Set correct default tracing when loading code erts: Fix faulty assert in non-smp debug vm erts: Use correct macro for "yield-return" erts: Refactor code loading with renaming erts: Seize code_ix lock when updating trace settings erts: Switch order between code_ix lock and thread blocking erts: Fix race bug in finish_after_on_load erts: Refactor export staging lock erts: Activate staged code in a thread safe way erts: Suspend processes waiting for code_ix lock erts: Fix compiler warning in inet_drv erts: Fix single threaded fallback in new BIF finish_loading_1 erts: Fix type bug Break apart erlang:load_module/2 into two separate BIFs Use magic binaries in erts_prepare_loading() and erts_finish_loading() erts: Cleanup non-blocking load erts: Fix memory query for non-blocking module table ... OTP-9974
2012-03-09Merge branch 'maint'Lukas Larsson
* maint: Add filter for ssh undefined function calls
2012-03-09Merge branch 'lukas/system/ssh_undef_function' into maintLukas Larsson
* lukas/system/ssh_undef_function: Add filter for ssh undefined function calls
2012-03-07erts: Fix assert failure when code_server exits "during" commitSverker Eriksson
Simplify by removing the support of abort_staging after end_staging.
2012-03-06erts: Fix memory leak in code loadingSverker Eriksson
All magic binaries returned by prepare_loading/2 was leaking. prepare_loading/2 left the reference count as 2 of the magic binary when it should be 1 (only owned by the returned term).
2012-03-05Merge branch 'maint'Sverker Eriksson
2012-03-05erts: Fix gdb command etp-ets-tabledumpSverker Eriksson
2012-02-29Merge branch 'maint'Rickard Green
* maint: Fix implementation with ddrb barriers
2012-02-29Merge branch 'rickard/barriers/OTP-9922' into maintRickard Green
* rickard/barriers/OTP-9922: Fix implementation with ddrb barriers
2012-02-24erts: Adapt gdb etp-command for new beam_rangesSverker Eriksson
2012-02-24erts: Set correct default tracing when loading codeSverker Eriksson
Default trace (on_load) was lost in commit 64bcf5db63d73fe when load_module/2 was split.
2012-02-24erts: Fix faulty assert in non-smp debug vmSverker Eriksson
"is_blocking" always returns true on non-smp
2012-02-23erts: Use correct macro for "yield-return"Sverker Eriksson
2012-02-23Merge branch 'sverk/hipe-debug-cherries'Sverker Eriksson
* sverk/hipe-debug-cherries: hipe,erts: Add DEBUG support with MFA's in stack descriptors hipe: Fix address_to_mfa in hipe loader hipe,erts: Debug support for native call trace erts: Make erts_printf accept internal match states
2012-02-23Merge branch 'maint'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-21Fix implementation with ddrb barriersRickard Green
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.