aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2012-08-15Merge branch 'maint'Sverker Eriksson
2012-08-14Fix corrupted binaries in compressed ETS tablesSverker Eriksson
2012-08-14Make ETS compile with #define DEBUG_CLONESverker Eriksson
2012-08-03Merge branch 'rickard/tab-unref-thr-prgr/OTP-10167'Rickard Green
* rickard/tab-unref-thr-prgr/OTP-10167: Use thread progress instead of scheduling misc aux work were possible Conflicts: erts/emulator/beam/erl_process.h
2012-08-03Merge branch 'rickard/proc-sched/OTP-9892'Rickard Green
* rickard/proc-sched/OTP-9892: Read message queue lengths while having lock Remove development debug code Fix bug scheduling free processes Conflicts: erts/emulator/beam/erl_message.c
2012-08-02Use thread progress instead of scheduling misc aux work were possibleRickard Green
Functionality for scheduling operations at thread progress later has been introduced. Deallocation of ETS table structures were previously done by scheduling misc aux work. Deallocation of process structures (not released yet) was also implemented this way. Instead of using the misc aux work functionality these implementation now use the newly introduced functionality for scheduling operations at thread progress later. By using this new functionaliy we reduce the amount of memory allocation/deallocation operations needed.
2012-08-02Merge 'rickard/thr-prgr-use/OTP-10116' and 'rickard/proc-sched/OTP-9892'Rickard Green
Conflicts: erts/emulator/beam/erl_process.c
2012-08-02Read message queue lengths while having lockRickard Green
2012-08-02Remove development debug codeRickard Green
2012-08-02Fix bug scheduling free processesRickard Green
2012-07-31Merge branch 'maint'Rickard Green
* maint: Use static allocation of process lock queues Conflicts: erts/emulator/beam/erl_process_lock.c erts/emulator/beam/erl_process_lock.h
2012-07-31Merge branch 'rickard/proc-lock-queues/OTP-10163' into maintRickard Green
* rickard/proc-lock-queues/OTP-10163: Use static allocation of process lock queues
2012-07-31Merge branch 'maint'Rickard Green
* maint: Improve the enqueue operation of delayed dealloc Implement delayed aux work wake up Conflicts: erts/emulator/beam/erl_alloc_util.c erts/emulator/beam/erl_process.h
2012-07-31Merge branch 'rickard/dealloc/OTP-10162' into maintRickard Green
* rickard/dealloc/OTP-10162: Improve the enqueue operation of delayed dealloc Implement delayed aux work wake up
2012-07-31Use static allocation of process lock queuesRickard Green
By using statically allocated lock queues there is no longer any need for locking corresponding pix lock when process locks have been transferred after a wait. This costs us 3 words extra in process structure, but improves performance during contention.
2012-07-31Improve the enqueue operation of delayed deallocRickard Green
The enqueue operation have been re-written to behave better during heavy contention by spreading writes over multiple locations. This enqueue operation also take advantage of the delayed aux work wake up functionality and can by this omit one memory barrier.
2012-07-31Implement delayed aux work wake upRickard Green
By using a delayed aux work wake up approach, a memory barrier can be omitted in the delayed dealloc enqueue operation. The amount of operations, on the potentially contended, wake up structure is also reduced.
2012-07-27Merge branch 'rickard/fix-warnings/master'Rickard Green
* rickard/fix-warnings/master: Only use "gcc optimizer hack" when needed Silence warnings
2012-07-25Merge branch 'egil/r16/remove-vxworks-support/OTP-10146'Björn-Egil Dahlberg
* egil/r16/remove-vxworks-support/OTP-10146: (30 commits) erts: Update doc to reflect VxWorks removal erts: Remove VxWorks from documentation Update preloaded erl_prim_loader and prim_file snmp: Remove VxWorks megaco: Remove VxWorks diameter: Remove VxWorks mnesia: Remove VxWorks typer: Remove VxWorks ssh: Remove VxWorks inets: Remove VxWorks hipe: Remove VxWorks cosFileTransfer: Remove VxWorks asn1: Remove VxWorks orber: Remove VxWorks os_mon: Remove VxWorks runtime_tools: Remove VxWorks test_server: Remove VxWorks references in doc test_server: Remove VxWorks stdlib: Remove VxWorks kernel: Remove VxWorks from tests ... Conflicts: erts/emulator/test/Makefile
2012-07-19erts: Remove VxWorks from allocatorsBjörn-Egil Dahlberg
2012-07-19erts: Remove VxWorks from driversBjörn-Egil Dahlberg
2012-07-19Merge branch 'lukas/add-howto-folder/OTP-10154'Lukas Larsson
* lukas/add-howto-folder/OTP-10154: Add a testing HOWTO Move README and INSTALL to HOWTO folder Fix missing accounting for outbound distribution bytes.
2012-07-19Move README and INSTALL to HOWTO folderLukas Larsson
2012-07-18erts: Remove VxWorks support from beamBjörn-Egil Dahlberg
2012-07-18Fix missing accounting for outbound distribution bytes.Rick Reed
2012-07-11Merge branch 'lukas/erts/fix_enable_proc_lcnt'Lukas Larsson
OTP-10051 * lukas/erts/fix_enable_proc_lcnt: Use process macro instead of array
2012-07-06Merge branch 'maint'Henrik Nord
2012-07-06Merge branch 'sz/dtrace-message-send-fix' into maintHenrik Nord
* sz/dtrace-message-send-fix: DTrace bug in message-send OTP-10142
2012-07-05Merge branch 'sverk/missing-distr-stats'Sverker Eriksson
* sverk/missing-distr-stats: Fix missing accounting for outbound distribution bytes.
2012-07-05Merge branch 'sverk/opt-inet-tcp-ctrl-proc'Sverker Eriksson
* sverk/opt-inet-tcp-ctrl-proc: Optimize inet:tcp_controlling_process erts: Update obsolete HARD_DEBUG code
2012-07-02Use process macro instead of arrayLukas Larsson
2012-06-25Don't go to single-scheduler mode when managing breakpointsBjörn Gustavsson
Calls to erlang:set_trace_pattern/3 will no longer block all other schedulers. We will still go to single-scheduler mode when new code is loaded for a module that is traced, or when loading code when there is a default trace pattern set. That is not impossible to fix, but that requires much closer cooperation between tracing BIFs and the loader BIFs.
2012-06-25Refactor the code for managing breakpointsBjörn Gustavsson
To allow us to manage breakpoints without going to single-scheduler mode, we will need to update the breakpoints in several stages with memory barriers in between each stage. Prepare for that by splitting up the breakpoint setting and clearing functions into several smaller functions.
2012-06-25Change the data structures for breakpointsBjörn Gustavsson
Change the data structures for breakpoints to make it possible (in a future commit) to manage breakpoints without taking down the system to single-scheduling mode. The current "breakpoint wheel" data structure (a circular, double-linked list of breakpoints) was invented before the SMP emulator. To support it in the SMP emulator, there is essentially one breakpoint wheel per scheduler. As more breakpoint types have been added, the implementation has become messy and hard to understand and maintain. Therefore, the time for a rewrite has come. Use one struct to hold all breakpoint data for a breakpoint in a function. Use a flag field to indicate what different type of break actions that are enabled.
2012-06-25Make the lock check in erts_is_code_ix_locked() strongerBjörn Gustavsson
Make sure that the the currently running thread has the lock, not only that that some thread has the lock.
2012-06-21Fix missing accounting for outbound distribution bytes.Rick Reed
2012-06-20Merge branch 'maint'Rickard Green
* maint: Fix faulty use of thread progress in handle_aux_work() Conflicts: erts/emulator/beam/erl_process.c Needed modifications: erts/emulator/beam/beam_bif_load.c
2012-06-20Merge branch 'rickard/thr-prgr-use/OTP-10116' into maintRickard Green
* rickard/thr-prgr-use/OTP-10116: Fix faulty use of thread progress in handle_aux_work()
2012-06-20erts: Update obsolete HARD_DEBUG codeSverker Eriksson
2012-06-18Fix faulty use of thread progress in handle_aux_work()Rickard Green
As an optimization old thread progress data was kept and used in handle_aux_work() in erl_process.c. This could cause memory to be deallocated at a later time than intended, which is quite harmless. This has, however, now been fixed.
2012-06-04Merge branch 'maint'Lukas Larsson
* maint: Remove stale code for hybrid heap and incremental GC Remove the hipe_bifs:show_message_area/0 BIF Remove support for erlang:system_info(global_heaps_size) Remove the erlang:garbage_collect_message_area/0 BIF Remove workarounds for hybrid and shared heaps in test suites Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/erl_message.c erts/emulator/beam/erl_process.c erts/emulator/beam/erl_process.h erts/emulator/hipe/hipe_bif2.tab lib/hipe/cerl/erl_bif_types.erl
2012-05-11DTrace bug in message-sendzheng siyao
dtrace doesn't print sender pid and receiver pid in message related probe correctly, it truncates pid string to 7 characters on 64bit platform(or 3 characters on 32bit platform). The dtrace related code did not set the string length correctly, it sets the string length to the length of a pointer rather than the buffer length.
2012-05-10Remove stale code for hybrid heap and incremental GCBjörn Gustavsson
The hybrid heap emulator was last working in the non-SMP R11B run-time system. When the constant pools were introduced in R12B, the hybrid heap emulator was not updated to handle them. At this point, the harm from reduced readability of the code is greater than any potential usefulness of keeping the code.
2012-05-10Remove support for erlang:system_info(global_heaps_size)Björn Gustavsson
2012-05-10Remove the erlang:garbage_collect_message_area/0 BIFBjörn Gustavsson
2012-05-08Only use "gcc optimizer hack" when neededRickard Green
2012-05-08Silence warningsRickard Green
2012-04-30Merge branch 'maint'Björn-Egil Dahlberg
2012-04-30Merge branch 'egil/fix-port-io-statistics/OTP-10073' into maintBjörn-Egil Dahlberg
* egil/fix-port-io-statistics/OTP-10073: erts: Add port-I/O statistics for active once/true
2012-04-27Merge branch 'maint'Björn-Egil Dahlberg