aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/sys/common
AgeCommit message (Collapse)Author
2017-04-25Merge pull request #1417 from mikpe/erts-erl_mseg-bad-cache-indexingRickard Green
erl_mseg.c: don't use invalid indices in - > cache_powered_node[] OTP-14360
2017-04-21erl_mseg.c: don't use invalid indices in - > cache_powered_node[]Mikael Pettersson
2017-04-20erts: Fix new gcc warning in check ioLukas Larsson
2017-03-22erts: Don't allocate memory during signal handlingBjörn-Egil Dahlberg
Allocations and message sending are now scheduled by a signal, via a signal state bitmap, instead of doing it directly in the signal handler.
2017-03-21erts: Make sigterm signal safe for non-smp beamBjörn-Egil Dahlberg
The signal handler will now schedule a sigterm message instead of sending the message in the signal handler. The signal handler must refrain from memory allocations and thus the event is scheduled.
2017-02-23Remove debug printout and commentSverker Eriksson
2017-02-20Remove faulty debug ASSERTSverker Eriksson
Why did I add that?
2017-02-20Fix enif_select for windowsSverker Eriksson
2017-02-20erts: Avoid revival of dying resource by dec_termSverker Eriksson
2017-02-20Merge branch 'master' into sverker/enif_selectSverker Eriksson
Conflicts: erts/emulator/beam/erl_binary.h erts/emulator/beam/erl_monitors.c erts/emulator/beam/erl_nif.c erts/emulator/beam/global.h erts/emulator/test/nif_SUITE_data/nif_SUITE.c
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?