aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2016-10-13Add system_info(atom_limit)Gabriele Santomaggio
Add system_info(atom_limit) to provide a way to retrieve the maximum number of atoms allowed. Add tests and documentation for it too. Also split system_info_SUITE:start_node/2 to start_node_ets/2 and start_node_atm/2 to avoid code duplication.
2016-10-12Merge branch 'lukas/erts/beam_func_info_struct/OTP-13821'Lukas Larsson
* lukas/erts/beam_func_info_struct/OTP-13821: erts: Fix some dtrace related compile issues erts: Refactor rename Export.code[] to Export.beam[] erts: Improve printouts for some etp commands erts: Fix erts_debug:df with new func_info erts: Refactor find_function_from_pc to return MFA erts: Refactor out func_info into struct
2016-10-12erts: Add strict size assert to fix allocSverker Eriksson
and remove outdated min size adjustment. The is similar to lost commit 31bc414dc9639ccf94f9011ed32 except we now assume and assert strict size equality.
2016-10-12erts: Fix some dtrace related compile issuesLukas Larsson
2016-10-12erts: Refactor rename Export.code[] to Export.beam[]Sverker Eriksson
to avoid scary merge errors.
2016-10-12erts: Fix erts_debug:df with new func_infoLukas Larsson
2016-10-12erts: Refactor find_function_from_pc to return MFALukas Larsson
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-10-10erts: Refactor process dict hash pre-calculationSverker Eriksson
with new function erts_pd_make_hx()
2016-10-10Use atom value as hash value in process dictionaryVictor Ren
In the origin implementation, the hash value of atom term is retrieved from the atom table. Reading the atom table is expensive since it is in memory and leads to more cache missing. The size of a process dictionary is usually small. The atom value (the index) is unique and can be hash value for it. Using the atom value directly should be more efficient.
2016-10-10erts: Remove unused hipe_bifs:code_sizeSverker Eriksson
and hipe_bifs:update_code_size
2016-10-10erts: Improve hipe load/upgrade/purge machinerySverker Eriksson
A step toward better integration of hipe load and purge Highlights: * code_server no longer needs to call hipe_unified_loader:post_beam_load/1 Instead new internal function hipe_redirect_to_module() is called by loading BIFs to patch native call sites if needed. * hipe_purge_module() is called by erts_internal:purge_module/2 to purge any native code. * struct hipe_mfa_info redesigned and only used for exported functions that are called from or implemented by native code. A list of native call sites (struct hipe_ref) are kept for each hipe_mfa_info. * struct hipe_sdesc used by hipe_find_mfa_from_ra() to build native stack traces.
2016-10-10erts: Refactor module_start_stagingSverker Eriksson
with a copy_module() function.
2016-10-10erts: Refactor hipe_sdesc.summary into bit fieldsSverker Eriksson
2016-10-10erts: Refactor rename struct hipe_sdescSverker Eriksson
2016-10-10erts: Refactor rename structs hipe_mfa and hipe_refSverker Eriksson
2016-10-05Merge branch 'master' into sverker/master/load_nif-print-init-errorSverker Eriksson
2016-10-04erts: Print error code from failed NIF load/upgrade/reloadSverker Eriksson
in Text part of error tuple, like {error, {load, "Library load-call unsuccessful (606)}}
2016-10-04erts: Do tracer liveness check on current tracerLukas Larsson
This fixes a fault introduced in 19.0 where an invalid tracer would block setting of a new tracer on a process.
2016-10-03Merge branch 'maint'Lukas Larsson
2016-09-29Fix minor soft purge bugRickard Green
A process calling a fun from a module currently being soft-purged could race with failure of the soft purge. When this happened the call triggered loading of the module which erroneously would load new code for the module in the case no new generation was currently loaded.
2016-09-27erts: Rename __errno in order to avoid conflict on openbsdLukas Larsson
2016-09-26Fix initialization dependencies between time, lock-check and lcntRickard Green
2016-09-23Merge branch 'sverker/remove-nif-reload/OTP-13908'Sverker Eriksson
* sverker/remove-nif-reload: erts: Cuddle nif_SUITE:consume_timeslice erts: Remove old doc note for erlang:load_nif erts: Remove deprecated nif 'reload' feature erts: Fix trace_nif_SUITE to load nif lib only once
2016-09-22Merge branch 'sverker/include-erl_nif/PR-1171'Sverker Eriksson
* sverker/include-erl_nif/PR-1171: Use more correct delimiters for erl_nif.h include
2016-09-21Merge branch 'sverker/ets-load-factor/OTP-13903'Sverker Eriksson
* sverker/ets-load-factor: erts: Unify reduction count for ets:select stdlib: Cuddle ets_SUITE for valgrind stdlib: Fix ets_SUITE:smp_select_delete erts: Tweak ets grow/shrink to keep up at contention erts: Fix ets_SUITE:memory erts: Suppress failed ETS memory checks erts: Reduce ets hash load factor erts: Enable a smaller first hash segment for ets erts: Redesign ets with separate segment tables erts: Remove unnecessary access of 'is_resizing' erts: Add ErtsSizeofMember macro erts: Add ErtsContainerStruct_ for array members
2016-09-19Use more correct delimiters for erl_nif.h includeTuncer Ayaz
Anywhere but the beam sources we shouldn't #include "erl_nif.h", because what "erl_nif.h" does is: (1) fail to find it outside of -I dirs, (2) then treat it as if it was written like <erl_nif.h>. Using <erl_nif.h> skips (1). More information can be found in 6.10.2 of the C standard. Because the examples use "erl_nif.h", NIF projects in the Erlang ecosystem copy this verbatim and make the same mistake.
2016-09-19erts: Unify reduction count for ets:selectSverker Eriksson
to be per object as the other select-variants and not per table slot.
2016-09-19erts: Tweak ets grow/shrink to keep up at contentionSverker Eriksson
2016-09-19erts: Fix ets_SUITE:memorySverker Eriksson
by simply asking for the size of struct ext_segtab
2016-09-19erts: Suppress failed ETS memory checksSverker Eriksson
due to the grow/shrink hysteresis of the meta tables
2016-09-19erts: Reduce ets hash load factorSverker Eriksson
for faster lookup/insert/delete at the expense of about one word per object.
2016-09-19erts: Enable a smaller first hash segment for etsSverker Eriksson
2016-09-19erts: Redesign ets with separate segment tablesSverker Eriksson
* Keep it simple(r) * To prepare for both dynamic sized segments and segtabs
2016-09-19erts: Remove unnecessary access of 'is_resizing'Sverker Eriksson
in tables without write_concurrency and remove it totally #ifndef ERTS_SMP
2016-09-19erts: Add ErtsSizeofMember macroSverker Eriksson
(in case it matters)
2016-09-19Allow for easier enabling of distribution debugLuis Rascao
Also update already deprecated calls.
2016-09-19erts: Cuddle nif_SUITE:consume_timesliceSverker Eriksson
2016-09-19erts: Remove deprecated nif 'reload' featureSverker Eriksson
and instead let erlang:load_nif/2 return {error, {reload, _}} before even trying to load the library if a NIF library has already been successfully loaded for the calling module instance.
2016-09-15Merge branch 'maint'Raimo Niskanen
2016-09-15Merge branch 'raimo/diffserv-socket-option/OTP-13582' into maintRaimo Niskanen
* raimo/diffserv-socket-option/OTP-13582: Tune 'tclass' semantics Implement IPV6_TCLASS
2016-09-15erts: Fix trace_nif_SUITE to load nif lib only onceSverker Eriksson
2016-09-15Merge branch 'maint'Björn Gustavsson
* maint: erts: Add nif_SUITE:t_on_load erts: Improve nif_SUITE:upgrade test Don't leak old code when loading a modules with an on_load function Conflicts: erts/preloaded/ebin/erts_code_purger.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/src/erts_code_purger.erl
2016-09-15Merge branch 'bjorn/erts/on_load/ERL-240/OTP-13893' into maintBjörn Gustavsson
* bjorn/erts/on_load/ERL-240/OTP-13893: erts: Add nif_SUITE:t_on_load erts: Improve nif_SUITE:upgrade test Don't leak old code when loading a modules with an on_load function
2016-09-14Merge branch 'maint'Henrik Nord
Conflicts: OTP_VERSION
2016-09-14Merge branch 'maint-19' into maintHenrik Nord
2016-09-14Ensure we dont use an invalid live heap fragment pointerRickard Green
2016-09-14Update vheap size when moving msgq to heap after GCRickard Green
2016-09-14erts: Add nif_SUITE:t_on_loadSverker Eriksson
2016-09-14erts: Improve nif_SUITE:upgrade testSverker Eriksson
to include upgrade from deleted (old) module instance