aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.c
AgeCommit message (Collapse)Author
2011-09-26Merge branch 'dev' into majorLars Thorsen
* dev: [erl_docgen] Missing header level in PDF bookmarks menu Fixed version, release notes and appup in prep for release. Fix lost wakeup of scheduler when enqueuing auxiliary work
2011-09-24Merge branch 'rickard/aux-work-bug/OTP-9567' into devRickard Green
* rickard/aux-work-bug/OTP-9567: Fix lost wakeup of scheduler when enqueuing auxiliary work
2011-09-22Fix lost wakeup of scheduler when enqueuing auxiliary workRickard Green
When auxiliary work was enqueued on a scheduler, the wakeup of the scheduler in order to handle this work could be lost. Wakeups in order to handle ordinary work were not effected by this bug. The bug only effected runtime systems with SMP support as follows: * Deallocation of some ETS data structures could be delayed. * On Linux systems not using the NPTL thread library (typically ancient systems with kernel versions prior to 2.6) and Windows systems, the {Port, {exit_status, Status}} message from a terminating port program could be delayed. That is, it only effected port programs which had been started by passing exit_status as an option to open_port/2.
2011-09-13Merge branch 'dev' into majorBjörn-Egil Dahlberg
* dev: Make sure we have a run_queue
2011-09-12Make sure we have a run_queueBjörn-Egil Dahlberg
* In rare cases we could have no run_queue in schedule misc ops
2011-09-06BEAM: Unify allocation of X and float registersBjörn Gustavsson
In the half-word emulator, smp emulator, and non-smp emulator the X register and float register arrays were allocated in different ways. Always allocate the registers and store the pointers to the allocated register arrays in the scheduler data.
2011-06-14Use new atomic API in runtime systemRickard Green
All uses of the old deprecated atomic API in the runtime system have been replaced with the use of the new atomic API. In a lot of places this change imply a relaxation of memory barriers used.
2011-05-13Merge branch 'rickard/barriers/OTP-9281' into devRickard Green
* rickard/barriers/OTP-9281: Silence warnings Fix build with hipe on amd64 Reduce number of atomic ops Use 32-bit atomic for port snapshot Remove pointless erts_ports_alive variable Ensure quick break Ensure that all rehashing information are seen when done Ensure that stack updates are seen when stack is released Add needed barriers for write_concurrency tables Homogenize memory barriers on atomics
2011-05-13Reduce number of atomic opsRickard Green
Counters for active, and used schedulers have been coalesced in order to reduce the amount of atomic operations needed. Some currently not strictly necessary barriers have also been added in order to be future proof.
2011-05-13Merge branch 'bjorn/fix-warnings/OTP-9250' into devBjörn Gustavsson
* bjorn/fix-warnings/OTP-9250: Eliminate alias warning in gcc 4.5.2 erl_trace: Eliminate alias warning
2011-05-11Merge branch 'rickard/gc-other/OTP-9211' into devRickard Green
* rickard/gc-other/OTP-9211: Fix bad assertions Avoid scheduling of processes being garbage collected by others
2011-05-11Fix bad assertionsRickard Green
2011-05-11Eliminate alias warning in gcc 4.5.2Björn Gustavsson
2011-04-27Merge branch 'sverker/erts_printf-halfword' into devSverker Eriksson
* sverker/erts_printf-halfword: erts_printf %be to print integers of size Eterm Fix use of type BeamInstr in hipe_debug.c Conflicts: erts/emulator/hipe/hipe_debug.c
2011-04-14Merge branch 'maint-r14' into devSverker Eriksson
Conflicts: erts/vsn.mk
2011-04-11Avoid scheduling of processes being garbage collected by othersRickard Green
2011-04-11Fix lost wakeup when process garbage collected by otherRickard Green
2011-04-11Only set status P_WAITING when neededRickard Green
The status of a process was unnecessarily set to waiting before the process was enqueued in a run queue. This bug was harmless up until OTP-R14B01. In OTP-R14B02 erlang:hibernate/3 was fixed (OTP-9125). After the introduction of OTP-9125, the previously harmless process status bug sometimes caused erroneous badarg exceptions from process_info().
2011-04-07Merge branch 'ta/erts-unused-vars' into devHenrik Nord
* ta/erts-unused-vars: erts: Remove unused variables OTP-9205
2011-03-25Merge branch 'pan/system_info_procs_crash/OTP-9140' into devPatrik Nyblom
* pan/system_info_procs_crash/OTP-9140: Make erts_printf %T not recurse on C stack Corrected fd_driver and cleaned up some really old code in win32/sys.[ch]
2011-03-17Make erts_printf %T not recurse on C stackPatrik Nyblom
2011-03-16erts_printf %be to print integers of size EtermSverker Eriksson
Existing %bp to print pointer size integers does not work in halfword emulator to print Eterm size integers.
2011-03-16erts: Remove unused variablesTuncer Ayaz
2011-03-10Merge branch 'sverker/valgrind-new-suppressions' into devSverker Eriksson
* sverker/valgrind-new-suppressions: Make halfword emulator with valgrind target allocate low memory Add erts_alloc_permanent_cache_aligned to supress valgrind
2011-03-08The emulator could get into a state where it didn't check for I/O.Rickard Green
2011-03-03Add erts_alloc_permanent_cache_aligned to supress valgrindSverker Eriksson
Ease the valgrind supression of memory that are permanently allocated and then aligned up to cache line.
2011-03-02Merge branch 'pan/halfword-tmp-heap-fixes/OTP-8332' into devPatrik Nyblom
* pan/halfword-tmp-heap-fixes/OTP-8332: Fix assymetric (Un)UseTmpHeap in erl_process.c Conflicts: erts/emulator/beam/beam_emu.c
2011-02-10Verify that temp allocated memory is releasedRickard Green
2011-01-13Fix assymetric (Un)UseTmpHeap in erl_process.cPatrik Nyblom
Also added ASSERTion in beam_emu.c that the tmp-heap-counter in 0.
2010-12-29Merge branch 'egil/timer-wheel-min-time/OTP-8990' into devBjörn-Egil Dahlberg
* egil/timer-wheel-min-time/OTP-8990: Teach timer-wheel slots to use double linked lists Remove timer-thread implementation Refactor timer interface Teach timer-wheel to keep min time
2010-12-20Refactor timer interfaceBjörn-Egil Dahlberg
2010-12-17Fix missed change of aux_work typeRickard Green
2010-12-17Merge branch 'rickard/ets-tab-delete/OTP-8999' into devRickard Green
* rickard/ets-tab-delete/OTP-8999: Safe deallocation of ETS-table structures Fix rwlock resource leak when hitting system limit Conflicts: erts/emulator/beam/erl_process.h erts/emulator/beam/erl_process.c
2010-12-16Use 32-bit atomics for misc scheduling specific informationRickard Green
2010-12-16Safe deallocation of ETS-table structuresRickard Green
Ensure that all threads potentially accessing an ETS-table have dropped all references to the table before deallocating it.
2010-12-15Use new atomic types in emulatorRickard Green
2010-12-01Merge branch 'rickard/load-balance-wrap/OTP-8950' into devRickard Green
* rickard/load-balance-wrap/OTP-8950: Prevent wrapping of values used during load balancing
2010-12-01Prevent wrapping of values used during load balancingRickard Green
Some integer values used during load balancing could under rare circumstances wrap causing a load unbalance between schedulers.
2010-11-18Merge branch 'rickard/cpu-groups/OTP-8861' into devRickard Green
* rickard/cpu-groups/OTP-8861: Generalize reader groups Move cpu topology functionality into erl_cpu_topology.[ch] Do not use more reader groups for schedulers than schedulers Conflicts: erts/emulator/beam/erl_init.c
2010-11-18Generalize reader groupsRickard Green
Reader groups have been generalized to cpu groups which can be used for implementing reader groups, but also for implementing other functionality in the future.
2010-11-18Move cpu topology functionality into erl_cpu_topology.[ch]Rickard Green
2010-11-18Merge branch 'rickard/sys_schedule_debug' into devRickard Green
* rickard/sys_schedule_debug: Verify that no outstanding I/O exist when checking for I/O in debug build
2010-11-18Verify that no outstanding I/O exist when checking for I/O in debug buildRickard Green
2010-11-18Merge branch 'rickard/sched-misc/OTP-8932' into devRickard Green
* rickard/sched-misc/OTP-8932: Fix erts_schedule_misc_op() so it can be called from arbitrary threads
2010-11-10Fix erts_schedule_misc_op() so it can be called from arbitrary threadsRickard Green
Tracing to port could cause an emulator crash when unloading the trace driver.
2010-10-07Fix newly introduced halfword emulator bugsRickard Green
2010-09-04Add scheduler wakup threshold as command line argumentRickard Green
The scheduler wakeup threshold is now possible to adjust at system boot. For more information see the `+swt' command line argument of `erl'.
2010-09-04Lower the scheduler wakeup thresholdRickard Green
Lower the scheduler wakeup threshold since schedulers aren't spuriously woken as before (since commit 59ee2a593090e7d53c97ceba63cbd300d1b9657e).
2010-09-01Fix crash when calling erlang:system_info(update_cpu_info)Rickard Green
Calling erlang:system_info(update_cpu_info) on platforms where no CPU topology was found could result in a crash if other CPU information had changed. This bug was introduced in the 'dev' branch before R14B (commit 1b273b618002d65159453fdfb9520a9476e4423a). That is, the bug has never been seen in a released runtime system.
2010-08-31Merge branch 'rickard/cpu-info-unbind/8765' into devRickard Green
* rickard/cpu-info-unbind/8765: Fix erroneous error reports about unbind failure