aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-12-01Fix scheduler suspend bugRickard Green
Calls to erlang:system_flag(schedulers_online, N) and/or erlang:system_flag(multi_scheduling, block|unblock) could cause internal data used by this functionality to get into an inconsistent state. When this happened various problems occurred. This bug was quite hard to trigger, so hopefully no-one has been effected by it.
2011-11-18Use unbound schedulers as defaultRickard Green
As of ERTS version 5.9 (OTP-R15B) the runtime system will by default not bind schedulers to logical processors. If the Erlang runtime system is the only operating system process that binds threads to logical processors, this improves the performance of the runtime system. However, if other operating system processes (as for example another Erlang runtime system) also bind threads to logical processors, there might be a performance penalty instead. In some cases this performance penalty might be severe. Due to this, we change the default so that the user must make an active decision in order to bind schedulers.
2011-11-18Fix warning when lock-checker is enabledRickard Green
2011-11-18Replace spinlock with mutex as pix_lock implementationRickard Green
The spinlocks used implementing pix-locks have been replaced with mutexes since they perform better during heavy contention.
2011-11-13Make sure only one thread exits the runtime systemRickard Green
The runtime system crashed if more than one thread tried to exit the runtime system at the same time.
2011-11-13Use critical sections as mutex implementation on WindowsRickard Green
Windows native critical sections are now used internally in the runtime system as mutex implementation. This since they perform better under extreme contention than our own implementation.
2011-11-13Use generic lock-free queue for async threadsRickard Green
Queues used for communication between async threads and scheduler threads have been replaced with lock-free queues. Drivers using the driver_async functionality are not automatically locked to the system anymore, and can be unloaded as any dynamically linked in driver. Scheduling of ready async jobs is now also interleaved in between other jobs. Previously all ready async jobs was performed at once.
2011-11-13Use generic lock-free queue for misc aux workRickard Green
2011-11-13Implement generic lock-free queueRickard Green
The implementation of an ERTS internal, generic, many to one, lock-free queue for communication between threads. The many to one scenario is very common in ERTS, so it can be used in a lot of places in the future. Changing to this queue from a lock based queue, however, often requires some redesigning. This since we have often used the lock of the queue to protect other information too.
2011-11-13Replace system block with thread progress blockRickard Green
The ERTS internal system block functionality has been replaced by new functionality for blocking the system. The old system block functionality had contention issues and complexity issues. The new functionality piggy-backs on thread progress tracking functionality needed by newly introduced lock-free synchronization in the runtime system. When the functionality for blocking the system isn't used there is more or less no overhead at all. This since the functionality for tracking thread progress is there and needed anyway.
2011-11-13Optimize memory allocationRickard Green
A number of memory allocation optimizations have been implemented. Most optimizations reduce contention caused by synchronization between threads during allocation and deallocation of memory. Most notably: * Synchronization of memory management in scheduler specific allocator instances has been rewritten to use lock-free synchronization. * Synchronization of memory management in scheduler specific pre-allocators has been rewritten to use lock-free synchronization. * The 'mseg_alloc' memory segment allocator now use scheduler specific instances instead of one instance. Apart from reducing contention this also ensures that memory allocators always create memory segments on the local NUMA node on a NUMA system.
2011-10-14Merge branch 'rickard/atomics-api/OTP-9014' and OTP_R14B04Rickard Green
Conflicts: erts/aclocal.m4 erts/emulator/beam/erl_db.c erts/emulator/sys/win32/sys.c erts/include/internal/ethread_header_config.h.in
2011-10-04Prepare releaseOTP_R14B04Erlang/OTP
2011-10-04Merge branch 'maint-r14' into devSverker Eriksson
Fake merge with "-s ours"
2011-10-04Prepare releaseErlang/OTP
2011-10-04Merge branch 'sverker/crypto-openssl.0.9.8-PPC/OTP-9603' into maint-r14Erlang/OTP
* sverker/crypto-openssl.0.9.8-PPC/OTP-9603: [ssl] Step version for patch 1178 Touch crypto to provoke patch release (again)
2011-10-04Merge branch 'maint-r14' into devRaimo Niskanen
2011-10-04Merge branch 'maint-r13' into maint-r14Raimo Niskanen
Conflicts: erts/doc/src/notes.xml erts/emulator/drivers/common/inet_drv.c erts/vsn.mk lib/kernel/test/gen_sctp_SUITE.erl
2011-10-03[ssl] Step version for patch 1178Sverker Eriksson
No source change. Building with dynamic linking towards OpenSSL v0.9.8
2011-09-30Touch crypto to provoke patch release (again)Sverker Eriksson
2011-09-30Merge branch 'peppe/common_test/r14b04_docs' into devPeter Andersson
* peppe/common_test/r14b04_docs: Update documentation Rid ct_telnet of doc build warnings
2011-09-30Update documentationPeter Andersson
OTP-9396 OTP-9372 OTP-9155
2011-09-30Rid ct_telnet of doc build warningsPeter Andersson
OTP-9572
2011-09-30Merge remote branch 'origin/peppe/common_test/r14b04_tickets.fix' into devPeter Andersson
* origin/peppe/common_test/r14b04_tickets.fix: (35 commits) Create temporary fix for problem with parallel test cases Correct "Missing Suites" link Add documentation on timetraps and start flags Add missing tests for timetrap handling and fix remaining errors Solve problem with ct_init/end_per_group being counted as test cases Fix errors in test suites Fix invalid call to undefined function Fix problem with test_server_ctrl creating invalid conf test Improve info in CT framework log Update vsn.mk for common_test and test_server Enhance logging performance Change order of include files Add link to last executed test suite on index page Fix problem with location value when init config func calls help func Fix crash when CTHook init fails Correct error in test suite Fix error with incorrect notification after end_per_testcase craches Fix problem with error message not being printed correctly Add cases to check test case status versus end_per_testcase failure Fix incorrect call to end_tc when tc_status=ok and end_per_testcase times out ... OTP-9600 OTP-9593 OTP-9592 OTP-9585 OTP-9584 OTP-9575 OTP-9520 OTP-9518 OTP-9501 OTP-9429 OTP-9398 OTP-9397 OTP-9396 OTP-9379 OTP-9372 OTP-9371 OTP-9370 OTP-9369 OTP-9311 OTP-9237 OTP-9155 OTP-8933
2011-09-30Create temporary fix for problem with parallel test casesPeter Andersson
OTP-9600
2011-09-29Update primary bootstrapBjörn-Egil Dahlberg
2011-09-29Update copyright yearsBjörn-Egil Dahlberg
2011-09-29Merge branch 'sverker/stub-module-code-leakage' into devLukas Larsson
* sverker/stub-module-code-leakage: Prevent valgrind warning for erts_alloc_permanent_cache_aligned [erts] Fix memory leak in erts_make_stub_module (hipe loading)
2011-09-29Merge branch 'lukas/fix_erts_testcases/OTP-9596' into devLukas Larsson
* lukas/fix_erts_testcases/OTP-9596: Skip create_big_boot on platforms without crypto Remove test_server path instead of cwd for clash test Skip getaddr_v6 test if on the ipv4_only host Use static port for old solaris versions Extend time to wait for zone files to be loaded Allow out of memory exception for max_port checks Extend slave start timeout for windows tests Double timeout to make sure debug builds pass Use now instead of os:timestamp Increase timeout in scheduler_suspend for slow platforms Skip update_cpu_info if 'taskset' cannot be found
2011-09-29Merge branch 'sa/dialyzer-bug-fixes' into devHenrik Nord
* sa/dialyzer-bug-fixes: Fix typer's crash for nonexisting files Remove unused macro Decrease tuple arity limit Fix bug in dataflow OTP-9597
2011-09-29Skip create_big_boot on platforms without cryptoLukas Larsson
This has to be done as many other applications depend on that crypto is present.
2011-09-29Remove test_server path instead of cwd for clash testLukas Larsson
With the introduction of common_test as test framework the working directory of the tests changed to be the emulator_test directory. So we now have to remove the ../test_server directory instead. This change only affect tests run with a emulator which has not been installed.
2011-09-29Skip getaddr_v6 test if on the ipv4_only hostLukas Larsson
2011-09-29Use static port for old solaris versionsLukas Larsson
Solaris version before 10 have some problem with releasing addresses after doing a gen_udp:open, which causes inet_res to get a econnrefused. With this fix we hope that the static port will not collide with anything.
2011-09-29Extend time to wait for zone files to be loadedLukas Larsson
This change was made in order to make slow solaris machines work.
2011-09-29Allow out of memory exception for max_port checksLukas Larsson
2011-09-29Extend slave start timeout for windows testsLukas Larsson
2011-09-29Double timeout to make sure debug builds passLukas Larsson
2011-09-29Use now instead of os:timestampLukas Larsson
This is done in order to improve timing when testing debug builds, especially ppc debug builds.
2011-09-29Merge branch 'anders/diameter/testsuites/OTP-9553' into devAnders Svensson
* anders/diameter/testsuites/OTP-9553: Remove forgotten dbg
2011-09-29Remove forgotten dbgAnders Svensson
2011-09-29Correct "Missing Suites" linkPeter Andersson
OTP-9592
2011-09-29Add documentation on timetraps and start flagsPeter Andersson
2011-09-28Add missing tests for timetrap handling and fix remaining errorsPeter Andersson
OTP-9593
2011-09-28Merge branch 'anders/diameter/testsuites/OTP-9553' into devAnders Svensson
* anders/diameter/testsuites/OTP-9553: Don't install Emakefile at release_tests
2011-09-28Don't install Emakefile at release_testsAnders Svensson
Emakefile contained compile flags that caused compilation of suites to fail in some cases. common_test will generate an Emakefile and diameter has no need for one of its own.
2011-09-28Prevent valgrind warning for erts_alloc_permanent_cache_alignedSverker Eriksson
2011-09-28[erts] Fix memory leak in erts_make_stub_module (hipe loading)Sverker Eriksson
Code area allocation was done twice; first in read_code_header() and then in erts_make_stub_module() itself.
2011-09-28Merge branch 'rc/eunit-2.2.1' into devHenrik Nord
* rc/eunit-2.2.1: removed some never-matching clauses reported by dialyzer updated author e-mails and homepages removed cvs keywords from files removed files that should not be checked in OTP-9591
2011-09-28Merge branch 'rc/edoc-0.7.9' into devHenrik Nord
* rc/edoc-0.7.9: bumped revision removed some never-matching clauses reported by dialyzer Fix macro expansion in comments following Erlang types URI-escape bytes as two hex digits always (reported by Alfonso De Gregorio) updated author e-mail recognize some more URI schemas in wiki text, in particular https OTP-9590