aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/sys/common
AgeCommit message (Collapse)Author
2017-02-14Fixed typos in ertsAndrew Dryga
2017-02-09erts: Try fix enif_select for windowsSverker Eriksson
by simply disable "delayed deselect".
2017-02-09erts: Change return value for enif_selectSverker Eriksson
to negative int as error and positive as success.
2017-02-09erts: Add pid argument to enif_selectSverker Eriksson
2017-02-09erts: Beautify enif_selectSverker Eriksson
indentation and comments only
2017-02-09erts: Fix bad_fd_in_pollset error case for enif_selectSverker Eriksson
2017-02-09erts: Add enif_monitor_process and enif_demonitor_processSverker Eriksson
2017-02-03erts: Rename ErlNifResource as ErtsResourceSverker Eriksson
as it's not part of the API
2017-01-19erts: Handle SIGUSR1 via signal service insteadBjörn-Egil Dahlberg
2016-12-19Add ErlNifSelectReturnSverker Eriksson
2016-12-19Add stop arguments: fd and is_direct_callSverker Eriksson
2016-12-19erts: Add testing + some minor fixesSverker Eriksson
2016-11-30erts: Add enif_select & enif_open_resource_type_xSverker Eriksson
2016-11-28erts: Rename some static functionSverker Eriksson
2016-11-28erts: Refactor add_active_fdSverker Eriksson
to not inline cold reallocation code.
2016-11-28erts: Change handling of error event for driver_selectSverker Eriksson
Make the code simpler. May change the behavior as we may call both iready and oready when getting an error. But doesn't that seem more correct.
2016-11-22Merge branch 'maint'Sverker Eriksson
2016-11-17erts: Fix all -Wundef errorsSverker Eriksson
2016-11-17erts: Refactor crash dumping with cbprintfSverker Eriksson
Instead of passing around a file descriptor use a function pointer to facilitate more advanced backend write logic such as size limitation or compression.
2016-10-21erts: Use mprotect for hipe on all arch except x86_64Sverker Eriksson
Only x86_64 needs to reserve low virtual memory for its amd64 small code model.
2016-10-14erts: Enable exec_alloc for all hipe architecturesSverker Eriksson
For non-amd64 it's a "normal" allocator with a wrapper around mseg_alloc to call mprotect(PROT_EXEC).
2016-06-22Improve accuracy of timeouts using premature timeoutsRickard Green
Improve accuracy of timeouts using a premature timeout then return to sleep with a shorter timeout just before requested timeout. This approach is only used on certain platforms where we know it improves the accuracy of the timeouts, e.g. MacOS X.
2016-06-10Disregard MAP_NORESERVE for FreeBSDKenji Rikitake
A fix for running 19.0-rc2 on FreeBSD with HiPE enabled. * erl_mmap.h: disregard MAP_NORESERVE for FreeBSD MAP_NORESERVE is undefined in FreeBSD 10.x and later. This is to enable 64bit HiPE experimentally on FreeBSD. Note that on FreeBSD MAP_NORESERVE was "never implemented" even before 11.x (and the flag does not exist in /usr/src/sys/vm/mmap.c of 10.3-STABLE r301478 either), and HiPE was working on OTP 18.3.3, so mandating MAP_NORESERVE on FreeBSD might not be needed. See the following message on how MAP_NORESERVE was treated on FreeBSD: <http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20150202/122958.html> * erl_mmap.c: disable MAP_NORESERVE for FreeBSD * See also <https://github.com/erlang/otp/pull/925/commits/b02ce940c8738785ad018c9f758ca0d05d256bbb>
2016-05-04erts: Add macro HAVE_ERTS_MMAPSverker Eriksson
and make erts_mmap unavailable at compile time if not supported.
2016-05-04erts: Refactor erl_mmap.hSverker Eriksson
by (only) moving around stuff in the file. in order to make it easier to ifdef away all erts_mmap_* if not supported.
2016-04-29erts: Fix system_info({allocator_sizes, mseg_alloc})Sverker Eriksson
will now return [{instance,0,[{segments_size,9961472,9961472,11010048}]}, {instance,1,[{segments_size,6291456,6291456,6815744}]}, {instance,2,[{segments_size,524288,524288,786432}]}, {instance,3,[{segments_size,1048576,1048576,1835008}]}, {instance,4,[{segments_size,0,0,262144}]}] and not just empty lists.
2016-04-29erts: Move option info for erts_mmapSverker Eriksson
from {allocator,mseg_alloc} to {allocator,erts_mmap}
2016-04-20Merge branch 'sverker/hipe-code-alloc'Sverker Eriksson
2016-04-15erts: Add 'exec_alloc' for hipe codeSverker Eriksson
that uses its own super carrier (erts_exec_mmapper) to guarantee low addressed and executable memory (PROT_EXEC). Currently only used on x86_64 that needs low memory for HiPE/AMD64's small code model. By initializing erts_exec_mapper early we secure its low memory area before erts_literal_mmapper might steal it.
2016-04-15erts: Make ErtsMemMapper able to map memory with PROT_EXECSverker Eriksson
to prepare for hipe native code allocation.
2016-04-15erts: Refactor callbacks for literal mseg allocSverker Eriksson
Make the callbacks more general to be usable for any allocator that that uses its own ErtsMemMapper.
2016-04-15erts: Tweak defaults for literal allocatorSverker Eriksson
Reduce main carrier size and number of free descriptors.
2016-04-13Merge branch 'henrik/update-copyrightyear'Henrik Nord
* henrik/update-copyrightyear: update copyright-year
2016-04-06erts: Add lttng tracepoints for driversBjörn-Egil Dahlberg
* driver_event * driver_flush * driver_finish * driver_init * driver_output * driver_outputv * driver_process_exit * driver_ready_async * driver_ready_input * driver_ready_output * driver_start * driver_stop * driver_stop_select * driver_timeout
2016-03-15update copyright-yearHenrik Nord
2016-03-08Merge branch 'sverk/literal-alloc-polish'Sverker Eriksson
* sverk/literal-alloc-polish: erts: Add emulator flag +MIscs for literal super carrier size erts: Refactor init of erts_literal_mmapper erts: Make literal_alloc documented and configurable
2016-02-24Merge branch 'master' into sverk/master/halt-INT_MINSverker Eriksson
2016-02-24erts: Change erl_exit into erts_exitSverker Eriksson
This is mostly a pure refactoring. Except for the buggy cases when calling erlang:halt() with a positive integer in the range -(INT_MIN+2) to -INT_MIN that got confused with ERTS_ABORT_EXIT, ERTS_DUMP_EXIT and ERTS_INTR_EXIT. Outcome OLD erl_exit(n, ) NEW erts_exit(n, ) ------- ------------------- ------------------------------------------- exit(Status) n = -Status <= 0 n = Status >= 0 crashdump+abort n > 0, ignore n n = ERTS_ERROR_EXIT < 0 The outcome of the old ERTS_ABORT_EXIT, ERTS_INTR_EXIT and ERTS_DUMP_EXIT are the same as before (even though their values have changed).
2016-02-23erts: Refactor init of erts_literal_mmapperSverker Eriksson
2016-02-23erts: Make literal_alloc documented and configurableSverker Eriksson
Except it cannot be disabled and cannot be multi-threaded. The bit-vector 'erts_literal_vspace_map' on 32-bit is currently only protected by the literal allocator mutex. We could allow multiple instances on 64-bit (I think), but what would be the point?
2016-02-02erts: Add microstate accountingLukas Larsson
Microstate accounting is a way to track which state the different threads within ERTS are in. The main usage area is to pin point performance bottlenecks by checking which states the threads are in and then from there figuring out why and where to optimize. Since checking whether microstate accounting is on or off is relatively expensive if done in a short loop only a few of the states are enabled by default and more states can be enabled through configure. I've done some benchmarking and the overhead with it turned off is not noticible and with it on it is a fraction of a percent. If you enable the extra states, depending on the benchmark, the ovehead when turned off is about 1% and when turned on somewhere inbetween 5-15%. OTP-12345
2015-11-16Merge branch 'maint'Henrik Nord
2015-11-12erts: Add support for fast erts_is_literal()Sverker Eriksson
2015-11-12erts: Refactor erl_mmap to allow several mapper instancesSverker Eriksson
2015-10-15Fix erroneous use of __uint32_tIan Denhardt
The presence of this symbol is libc-specific. In particular, it is absent from musl. The correct solution is to use uint32_t.
2015-09-11erts: Fix strangeness in treatment of MSEG_ALIGN_BITSSverker Eriksson
And remove old case of using only page alignment (12 bits).
2015-09-11erts: Remove unused erts_have_erts_mmapSverker Eriksson
2015-07-10ose: Remove all code related to the OSE portLukas Larsson
The OSE port is no longer supported and this commit removed it and any changes related to it. The things that were general improvements have been left in the code.
2015-07-01Merge branch 'egil/remove-halfword/OTP-12883'Björn-Egil Dahlberg
* egil/remove-halfword/OTP-12883: (21 commits) erts: Remove halfword etp-commands erts: Remove halfword MemKind mseg erts: Remove halfword bases in ETS erts: Remove halfword CHECK_POINTER_MASK erts: Remove halfword relative printf erts: Remove halfword valgrind suppress file erts: Remove halfword specific tests erts: Remove halfword specific allocator types erts: Remove halfword BINARY RELs erts: Remove halfword is_same bases macro erts: Reinstate copy_object over-allocation optimization erts: Remove halfword copy_object_rel erts: Remove halfword object manipulation erts: Remove halfword heap relative comparisions erts: Remove halfword pointer compression erts: Remove halfword basic relative heap operations erts: Remove halfword from configure erts: Remove halfword in lib_src erts: Remove halfword in erl_nif.h erts: Remove halfword in erl_driver.h ...
2015-06-29Merge branch 'maint-17' into maintSverker Eriksson
Conflicts: OTP_VERSION erts/doc/src/notes.xml erts/vsn.mk otp_versions.table