aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2014-02-24Merge branch 'vinoski/ds2'Rickard Green
* vinoski/ds2: further enhancements for dirty schedulers allow optional whitespace in dirty scheduler erl options
2014-02-24further enhancements for dirty schedulersSteve Vinoski
Add support for setting the number of dirty CPU schedulers online via erlang:system_flag/2. Assuming the emulator is built with dirty schedulers enabled, the number of dirty CPU schedulers online may not be less than 1, nor greater than the number of dirty CPU schedulers available, nor greater than the number of normal schedulers online. Dirty CPU scheduler threads that are taken offline via system_flag/2 are suspended. The number of dirty CPU schedulers online may be adjusted independently of the number of normal schedulers online, but if system_flag/2 is used to set the number of normal schedulers online to a value less than the current number of normal schedulers online, the number of dirty CPU schedulers online is decreased proportionally. Likewise, if the number of normal schedulers online is increased, the number of dirty CPU schedulers online is increased proportionally. For example, if 8 normal schedulers and 4 dirty CPU schedulers are online, and system_flag/2 is called to set the number of normal schedulers online to 4, the number of dirty CPU schedulers online is also decreased by half, to 2. Subsequently setting the number of normal schedulers online back to 8 also sets the number of dirty CPU schedulers online back to 4. Augment the system_flag/2 documentation in the erlang man page to explain this relationship between schedulers_online and dirty_cpu_schedulers_online. Also ensure that all dirty CPU and I/O schedulers are suspended when multi-scheduling is blocked via system_flag/2, and brought back online when multi-scheduling is unblocked. Add Rickard Green's rewritten check_enqueue_in_prio_queue() function that inspects process state more thoroughly to determine if to enqueue it and if so on what queue, including dirty queues when appropriate. Make sure dirty NIF jobs do not trigger erlang:system_monitor long_schedule messages. Add more dirty scheduler testing to the scheduler test suite. Remove the erts_no_dirty_cpu_schedulers_online global variable, since it's no longer needed. Execute dirty NIFs on a normal scheduler thread while multi-scheduling blocking is in effect. Evacuate any dirty jobs residing in the dirty run queues over to a normal run queue when multi-scheduling is blocked. Allow dirty schedulers to execute aux work. Set the dirty run queues halt_in_progress flag when halting the normal schedulers. Change dirty scheduler numbers to a structure including both scheduler number and type, either dirty CPU or dirty I/O. Add some assertions to ensure that dirty CPU schedulers operate only on dirty CPU scheduler process flags, and the same for dirty I/O schedulers.
2014-02-24Include more applications in upgrade_SUITESiri Hansen
Many appup files are now corrected and the applications can be included in the upgrade suite.
2014-02-24Start all non-core applications as temporary in upgrade_SUITESiri Hansen
2014-02-24Allow config to point out old releases in upgrade_SUITESiri Hansen
This suite was earlier only possible to run on linux hosts in the OTP test lab. Now a ct config file can be used to point out the two last major releases, e.g. like this: {otp_releases,[{r16,"/path/to/r16/bin/erl"}, {'17',"/path/to/17/bin/erl"}]}. Until OTP 17.0 is really released, the entry named '17' may well be left out, causing the test case upgrade_SUITE:minor to be skipped.
2014-02-24In upgrade_SUITE stop node with init:stop instead of test_server:stop_nodeSiri Hansen
This is only for nodes not started with test_server:start_node.
2014-02-24Skip upgrade_SUITE when running cerlSiri Hansen
2014-02-24Use $INSTALL_SCRIPT instead of $INSTALL_DATA for start[_erl].srcSiri Hansen
To make the result executable as is the case for erl.src.
2014-02-24Add upgrade_SUITE to test upgrade of OTP releaseSiri Hansen
This test creates an OTP package of the previous major release and performs an upgrade to the current release.
2014-02-21Merge branch 'bjorn/erts/restore-cmp-arguments'Björn Gustavsson
* bjorn/erts/restore-cmp-arguments: beam/utils.c: Change back cmp() to only take two arguments
2014-02-21Merge branch 'egil/compiler/maps-get_map_elements'Björn-Egil Dahlberg
* egil/compiler/maps-get_map_elements: compiler: Strengthen Maps compile tests compiler: Remove dead warning erts: Fix erts_debug:disassemble/1 compiler: Transform list of Args to exact literal type compiler: Test Maps aliasing compiler: Use aliasing in map pair patterns compiler: Check literal order in beam_validator erts: Introduce new instructions for combined key fetches compiler: Change map instructions for fetching values
2014-02-21Merge branch 'rickard/otp_version/OTP-11615'Rickard Green
* rickard/otp_version/OTP-11615: Misc adjustments of OTP version
2014-02-20Merge branch 'sverk/nif_SUITE-memleak'Sverker Eriksson
* sverk/nif_SUITE-memleak: erts: Fix memory leak in nif_SUITE:resource_takeover
2014-02-20erts: Fix memory leak in nif_SUITE:resource_takeoverSverker Eriksson
2014-02-20Merge branch 'lukas/erts/dtrace-config-logging/OTP-11622'Lukas Larsson
* lukas/erts/dtrace-config-logging/OTP-11622: dtrace: Update dtrace docs with latest tested platforms erts: Fix dtrace generation on FreeBSD erts: Rewrite dtrace configure test
2014-02-19erts: Fix erts_debug:disassemble/1Björn-Egil Dahlberg
Now handles map instructions correctly.
2014-02-19Merge branch 'sverk/ets-all-race'Sverker Eriksson
OTP-11726 * sverk/ets-all-race: erts: Fix faulty asserts in erts_sys_aligned_alloc/free erts: Fix harmless (?) typo in beam_load.c erts: Fix race bug in ets:all/0
2014-02-19erts: Fix faulty asserts in erts_sys_aligned_alloc/freeSverker Eriksson
2014-02-19erts: Fix harmless (?) typo in beam_load.cSverker Eriksson
2014-02-19erts: Fix race bug in ets:all/0Sverker Eriksson
causing recently created/deleted tables to not be included/excluded.
2014-02-19Merge branch 'sverk/test_server/openbsd-dynlink'Sverker Eriksson
* sverk/test_server/openbsd-dynlink: erts: Skip driver_SUITE:thr_free_drv for VM without threads erts: Fix driver_SUITE:otp_9302 for VM without threads test_server: Fix dynlib link command for openbsd
2014-02-19Merge branch 'sverk/crypto/hmac-context-reuse-bug'Sverker Eriksson
OTP-11722 OTP-11724 * sverk/crypto/hmac-context-reuse-bug: crypto: Fix bug when using old hmac context erts: Fix NIF bug when load/upgrade fails after enif_open_resource_type Conflicts: erts/emulator/test/nif_SUITE.erl
2014-02-19erts: Introduce new instructions for combined key fetchesBjörn-Egil Dahlberg
2014-02-19Misc adjustments of OTP versionRickard Green
2014-02-19beam/utils.c: Change back cmp() to only take two argumentsBjörn Gustavsson
Commit d5c238473b9cec819d93faaef4ccc00ddb60465f added a third argument to the cmp() function, but did not change the code generation of native code that called cmp(). Name the new functions with an "erts_" prefix, and reinstate the old cmp() function with two arguments. We don't have to keep a cmp() function in the halfword emulator, since HiPE does not support the halfword emulator.
2014-02-17allow optional whitespace in dirty scheduler erl optionsSteve Vinoski
The +SDcpu, +SDPcpu, and +SDio options did not properly handle having their arguments immediately following them without intervening whitespace, e.g. +SDio20 was treated as an error. Fix all the dirty scheduler command line options so they handle optional whitespace between them and their associated arguments.
2014-02-14Merge branch 'rickard/default_acul_mod/OTP-11604'Rickard Green
* rickard/default_acul_mod/OTP-11604: Fix +Mea config
2014-02-10Merge branch 'egil/compiler/maps-fix-codegen'Björn-Egil Dahlberg
* egil/compiler/maps-fix-codegen: compiler: Fix codegen multiple updates for Maps erts,compiler: Correct and amend tests for Maps
2014-02-07erts,compiler: Correct and amend tests for MapsBjörn-Egil Dahlberg
Faulty test for maps update
2014-02-07Merge branch 'egil/erts/fix-maps-beam_load'Björn-Egil Dahlberg
* egil/erts/fix-maps-beam_load: compiler: Update map_SUITE with error case test erts: Maps must fail on exact updates of empty Maps erts: Fix Maps for beam_load
2014-02-07erts: Maps must fail on exact updates of empty MapsBjörn-Egil Dahlberg
Exact updates on empty Maps must fail directly.
2014-02-06Merge branch 'bjorn/erts/zlib-1.2.8/OTP-11669'Björn Gustavsson
* bjorn/erts/zlib-1.2.8/OTP-11669: gzio.c: Remove unnecessary usage of the OF() macro
2014-02-06Merge branch 'nox/maps-absform'Björn-Egil Dahlberg
* nox/maps-absform: Document maps-related abstract syntax trees
2014-02-06erts: Fix dtrace generation on FreeBSDLukas Larsson
2014-02-05erts: Fix NIF bug when load/upgrade fails after enif_open_resource_typeSverker Eriksson
..has been successfully called. Opened resource types (created or taken-over) were left "hanging" leading both to memory leakage and other more strange and serious behavior. Now a proper rollback is done.
2014-02-05erts: Fix Maps for beam_loadBjörn-Egil Dahlberg
Map source may be anything, not only registers.
2014-02-05erts: Skip driver_SUITE:thr_free_drv for VM without threadsSverker Eriksson
2014-02-05erts: Fix driver_SUITE:otp_9302 for VM without threadsSverker Eriksson
2014-02-05erts: Rewrite dtrace configure testLukas Larsson
The previous version printed error messages from the dtrace command to stderr. This output is now printed to config.log instead.
2014-02-04gzio.c: Remove unnecessary usage of the OF() macroBjörn Gustavsson
Daniel Goertzen reported that commit 8a147a7365 broke building of Erlang/OTP on Gentoo Linux because the macro OF() was missing. Apparently, on Gentoo the OF() macro in zconf.h has been renamed to _Z_OF() (to avoid polluting the global namespace). Don't use the OF() macro in gzio.c since it no longer serves any useful purpose (it provided compatibility with pre-ANSI/ISO C compilers, but the rest of Erlang/OTP requires an ANSI/ISO C compiler anyway).
2014-02-03erts: Fix bug in binary_to_term for mapsSverker Eriksson
'maps_head' was not restored when yielding. Risk for crash increases with size and number of maps in term.
2014-01-31Document maps-related abstract syntax treesAnthony Ramine
{map,Loc,Fields} {map,Loc,Argument,Fields} {map_field_assoc,Loc,Name,Value} {map_field_exact,Loc,Name,Value}
2014-01-31Fix +Mea configRickard Green
2014-01-29Make it easier to revert +M<S>acul defaultRickard Green
2014-01-29Merge branch 'egil/maps/OTP-11616'Björn-Egil Dahlberg
* egil/maps/OTP-11616: (112 commits) compiler: Add core compile test for maps compiler: Fix core parse for Maps compiler: Fixup #map_pair{} spec erts: Strengthen map_SUITE tests erts: Update maps_fold test to respect maps:fold/3 stdlib: Make maps:fold/3 order-independent erts: Fixup enif_make_map_put on windows erts: Update preloaded erts_internal.beam hipe: Fixup update cerl pretty printer erts: Add map construction to driver API dialyzer: Add maps tests dialyzer: Remove dead code dialyzer: Reflect map_pair core changes in dialyzer hipe: Update cerl pretty printer compiler: Update inliner tests compiler: Squash #c_map_pair_*{} to #c_map_pair{} compiler: Squash #k_map_pair_*{} to #k_map_pair{} preloaded: Fixup export cmp_term in erts_internal erts: Change 'size' argument of enif_get_map_size from int* to size_t* erts: Fix compile error for halfword emulator ...
2014-01-29erts: Strengthen map_SUITE testsBjörn-Egil Dahlberg
* Add tests for maps:merge/2 * Add tests for maps:update/3 * Test more corner cases
2014-01-29erts: Update maps_fold test to respect maps:fold/3Björn-Egil Dahlberg
2014-01-29erts: Fixup enif_make_map_put on windowsBjörn-Egil Dahlberg
2014-01-29erts: Update preloaded erts_internal.beamBjörn-Egil Dahlberg
2014-01-29erts: Add map construction to driver APISverker Eriksson
erl_drv_output_term() and erl_drv_send_term() can send messages containing maps with the use of the new ERL_DRV_MAP. The driver API minor version is updated as new functionality is added.