aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2011-12-02Build Win64 Erlang emulator using MSYSunknown
Still does not run, just compiles.
2011-12-02Merge branch 'ta/sendfile/OTP-9240'Lukas Larsson
* ta/sendfile/OTP-9240: (31 commits) Add sendfile server printouts Skip recv/send during tests for fallback platforms Remove header/trailer support Remove windows implementation Expand sendfile documentation Only allow tcp sockets as target for sendfile Move sendfile api to file module Preliminary work on header/trailer Use free_sendfile explicitly for non-async Remove debug printouts Add tests for send/recv/sendfile interactions Remove tests for file_server sendfile sendfile caller now has to be the controlling_process Remove support for file_server, sendfile has to be raw Set chunk size to 3 GB Change type of fd to be ErlDrvEvent Add ifdef's for HAVE_SENDFILE Fix freebsd support for sendfile Change nbytes to 64 bit Implement ignorefd for TCP ...
2011-12-02Mend the non-SMP emulatorBjörn Gustavsson
Commit 8781932b3b8769b6f208ac7c00471122ec7dd055 broke erlang:system_info(system_version) in the non-SMP emulator so that it would typically dump core. "rq:%d" was removed from the format string for erts_printf(), but the corresponding argument in the argument list was not removed, which ultimately caused "kernel-poll:%s" to be passed an integer (typically 0).
2011-12-02Remove header/trailer supportLukas Larsson
Since the API for headers/trailers seem to be very awkward to work with when using non-blocking io the feature is dropped for now. See unix_efile.c for more details.
2011-12-02Remove windows implementationLukas Larsson
2011-12-01Preliminary work on header/trailerLukas Larsson
Have to figure out how to represent progress in header writing when using non-blocking, not sure how to do this.
2011-12-01Use free_sendfile explicitly for non-asyncLukas Larsson
This is needed because aync job will not call free_sendfile if there is an async_ready callback.
2011-12-01Remove debug printoutsLukas Larsson
2011-12-01Set chunk size to 3 GBLukas Larsson
It is not possible to use the maximum size_t/off_t for the chunks as that causes sendfile to return einval. 3GB seems to work on all *nix platforms.
2011-12-01Change type of fd to be ErlDrvEventLukas Larsson
2011-12-01Add ifdef's for HAVE_SENDFILELukas Larsson
2011-12-01Fix freebsd support for sendfileLukas Larsson
2011-12-01Change nbytes to 64 bitLukas Larsson
2011-12-01Implement ignorefd for TCPLukas Larsson
Ignore fd is a feature used by sendfile to temporarily remove all driver_select calls on that fd so that another driver can select on it. It also delays all actions which sends or receives data in that fd until in the fd is no longer ignored. Only the controlling_process should use the feature as it is otherwise possible that the ignore will never be cleaned up and hence create a memory leak in the driver. An ignored driver will not detect that an fd has been closed until it is unignored.
2011-12-01Fix offset calculation for darwinLukas Larsson
2011-12-01Fix cleanup for sendfileLukas Larsson
2011-12-01Fix 32 bit parametersLukas Larsson
2011-12-01Make socket blocking if there are async threadsLukas Larsson
2011-12-01Implement sendfile when there are no async threadsLukas Larsson
When there are no async threads sendfile will use the ready_output select on the socket fd to know when to send data. The file_desc will also be put in the sending sendfile_state which buffers all other commands to that file until the sendfile is done.
2011-12-01Implement blocking calls for sendfileLukas Larsson
Move sendfile data to invoke data instead of file_descr. Remove usage of ready_output when doing a send. If told to send 0 bytes, file_sendfile now sends the entire file for linux.
2011-12-01Remove output from driver entryLukas Larsson
outputv will always be used so removed output to decrease confusion.
2011-12-01Implement sendfile using blocking io in asynch threadsLukas Larsson
Move the command handling to outputv in preparation for header and trailer inclusion in the sendfile api. Use the standard efile communication functions for sendfile.
2011-12-01Merge branch 'rickard/deprecate-runtime-binding/OTP-9749'Rickard Green
* rickard/deprecate-runtime-binding/OTP-9749: Deprecate erlang:system_flag/2 arguments scheduler_bind_type and cpu_topology
2011-12-01Merge branch 'rickard/rm-common-runq/OTP-9727'Rickard Green
* rickard/rm-common-runq/OTP-9727: Remove common run-queue in SMP case Fix scheduler suspend bug Conflicts: erts/emulator/beam/erl_init.c
2011-12-01Deprecate erlang:system_flag/2 arguments scheduler_bind_type and cpu_topologyRickard Green
The use of erlang:system_flag(scheduler_bind_type, _) and erlang:system_flag(cpu_topology, _) have been deprecated and scheduled for removal in erts-5.10/OTP-R16. For more information see the documentation of erlang:system_flag/2.
2011-12-01Remove common run-queue in SMP caseRickard Green
The common run-queue implementation is removed since it is unused, untested, undocumented, unsupported, and only complicates the code. A spinlock used by the run-queue management sometimes got heavily contended. This code has now been rewritten, and the spinlock has been removed.
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-30Merge branch 'rickard/default-unbound/OTP-9726'Rickard Green
* rickard/default-unbound/OTP-9726: Use unbound schedulers as default
2011-11-30Merge branch 'rickard/pix-mutex/OTP-9723'Rickard Green
* rickard/pix-mutex/OTP-9723: Fix warning when lock-checker is enabled Replace spinlock with mutex as pix_lock implementation
2011-11-30erts: Add valgrind suppressionsSverker Eriksson
2011-11-30Merge branch 'bjorn/deprecate-tuple-funs/OTP-9649'Björn Gustavsson
* bjorn/deprecate-tuple-funs/OTP-9649: erts: Warn the first time a tuple fun is called otp_mibs: Eliminate use of tuple fun os_mon: Eliminate use of tuple fun asn1: Eliminate use of tuple fun parsetools: Eliminate use of tuple fun mnesia tests: Eliminate use of tuple fun snmp: Eliminate use of tuple fun wrap_log_reader_SUITE: Eliminate use of tuple fun big_SUITE: Eliminate use of tuple fun file_SUITE: Eliminate use of tuple fun fprof: Eliminate use of tuple fun xref_compiler: Eliminate use of tuple fun shell: Eliminate use of tuple funs erl_eval: Eliminate use of tuple funs user_sup: Eliminate use of tuple fun
2011-11-30Merge branch 'bjorn/llvm-issues/OTP-9712'Björn Gustavsson
* bjorn/llvm-issues/OTP-9712: INSTALL.md: Update build instructions for Lion Fix clang linking problem configure: Define NO_JUMP_TABLE if all we have is llvm-gcc beam_emu.c: Eliminate warnings when NO_JUMP_TABLE is defined beam_emu.c: Use the correct void* type for computed gotos MacOS X: Completely remove obsolete -no-cpp-precomp option
2011-11-30Merge branch 'tn/inet_drv-fix'Raimo Niskanen
* tn/inet_drv-fix: Cleanup - remove unnecesary bracket level and configure for ifreq.ifr_enaddr Work around gcc linking with own view of default libs on Solaris Use libdlpi to get physical address
2011-11-30erts: Warn the first time a tuple fun is calledBjörn Gustavsson
2011-11-29Implement file:sendfileTuncer Ayaz
Allow Erlang code to use sendfile() where available by wrapping it as file:sendfile/4 and file:sendfile/2. sendfile(2) - Linux man page: "sendfile() copies data between one file descriptor and another. Because this copying is done within the kernel, sendfile() is more efficient than the combination of read(2) and write(2), which would require transferring data to and from user space."
2011-11-29big_SUITE: Eliminate use of tuple funBjörn Gustavsson
It seems that a tuple fun was used only because erl_eval:expr/3 did not support passing in a real fun at the time that the test case was originally written.
2011-11-29erts: Remove old ELIB cruft from emulator MakefileRaimo Niskanen
2011-11-29Cleanup - remove unnecesary bracket level and configure for ifreq.ifr_enaddrRaimo Niskanen
2011-11-29Work around gcc linking with own view of default libs on SolarisRaimo Niskanen
Also use 64-bit lib when necessary, specify runtime lib path for secondary dependency libs, and better check before using SIOCGIFHWADDR.
2011-11-29Merge branch 'bjorn/erts/remove-useless-variable'Björn Gustavsson
* bjorn/erts/remove-useless-variable: erl_process.c: Remove the redundant variable 'processes_busy' Update primary bootstrap otp_internal: Deprecate ssl:pid/1
2011-11-29erl_process.c: Remove the redundant variable 'processes_busy'Björn Gustavsson
There is a static variable called 'processes_busy' in erl_process.c, which will be incremented but never used. To confuse things, there is also a global variable with the same name, but it it is only defined and used if BM_COUNTERS is defined. In erl_process.c, the global version of 'processes_busy' will be seen and incremented if BM_COUNTERS is defined. Remove the static version of 'processes_busy' in erl_process.c, but keep the global version if BM_COUNTERS is defined. Noticed-by: Jovi Zhang
2011-11-28Merge branch 'lukas/erts/large_float_cmp/OTP-9497'Lukas Larsson
* lukas/erts/large_float_cmp/OTP-9497: Use CMP_TMP_HEAD_SIZE for C-stack
2011-11-28Use CMP_TMP_HEAD_SIZE for C-stackLukas Larsson
Thanks to Tuncer Ayaz
2011-11-28erts: Fix faulty udp-buffer handlingSverker Eriksson
Caused core dump with gen_udp_SUITE on halfword vm.
2011-11-28Merge branch 'bjorn/code-loading'Björn Gustavsson
* bjorn/code-loading: code: Clean up loading of code_server prerequisites beam_load.c: Add init_iff_file() for verifying the IFF header beam_code.c: Don't reinvent state initialization and deallocation beam_load.c: Optimize code:get_chunk/2 beam_load.c: Eliminate memory leak in code:make_stub_module/3
2011-11-28Correct -D and -I flags for emulator make target 'depend'Raimo Niskanen
2011-11-26beam_load.c: Add init_iff_file() for verifying the IFF headerBjörn Gustavsson
Add init_iff_file() for verifying the IFF header. Also let it handle compressed BEAM files so that it will be done in one place. That means that code:get_chunk/2 and code:module_md5/1 will now support compressed BEAM files.
2011-11-26beam_code.c: Don't reinvent state initialization and deallocationBjörn Gustavsson
2011-11-26beam_load.c: Optimize code:get_chunk/2Björn Gustavsson
The undocumented code:get_chunk/2 BIF is supposed to be a fast way to extract a chunk from a BEAM file when loading native code. In practice, it might not have been faster because it happened to calculate an MD5 checksum for the chunk it extracted because it shared the scan_iff_file() function with the erlang:load_module/2 BIF. Split scan_iff_file() into scan_iff_file() and verify_chunks(), so that the unnecessary MD5 calculation can be avoided.
2011-11-26beam_load.c: Eliminate memory leak in code:make_stub_module/3Björn Gustavsson
code:make_stub_module/3 leaked memory if given either a corrupt BEAM file, or a compressed BEAM file and an error occurred, or a binary not aligned on byte boundaries.