Age | Commit message (Collapse) | Author |
|
The actual port id is used to create a key from the
pointer value which is the ErlDrvPort. To do this
a new driver api function driver_async_port_key is
added and the driver API minor version is updated.
The documentation is updated and the faulty description of
how to spread ports over async threads is updated to
use the new API.
Testcase also added.
|
|
|
|
|
|
* lukas/erts/crash_dump_acul/OTP-11264:
erts: Fix print out of acul option in crash dump
|
|
* lukas/erts/efile_undef_behaviour/OTP-11246:
erts: Fix bug in translating ev macros to functions
|
|
|
|
|
|
|
|
* lukas/erts/efile_undef_behaviour/OTP-11246:
erts: Refactor non-pure macros to functions
|
|
|
|
This is needed as some gcc versions seems to optimize this undefined
behaviour in a way which breaks this code.
|
|
* lukas/erts/match_spec_test_silent/OTP-11232:
erts: Do not enable TRACE_SILENT when testing a ms
|
|
* sverk/ptab-race:
erts: Fix race in ptab that can cause PID mix-ups
OTP-11225
|
|
|
|
* olgeni/erl_driver-man-fixes/OTP-11227:
Misc. corrections for erl_driver(3)
|
|
* lukas/erts/etp-thr/OTPO-11220:
etp: Do not use name as beam.smp is the name on Linux
|
|
|
|
* lukas/erts/etp-thr/OTPO-11220:
erts: Create gdb pything script for thread listing
|
|
* lukas/smoketests/OTP-11221:
Add smoke tests
|
|
* lukas/erts/ethr_smp_req_native_compiletime/OTP-11196:
Bailout if no native implementations are found
|
|
Since: R16B01
Symptom: A spawned process may get the same PID as an existing
process. The new process will "steal" the PID and make the old process
unreachable through the PID.
The problem also applies to port identities but has only been seen
for processes.
Conditions: SMP emulator with at least two scheduler threads. Rapid
spawning and termination of a large number of processes. A small
number of free slots in the process table will also increase the risk
for this bug.
Workaround: Use command line options "+P legacy" and "+Q legacy"
Cause: The race happens if a process terminates and gets stalled while
releasing its process table slot. The stall has to be so long (due to OS
preemptive scheduling most probably) for other schedluer threads to
consume all other free slots for newly spawn processes.
Fix: Write invalid-markers in the free-pid-table and do atomic exhange
operations in retry-loops to make sure each thread gets a unique PID.
|
|
- Remove trailing whitespaces
- Spelling fixes
- Replace "deferred" with "deprecated" where applicable
- Remove reference to non-existing "async_ready" entry point
|
|
* weisslj/fix-gcc40-arm-compile-error/OTP-11214:
Fix compile error on ARM and GCC < 4.1.0
|
|
Smoke tests are meant to verify that a build of erlang has been successfull.
|
|
|
|
Bug reported by Jose Valim on the erlang-bugs mailing list:
erlang:halt(0,[]) does not flush as advertised in the documentation.
Should be the same as erlang:halt(0,[{flush,true}]), but is in fact
the same as erlang:halt(0,[{flush,false}]).
|
|
* weisslj/run-erl-redirect-dev-null/OTP-11215:
run_erl: Redirect standard streams to /dev/null
|
|
Some basic tests are already done in configure. This makes sure we
cover all cases by bailing out when compiling as well.
|
|
|
|
* sze/to_erl/OTP-11206:
Fix changing terminal parameters in to_erl
|
|
One of our devices does not like 'to_erl' to be run over a serial port.
When to_erl is started, we see "Attaching to /tm<0xFF>" being printed
and the device then refuses to accept any input. Occasionally, we have
seen a linux kernel error message "serial8250: too much work for irq16"
simultaneously. After some debugging we found out that cause is a call
to tcsetattr() by to_erl, immediately preceeded by some printf().
The UART in our device doesn't like hardware parameters to be changed
while output is concurrently active. In fact, the GNU libc manual also
mentions that it might be dangerous to change UART hardware parameters
when a transmission is ongoing.
The patch attached to this e-mail changes the behaviour of to_erl to use
TCSADRAIN instead of TCSANOW when changing terminal parameters. This
makes the serial driver wait for the output queues to be empty before
applying the terminal parameter change.
|
|
Since b29ecbd (OTP-10418, R15B03) Erlang does not compile anymore with
old versions of GCC that do not have atomic ops builtins on platforms
where there is no native ethread implementation (e.g. ARM):
In file included from ../include/internal/gcc/ethread.h:29,
from ../include/internal/ethread.h:354,
from beam/erl_threads.h:264,
from beam/erl_smp.h:27,
from beam/sys.h:413,
from hipe/hipe_mkliterals.c:29:
../include/internal/gcc/ethr_membar.h:49:4: error: #error "No __sync_val_compare_and_swap"
This patch adds a header guard in "gcc/ethread.h", as is present in
"libatomic_ops/ethread.h".
|
|
|
|
|
|
|
|
* egil/erts/aggregate-system-traceability/OTP-11196:
Check for native code without loading module
Fix erlang:system_info(compile_info)
Fix system_information get_beam_name/0
Add beam dynamic libraries to system_information
Add system_information testsuite
Add system information aggregate
Refactor away ?line macro in code_SUITE
Fix tests for erts app-file
Add erts app-file
erts: Add cflags, ldflags and config.h into executable
|
|
Allocation needs to be in correct order.
|
|
* rickard/warning_fixes:
Fix variable ‘rp_had_locks’ set but not used warning
Fix ‘ethr_native_rwlock_destroy’ defined but not used warning
Fix 'no previous prototype' warning for dtrace functions
|
|
* rickard/test_case_fixes:
Conditionally skip process_SUITE tests that consume large amount of memory
|
|
* rickard/info/OTP-11196:
Fix configure detection of ethread native atomics on powerpc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* jw/fix-float-middle-endian/OTP-11201:
Fix binary construction on floating point middle-endian machines
Fix binary matching on floating point middle-endian machines
Fix erlang:phash2() on floating point middle-endian machines
Fix external term format BIFs on floating point middle-endian machines
|
|
* rickard/info/OTP-11196:
Add test cases for native atomics and jump table
Refuse to build SMP runtime by default without native atomics
Make information about use of jump table available via system_info BIF
Make ethread library information available via system_info BIF
Make emulator arguments available via the system_info BIF
|
|
|