Age | Commit message (Collapse) | Author |
|
* 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
|
|
* maint:
Correct the type of the disk log header
|
|
* hb/kernel/fix_spec_disk_log/OTP-10131:
Correct the type of the disk log header
|
|
Thanks to Niclas Eklund.
|
|
|
|
|
|
|
|
|
|
* bjorn/erts/breakpoints/OTP-10122:
Strengthen trace test cases
Don't go to single-scheduler mode when managing breakpoints
Refactor the code for managing breakpoints
Change the data structures for breakpoints
Add trace_local_SUITE:concurrency/1
Make the lock check in erts_is_code_ix_locked() stronger
|
|
|
|
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.
|
|
|
|
* maint:
Update primary bootstrap
sys_pre_expand: Eliminate bottleneck for modules with many functions
Conflicts:
bootstrap/bin/start.boot
bootstrap/bin/start_clean.boot
bootstrap/lib/kernel/ebin/file.beam
bootstrap/lib/kernel/ebin/hipe_unified_loader.beam
|
|
|
|
* bjorn/compiler/eliminate-bottleneck/OTP-10123:
sys_pre_expand: Eliminate bottleneck for modules with many functions
|
|
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.
|
|
|
|
* rj/fix-eprof-doc:
Fix nonsense of eprof doc
OTP-10121
|
|
* tab/fix-indentation-records-emacs:
Fix indentation of record fields in Emacs
OTP-10120
|
|
* rj/fix-et-doc:
Fix typo in ET doc
OTP-10119
|
|
* upstream/maint:
ssl: Fix bug in the handling of remote connection closure of {active,false} ssl sockets.
|
|
* ia/ssl/recv-bug/OTP-10118:
ssl: Fix bug in the handling of remote connection closure of {active,false} ssl sockets.
|
|
* 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()
|
|
Use a gb_set instead of an ordset to store the set of defined
functions in the module to avoid quadritic time complexity.
|
|
* upstream/maint:
ssl: Fix pem cache bug
|
|
* ia/ssl/pem-cache-bug:
ssl: Fix pem cache bug
|
|
A general case clause was put before a less general so that the less
general case would never match.
|
|
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.
|
|
* bjorn/inviso/remove/OTP-10117:
Remove the deprecated inviso application
|
|
* sverk/code-upgrade-test:
Add kernel/test/code_SUITE:upgrade
|
|
|
|
|
|
ssl sockets.
|
|
* upstream/maint:
ssl: Test case fixes
ssl: Avoid second bottleneck in supervisor
ssl: File handling optimization
ssl: Simpler PEM cache
ssl: Refactored for readability
ssl: Use md5 as file ref id instead of filenames
ssl: Move ets:select bottleneck in server
ssl: Renegotiate updates session id in gen_fsm state
ssl: Use ordered_set in cache
ssl: Move and avoid ets:select bottleneck in client
ssl: Reuse session check optimization
ssl: Avoid supervior bottleneck
|
|
* ia/ssl/bottlenecks/OTP-10113:
ssl: Test case fixes
ssl: Avoid second bottleneck in supervisor
ssl: File handling optimization
ssl: Simpler PEM cache
ssl: Refactored for readability
ssl: Use md5 as file ref id instead of filenames
ssl: Move ets:select bottleneck in server
ssl: Renegotiate updates session id in gen_fsm state
ssl: Use ordered_set in cache
ssl: Move and avoid ets:select bottleneck in client
ssl: Reuse session check optimization
ssl: Avoid supervior bottleneck
|
|
* maint:
Improved handling of multiple closes
|
|
* ia/ssh/missing-reason-in-catch-exit/OTP-10112:
Improved handling of multiple closes
|
|
|
|
In some situations, the indentation of record fields in Emacs was
strange. This example below shows how Emacs previously would indent
two similar pieces of code very differently:
some_function_with_a_very_long_name() ->
#'a-long-record-name-like-it-sometimes-is-with-asn.1-records'{
field1=a,
field2=b}.
x() ->
#some_record_name{
field1=a,
field2=b}.
This changes the indentation to be like below for both cases:
some_function() ->
#some_record{
field1=a,
field2=b}.
|
|
|