aboutsummaryrefslogtreecommitdiffstats
path: root/erts/etc/unix/etp-commands.in
AgeCommit message (Collapse)Author
2017-05-23Merge branch 'lukas/erts/etp-processes-ports-optimization'Lukas Larsson
* lukas/erts/etp-processes-ports-optimization: erts: Optimize etp-processes and etp-ports
2017-05-22erts: Optimize etp-processes and etp-portsLukas Larsson
Not calculating the max, table and invalid addresses each loop speeds up iterating through the processes list by about 5x.
2017-05-19Make statistics/1 aware of dirty run-queues and tasksRickard Green
2017-05-04Update copyright yearRaimo Niskanen
2017-04-18Minimum timeout position in each timer wheelRickard Green
Minimum known timeout position is saved in bot far and near wheel. This information is used to avoid scanning from current position in the cases were we know the minimum timeout position.
2017-02-14Fixed typos in ertsAndrew Dryga
2017-02-06Implement magic referencesRickard Green
Magic references are *intentionally* indistinguishable from ordinary references for the Erlang software. Magic references do not change the language, and are intended as a pure runtime internal optimization. An ordinary reference is typically used as a key in some table. A magic reference has a direct pointer to a reference counted magic binary. This makes it possible to implement various things without having to do lookups in a table, but instead access the data directly. Besides very fast lookups this can also improve scalability by removing a potentially contended table. A couple of examples of planned future usage of magic references are ETS table identifiers, and BIF timer identifiers. Besides future optimizations using magic references it should also be possible to replace the exposed magic binary cludge with magic references. That is, magic binaries that are exposed as empty binaries to the Erlang software.
2017-01-13Improve etp-commandsRickard Green
2017-01-13Switch between scheduler types when multi-scheduling is blockedRickard Green
2016-11-23Merge branch 'maint'Rickard Green
* maint: Update etp-commands for dirty schedulers Fix scheduling of system tasks on processes executing dirty Fix call time tracing with dirty schedulers Fix send of exit signal to process executing dirty Fix dirty scheduler process priority Fix alloc-util hard-debug Silence debug warning when no beam jump table is used with dirty schedulers Fix check_process_code() when NifExport is in use Fix GC when NifExport is in use Fix saving of original arguments when rescheduling via NifExport Conflicts: erts/emulator/beam/beam_bif_load.c erts/emulator/beam/erl_nif.c
2016-11-23Merge branch 'rickard/dirty-scheduling-fixes' into maintRickard Green
OTP-14051 * rickard/dirty-scheduling-fixes: Update etp-commands for dirty schedulers Fix scheduling of system tasks on processes executing dirty Fix call time tracing with dirty schedulers Fix send of exit signal to process executing dirty Fix dirty scheduler process priority Fix alloc-util hard-debug Silence debug warning when no beam jump table is used with dirty schedulers Conflicts: erts/etc/unix/etp-commands.in
2016-11-22Update etp-commands for dirty schedulersRickard Green
2016-10-18Merge branch 'maint'Lukas Larsson
2016-10-18erts: Add etp-disasm gdb macroLukas Larsson
2016-10-12erts: Improve printouts for some etp commandsLukas Larsson
Specifically etp-stacktrace/stackdump/process-info have been changed
2016-10-12erts: Refactor out func_info into structLukas Larsson
This commit adds two new structs to be used to represent erlang code in erts. ErtsCodeInfo is used to describe the i_func_info header that is part of all Export entries and the prelude of each function. This replaces all the BeamInstr * that were previously used to point to these locations. After this change the code should never use BeamInstr * with offsets to figure out different parts of the func_info header. ErtsCodeMFA is a struct that is used to descripe a MFA in code. It is used within ErtsCodeInfo and also in Process->current. All function that previously took Eterm * or BeamInstr * to identify a MFA now use the ErtsCodeMFA or ErtsCodeInfo where appropriate. The code has been tested to work when adding a new field to the ErtsCodeInfo struct, but some updates are needed in ops.tab to make it work.
2016-06-22erts: Fix etp-carrier-blocks for non smpSverker Eriksson
2016-06-14erts: Make etp-*-info take any value as inputLukas Larsson
2016-06-14erts: Add etp commands to re-compile erlangLukas Larsson
2016-05-31Update process state flags in etp-commandsRickard Green
2016-04-13Merge branch 'henrik/update-copyrightyear'Henrik Nord
* henrik/update-copyrightyear: update copyright-year
2016-03-24erts: Fix etp pid print on big endianLukas Larsson
2016-03-15update copyright-yearHenrik Nord
2015-06-24erts: Remove halfword etp-commandsBjörn-Egil Dahlberg
2015-06-18Change license text to APLv2Bruce Yinhe
2015-05-18erts: Fix typo in etp-carrier-blocksSverker Eriksson
2015-04-14erts: Add map support to gdb etp commandSverker Eriksson
2015-04-10erts: Add etp_the_non_valueSverker Eriksson
for a correct (non)value regardless of build type.
2014-12-18Merge branch 'maint'Bruce Yinhe
2014-12-02Replaced "Endianess" with "Endianness" everywhereDavid Haguenauer
2014-10-29Merge branch 'maint'Sverker Eriksson
2014-10-29Merge branch 'sverk/etp-check-beam-ranges' into maintSverker Eriksson
* sverk/etp-check-beam-ranges: erts: Add gdb command etp-check-beam-ranges
2014-10-29erts: Add gdb command etp-check-beam-rangesSverker Eriksson
2014-10-02Merge branch 'maint'Sverker Eriksson
2014-09-17Merge branch 'sverk/bin-alloc-refactor'Sverker Eriksson
* sverk/bin-alloc-refactor: erts: Fix gdb command etp-carrier-blocks for 32-bit erts: Refactor binary allocation interface to also initialize Binary
2014-09-17erts: Add gdb command etp-address-to-beam-opcodeSverker Eriksson
2014-09-05erts: Fix gdb command etp-carrier-blocks for 32-bitSverker Eriksson
2014-06-12Merge branch 'maint'Sverker Eriksson
2014-06-12Merge branch 'sverk/etp-alloc-stats' into maintSverker Eriksson
* sverk/etp-alloc-stats: erts: Fix documentation for no of default allocator instances erts: Add etp-alloc-stats and etp-alloc-instances
2014-06-12erts: Add etp-alloc-stats and etp-alloc-instancesSverker Eriksson
2014-06-03erts: Fixup for gdb command etp-cp-1Sverker Eriksson
fdb350a4 increased MI_FUNCTIONS to 13
2014-05-28erts: Fix bug in gdb function etp-cp-1Sverker Eriksson
2014-05-12erts: Fix bug in etp-block commandsSverker Eriksson
2014-05-06Merge branch 'sverk/ets-delete-unfix-race/OTP-11892' into maintSverker Eriksson
* sverk/ets-delete-unfix-race/OTP-11892: Fix race between ETS table deletion and unfixation erts: Add etp commands for alloc_util block and carrier inspection
2014-04-16erts: Add etp commands for alloc_util block and carrier inspectionSverker Eriksson
etp-block etp-block2mbc etp-carrier-blocks
2014-03-28erts: Add etp-lc-dump and etp-ppc-stacktrace macroLukas Larsson
2014-02-24Added support for ENEA OSELukas Larsson
This port has support for both non-smp and smp. It contains a new way to do io checking in which erts_poll_wait receives the payload of the polled entity. This has implications for all linked-in drivers.
2014-01-09erts: Update etp-commands with heap-dumpBjörn-Egil Dahlberg
2013-11-18Functionality for disabling garbage collectionRickard Green
Being able to disable garbage collection over context switches vastly simplifies implementation of yielding native code that builds large or complex data structures on the heap. This since the heap can be left in an inconsistent state over the context switch.
2013-11-18Execution of system tasks in context of another processRickard Green
A process requesting a system task to be executed in the context of another process will be notified by a message when the task has executed. This message will be on the form: {RequestType, RequestId, Pid, Result}. A process requesting a system task to be executed can set priority on the system task. The requester typically set the same priority on the task as its own process priority, and by this avoiding priority inversion. A request for execution of a system task is made by calling the statically linked in NIF erts_internal:request_system_task(Pid, Prio, Request). This is an undocumented ERTS internal function that should remain so. It should *only* be called from BIF implementations. Currently defined system tasks are: * garbage_collect * check_process_code Further system tasks can and will be implemented in the future. The erlang:garbage_collect/[1,2] and erlang:check_process_code/[2,3] BIFs are now implemented using system tasks. Both the 'garbage_collect' and the 'check_process_code' operations perform or may perform garbage_collections. By doing these via the system task functionality all garbage collect operations in the system will be performed solely in the context of the process being garbage collected. This makes it possible to later implement functionality for disabling garbage collection of a process over context switches. Newly introduced BIFs: * erlang:garbage_collect/2 - The new second argument is an option list. Introduced option: * {async, RequestId} - making it possible for users to issue asynchronous garbage collect requests. * erlang:check_process_code/3 - The new third argument is an option list. Introduced options: * {async, RequestId} - making it possible for users to issue asynchronous check process code requests. * {allow_gc, boolean()} - making it possible to issue requests that aren't allowed to garbage collect (operation will abort if gc should be needed). These options have been introduced as a preparation for parallelization of check_process_code operations when the code_server is about to purge a module.