aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-11-30Reimplement efile_drv as a dirty NIFJohn Högberg
This improves the latency of file operations as dirty schedulers are a bit more eager to run jobs than async threads, and use a single global queue rather than per-thread queues, eliminating the risk of a job stalling behind a long-running job on the same thread while other async threads sit idle. There's no such thing as a free lunch though; the lowered latency comes at the cost of increased busy-waiting which may have an adverse effect on some applications. This behavior can be tweaked with the +sbwt flag, but unfortunately it affects all types of schedulers and not just dirty ones. We plan to add type-specific flags at a later stage. sendfile has been moved to inet_drv to lessen the effect of a nasty race; the cooperation between inet_drv and efile has never been airtight and the socket dying at the wrong time (Regardless of reason) could result in fd aliasing. Moving it to the inet driver makes it impossible to trigger this by closing the socket in the middle of a sendfile operation, while still allowing it to be aborted -- something that can't be done if it stays in the file driver. The race still occurs if the controlling process dies in the short window between dispatching the sendfile operation and the dup(2) call in the driver, but it's much less likely to happen now. A proper fix is in the works. -- Notable functional differences: * The use_threads option for file:sendfile/5 no longer has any effect. * The file-specific DTrace probes have been removed. The same effect can be achieved with normal tracing together with the nif__entry/nif__return probes to track scheduling. -- OTP-14256
2017-11-30Add a mutable binary buffer type (prim_buffer)John Högberg
2017-11-30Change resource_monitors' lock orderJohn Högberg
If a NIF monitor fired while the resource was present in an ETS table, the lock checker would erroneously report a lock order violation. This has no effect outside of debug builds.
2017-11-30Add enif_ioq_peek_headJohn Högberg
This introduces a way to retrieve erlang terms from NIF IO queues without having to resort to copying. OTP-14797
2017-11-30Merge branch 'maint'Sverker Eriksson
2017-11-30Merge PR-1636 from nox/enif-reallocSverker Eriksson
Document enif_realloc and pointer alignment guarantees
2017-11-30Merge branch 'maint'Dan Gudmundsson
* maint: Fix type create_option() in mnesia
2017-11-30Merge pull request #1647 from aboroska/fix-mnesia-type-create_optionDan Gudmundsson
Fix type create_option() in mnesia
2017-11-30Merge branch 'maint'Björn Gustavsson
* maint: Fix max atom size overflow on 64-bits Erlang by lowering the MAX_ATOM_TABLE_SIZE Fix integer overflow when set a large maximum value for atom table
2017-11-30Merge pull request #1633 from sunboshan/atom-size-fixBjörn Gustavsson
Fix integer overflow when set a large maximum value for atom table OTP-14796
2017-11-30Merge branch 'bjorn/compiler/coverage'Björn Gustavsson
* bjorn/compiler/coverage: v3_codegen: Remove check of operand for bs_context_to_binary beam_jump: Eliminate a repeated clause beam_asm: No longer allow iolists as contents in chunk/2 beam_utils_SUITE: Cover more lines in beam_utils guard_SUITE: Add a test case to cover beam_dead:turn_op/1 Recognize 'nil' as a literal in beam_utils:bif_to_test/3 Cover more code in beam_bsm:btb_opt_1/3 Add test to cover a line in v3_kernel:opt_single_valued/3
2017-11-30Merge branch 'maint'Dan Gudmundsson
* maint: Avoid falling measurements testcases on slow machines stdlib: string optimize special case for ASCII stdlib: Minor unicode_util opts
2017-11-30Merge branch 'dgud/stdlib/optimize-string-lists' into maintDan Gudmundsson
* dgud/stdlib/optimize-string-lists: Avoid falling measurements testcases on slow machines stdlib: string optimize special case for ASCII stdlib: Minor unicode_util opts OTP-14670
2017-11-30Merge pull request #1649 from whitfin/patch-1Lukas Larsson
Minor grammar tweak in ETS documentation
2017-11-29Minor grammar tweak in ETS documentationIsaac Whitfield
2017-11-29Merge tag 'OTP-19.2.3.1'Sverker Eriksson
=== OTP-19.2.3.1 === Changed Applications: - erts-8.2.2.1 Unchanged Applications: - asn1-4.0.4 - common_test-1.13 - compiler-7.0.3 - cosEvent-2.2.1 - cosEventDomain-1.2.1 - cosFileTransfer-1.2.1 - cosNotification-1.2.2 - cosProperty-1.2.1 - cosTime-1.2.2 - cosTransactions-1.3.2 - crypto-3.7.2 - debugger-4.2.1 - dialyzer-3.0.3 - diameter-1.12.1 - edoc-0.8.1 - eldap-1.2.2 - erl_docgen-0.6.1 - erl_interface-3.9.2 - et-1.6 - eunit-2.3.2 - gs-1.6.2 - hipe-3.15.3 - ic-4.4.2 - inets-6.3.5 - jinterface-1.7.1 - kernel-5.1.1 - megaco-3.18.1 - mnesia-4.14.3 - observer-2.3 - odbc-2.12 - orber-3.8.2 - os_mon-2.4.1 - otp_mibs-1.1.1 - parsetools-2.1.4 - percept-0.9 - public_key-1.3 - reltool-0.7.2 - runtime_tools-1.11 - sasl-3.0.2 - snmp-5.2.4 - ssh-4.4 - ssl-8.1 - stdlib-3.2 - syntax_tools-2.1.1 - tools-2.9 - typer-0.9.11 - wx-1.8 - xmerl-1.3.12
2017-11-29Updated OTP versionOTP-19.2.3.1Sverker Eriksson
2017-11-29Prepare releaseSverker Eriksson
2017-11-29Merge branch 'sverker/mbcs-pool-stats/ERL-88/OTP-14795'Sverker Eriksson
* sverker/mbcs-pool-stats/ERL-88/OTP-14795: Fix erlang:memory Remove duplicate stats for 'fetch' Do not include new stats for 'allocator_sizes' Add more cpool stats erts: Add statistics for cpoll fetch attempts
2017-11-29Avoid falling measurements testcases on slow machinesDan Gudmundsson
2017-11-29stdlib: string optimize special case for ASCIIDan Gudmundsson
Avoid unicode_util module call for ASCII strings
2017-11-29stdlib: Minor unicode_util optsDan Gudmundsson
Exit early for Latin-1
2017-11-29Merge branch 'maint'Ingela Anderton Andin
2017-11-29Merge branch 'ingela/ssl/ERL-521/OTP-14794' into maintIngela Anderton Andin
* ingela/ssl/ERL-521/OTP-14794: ssl: Make sure all possible data is delivered
2017-11-29Merge branch 'maint'Ingela Anderton Andin
Conflicts: lib/ssl/src/ssl_connection.erl
2017-11-29Merge branch 'ingela/ssl/cleaner-code' into maintIngela Anderton Andin
* ingela/ssl/cleaner-code: ssl: Add gracefullness to dtls code ssl: Remove old softupgrade code ssl: Use genstamtem properly
2017-11-29v3_codegen: Remove check of operand for bs_context_to_binaryBjörn Gustavsson
The bs_context_to_binary instruction only allows a register operand. v3_codegen has a test to ensure that the operand is a register. That test is no longer necessary. There used to be a possibility that optimizations in sys_core_fold and the inliner could change the operand for bs_context_to_binary to a binary literal. Since 09112806c15a81b that can no longer happen, because no more optimizations are run after the introduction of the bs_context_to_binary instruction.
2017-11-28ssl: Make sure all possible data is deliveredIngela Anderton Andin
2017-11-28Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Extend the map implementation's handling of ?unit dialyzer: Use string:find() instead of string:str()
2017-11-28Merge branch 'hasse/dialyzer/maps_anon_fun/OTP-14743' into maintHans Bolinder
* hasse/dialyzer/maps_anon_fun/OTP-14743: dialyzer: Extend the map implementation's handling of ?unit dialyzer: Use string:find() instead of string:str()
2017-11-28Merge branch 'maint'Hans Nilsson
* maint: public_key: Fix failing pkix_verify_hostname_subjAltName_IP TC
2017-11-28Merge branch 'hans/ssh/public_key/fix_bad_cert_merge' into maintHans Nilsson
* hans/ssh/public_key/fix_bad_cert_merge: public_key: Fix failing pkix_verify_hostname_subjAltName_IP TC
2017-11-27Fix type create_option() in mnesiaAndras Boroska
The create_option() type in mnesia lacks the user_properties field which is used by mnesia in various places.
2017-11-27Merge branch 'maint'Sverker Eriksson
2017-11-27Merge branch 'sverker/run_erl-log-gen-doc' into maintSverker Eriksson
2017-11-27Merge branch 'maint'Dan Gudmundsson
* maint: Update HOWTO with wxWidgets build examples https should be mapped to url and not seealso Update kernel appup for OTP-20.2
2017-11-27Merge branch 'dgud/erl_docgen/https2url' into maintDan Gudmundsson
* dgud/erl_docgen/https2url: Update HOWTO with wxWidgets build examples https should be mapped to url and not seealso
2017-11-27Merge branch 'siri/appups-20.2' into maintSiri Hansen
* siri/appups-20.2: Update kernel appup for OTP-20.2
2017-11-27erts: Fix bad merge of PR #1644Björn Gustavsson
2017-11-27Merge branch 'maint'John Högberg
2017-11-27public_key: Fix failing pkix_verify_hostname_subjAltName_IP TCHans Nilsson
Was due to an unresolved merge conflict in a453532fe31eecd8c39b5035702ee20b402fd687
2017-11-27Merge branch 'john/erts/fix-nif-ioq-version/OTP-14779' into maintJohn Högberg
2017-11-27Merge pull request #1644 from bjorng/bjorn/erts/fix-literal-gc/ERL-508Björn Gustavsson
Fix purging of modules with "fake literals" OTP-14791
2017-11-27beam_jump: Eliminate a repeated clauseBjörn Gustavsson
This clause seems to have been introduced in cac51274eb9a.
2017-11-27beam_asm: No longer allow iolists as contents in chunk/2Björn Gustavsson
The clause that converted an iolist to a binary was never executed. Note that chunk/2 is called for all chunks in the {extra_chunks,Chunks} option. This change will enforce that the contents of each chunk must be a binary (as documented).
2017-11-27beam_utils_SUITE: Cover more lines in beam_utilsBjörn Gustavsson
2017-11-27guard_SUITE: Add a test case to cover beam_dead:turn_op/1Björn Gustavsson
f9a323d10a9f5d added consistent operand order for equality comparisons. As a result, beam_dead:turn_op/1 is no longer covered. We must keep the uncovered lines in beam_dead to ensure that beam_dead can handle BEAM assembly code from another source than v3_codegen that might not follow the operand order convention. The only way to cover the lines is to use BEAM assembly in the test case.
2017-11-27Recognize 'nil' as a literal in beam_utils:bif_to_test/3Björn Gustavsson
beam_utils:bif_to_test/3 is supposed to never put a literal operand as the first operand in is_eq_exact or is_ne_exact, but 'nil' was not recognized as a literal.
2017-11-27Cover more code in beam_bsm:btb_opt_1/3Björn Gustavsson
2017-11-27Add test to cover a line in v3_kernel:opt_single_valued/3Björn Gustavsson
The uncovered line was added in 6753bbcc3fdb0.