Age | Commit message (Collapse) | Author |
|
|
|
Add probes to the virtual machine, except (mostly) the efile_drv.c
driver and other file I/O-related source files.
|
|
If the number of processors actually found while reading sysfs
is lower than the configured value, we realloc() the cpuinfo array
to the smaller size, but we then iterate it using the original
configured size, thus corrupting memory beyond the allocated
block.
|
|
* rickard/barriers/OTP-9922:
Remove newly introduced excessive barrier in erts_thr_progress_later()
Fix implementation with ddrb barriers
|
|
|
|
Fallback on using /sys/devices/system/cpu to get cpu topology,
as is already done when node directory doesn't exist.
|
|
* rickard/barriers/OTP-9922:
Fix implementation with ddrb barriers
|
|
|
|
* rickard/barriers/OTP-9922:
Reduce thread progress read operations in handle_aux_work()
Misc memory barrier fixes
|
|
- Document barrier semantics
- Introduce ddrb suffix on atomic ops
- Barrier macros for both non-SMP and SMP case
- Make the thread progress API a bit more intuitive
|
|
* raimo/parallel-make/OTP-9857:
hipe: Fix rtl dependencies
erts: Simplify toplevel makefile due to better dependencies
erts: Fix make omissions for void emulators
erts: Fix dependencies between targets generate and depend
erts: Cleanup dependencies for target generate
erts,tools: Fix parallel make for erts/lib_src
erts: Fix parallel make for emulator zlib
Conflicts:
erts/emulator/Makefile.in
|
|
* Make generate and depend.mk automatically.
* Do not make depend.mk for targets clean and generate.
* Remove old replaced CREATE_DIRS cruft.
* Fiercer remove by target clean.
* Move depend.mk to Target/Type/Flavor directory.
|
|
Use a make timestamp file to condense dependencies to some
part(s) of erts/lib_src build results.
|
|
A feature test for the lwsync instruction performed on PowerPC
hardware at runtime system startup got into an eternal loop if
the instruction was not supported. This bug was introduced in
erts-5.9/OTP-R15B.
|
|
|
|
Still does not run, just compiles.
|
|
|
|
* rickard/bad-rwmtx-assert:
Fix bad assertion in rwmtx implementation
|
|
Windows native critical sections are now used internally in the
runtime system as mutex implementation. This since they perform
better under extreme contention than our own implementation.
|
|
|
|
Conflicts:
erts/aclocal.m4
erts/emulator/beam/erl_db.c
erts/emulator/sys/win32/sys.c
erts/include/internal/ethread_header_config.h.in
|
|
|
|
* pan/erts_printf_term/OTP-9435:
Correct return values from write-functions in erl_printf
|
|
* hw/detect-cpus-on-irix:
Detect the available CPUs on IRIX
OTP-9531
|
|
* cg/fix-constant-logical-operand:
Fix use of logical operator && with constant operand instead of bitwise &.
OTP-9454
|
|
* pg/fix-freebsd-dualcore-detection:
Fix bug in FreeBSD topology detection code
OTP-9453
|
|
|
|
The ethread atomics API now also provide double word size atomics.
Double word size atomics are implemented using native atomic
instructions on x86 (when the cmpxchg8b instruction is available)
and on x86_64 (when the cmpxchg16b instruction is available). On
other hardware where 32-bit atomics or word size atomics are
available, an optimized fallback is used; otherwise, a spinlock,
or a mutex based fallback is used.
The ethread library now performs runtime tests for presence of
hardware features, such as for example SSE2 instructions, instead
of requiring this to be determined at compile time.
There are now functions implementing each atomic operation with the
following implied memory barrier semantics: none, read, write,
acquire, release, and full. Some of the operation-barrier
combinations aren't especially useful. But instead of filtering
useful ones out, and potentially miss a useful one, we implement
them all.
A much smaller set of functionality for native atomics are required
to be implemented than before. More or less only cmpxchg and a
membar macro are required to be implemented for each atomic size.
Other functions will automatically be constructed from these. It is,
of course, often wise to implement more that this if possible from a
performance perspective.
|
|
Add support for querying the number of configured and online processors
on SGI systems running IRIX.
|
|
|
|
|
|
|
|
Conflicts:
erts/emulator/beam/erl_printf_term.c
|
|
* sverker/erts_printf-halfword:
erts_printf %be to print integers of size Eterm
Fix use of type BeamInstr in hipe_debug.c
Conflicts:
erts/emulator/hipe/hipe_debug.c
|
|
Existing %bp to print pointer size integers does not work in halfword
emulator to print Eterm size integers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The atomic memory operations interface used the 'long' type and assumed that
it was of the same size as 'void *'. This is true on most platforms, however,
not on Windows 64.
|
|
* rickard/rwmutex-bug/OTP-8925:
Fix erroneous assertion
|
|
|
|
* rickard/rwmutex-bug/OTP-8925:
Use correct argument types on rwlock_wake_set_flags()
|
|
|
|
* rickard/rwmutex-bug/OTP-8925:
Miscellaneous rwmutex bug fixes and improvements
Don't use more reader groups than schedulers
New test suite containing stress tests of the rwmutex implementation
Conflicts:
erts/emulator/beam/erl_init.c
|