Age | Commit message (Collapse) | Author |
|
* maint:
Use static allocation of process lock queues
Conflicts:
erts/emulator/beam/erl_process_lock.c
erts/emulator/beam/erl_process_lock.h
|
|
* rickard/proc-lock-queues/OTP-10163:
Use static allocation of process lock queues
|
|
* maint:
Improve the enqueue operation of delayed dealloc
Implement delayed aux work wake up
Conflicts:
erts/emulator/beam/erl_alloc_util.c
erts/emulator/beam/erl_process.h
|
|
* rickard/dealloc/OTP-10162:
Improve the enqueue operation of delayed dealloc
Implement delayed aux work wake up
|
|
By using statically allocated lock queues there is no longer
any need for locking corresponding pix lock when process
locks have been transferred after a wait. This costs us 3 words
extra in process structure, but improves performance during
contention.
|
|
The enqueue operation have been re-written to behave better
during heavy contention by spreading writes over multiple
locations. This enqueue operation also take advantage of the
delayed aux work wake up functionality and can by this omit
one memory barrier.
|
|
By using a delayed aux work wake up approach, a memory barrier
can be omitted in the delayed dealloc enqueue operation. The
amount of operations, on the potentially contended, wake up
structure is also reduced.
|
|
* rickard/fix-warnings/master:
Only use "gcc optimizer hack" when needed
Silence warnings
|
|
* egil/r16/remove-vxworks-support/OTP-10146: (30 commits)
erts: Update doc to reflect VxWorks removal
erts: Remove VxWorks from documentation
Update preloaded erl_prim_loader and prim_file
snmp: Remove VxWorks
megaco: Remove VxWorks
diameter: Remove VxWorks
mnesia: Remove VxWorks
typer: Remove VxWorks
ssh: Remove VxWorks
inets: Remove VxWorks
hipe: Remove VxWorks
cosFileTransfer: Remove VxWorks
asn1: Remove VxWorks
orber: Remove VxWorks
os_mon: Remove VxWorks
runtime_tools: Remove VxWorks
test_server: Remove VxWorks references in doc
test_server: Remove VxWorks
stdlib: Remove VxWorks
kernel: Remove VxWorks from tests
...
Conflicts:
erts/emulator/test/Makefile
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* lukas/add-howto-folder/OTP-10154:
Add a testing HOWTO
Move README and INSTALL to HOWTO folder
Fix missing accounting for outbound distribution bytes.
|
|
|
|
|
|
|
|
Conflicts:
erts/preloaded/ebin/erl_prim_loader.beam
lib/kernel/src/code.erl
|
|
* ms/correct-formating-in-exit:
Correct formating in exit error messages
OTP-10148
|
|
OTP-10051
* lukas/erts/fix_enable_proc_lcnt:
Use process macro instead of array
|
|
|
|
* sz/dtrace-message-send-fix:
DTrace bug in message-send
OTP-10142
|
|
* sverk/missing-distr-stats:
Fix missing accounting for outbound distribution bytes.
|
|
* sverk/opt-inet-tcp-ctrl-proc:
Optimize inet:tcp_controlling_process
erts: Update obsolete HARD_DEBUG code
|
|
* sverk/opt-check-io:
Revert conceptually wrong little fix as part of check_io opt
Make allocation of check_io tables more scalable.
|
|
|
|
* sverk/hipe-arm-fix:
hipe_arm.c: remove dead code
Workaround gcc bug affecting ARM debug build
Fix compile error of HIPE enabled DEBUG emulator for ARM
Fix hipe bif calling bug on ARM
Add armv7l and armv5tejl as a recognized ARM architectures
OTP-10137
|
|
|
|
|
|
erts/emulator/hipe/hipe_arm.c started out as a clone of hipe_ppc.c,
with #ifdefs to select ARM-specific code. Somehow those #ifdefs
never got cleaned out, resulting in fairly ugly-looking code.
This eliminates the #ifdefs, deletes dead PowerPC-specific code, and
keeps only the ARM-specific code. I've verified that the exact same
assembly code is generated for hipe_arm.c before and after this patch
(if you compile without -g, with -g there are unavoidable changes to
the debug data).
Signed-off-by: Mikael Pettersson <[email protected]>
|
|
|
|
|
|
Bug introduced in R15.
|
|
Calls to erlang:set_trace_pattern/3 will no longer block all
other schedulers.
We will still go to single-scheduler mode when new code is loaded
for a module that is traced, or when loading code when there is a
default trace pattern set. That is not impossible to fix, but that
requires much closer cooperation between tracing BIFs and the loader
BIFs.
|
|
To allow us to manage breakpoints without going to single-scheduler
mode, we will need to update the breakpoints in several stages with
memory barriers in between each stage. Prepare for that by splitting
up the breakpoint setting and clearing functions into several smaller
functions.
|
|
Change the data structures for breakpoints to make it possible
(in a future commit) to manage breakpoints without taking down the
system to single-scheduling mode.
The current "breakpoint wheel" data structure (a circular,
double-linked list of breakpoints) was invented before the
SMP emulator. To support it in the SMP emulator, there is essentially
one breakpoint wheel per scheduler. As more breakpoint types have
been added, the implementation has become messy and hard to understand
and maintain.
Therefore, the time for a rewrite has come. Use one struct to hold
all breakpoint data for a breakpoint in a function. Use a flag field
to indicate what different type of break actions that are enabled.
|
|
|
|
Make sure that the the currently running thread has the lock,
not only that that some thread has the lock.
|
|
|
|
* maint:
Fix faulty use of thread progress in handle_aux_work()
Conflicts:
erts/emulator/beam/erl_process.c
Needed modifications:
erts/emulator/beam/beam_bif_load.c
|
|
* rickard/thr-prgr-use/OTP-10116:
Fix faulty use of thread progress in handle_aux_work()
|
|
|
|
As an optimization old thread progress data was kept and used in
handle_aux_work() in erl_process.c. This could cause memory to be
deallocated at a later time than intended, which is quite harmless.
This has, however, now been fixed.
|
|
|
|
|
|
* maint:
Update to work with space in include path
Update to work with whitespace in exec path
|
|
* lukas/otp/install_with_whitespace/OTP-10107:
Update to work with space in include path
Update to work with whitespace in exec path
|
|
OTP-10106
OTP-10107
|