Age | Commit message (Collapse) | Author |
|
|
|
|
|
* sverk/port-data-lock-bug:
Fix premature deallocation bug of port data lock
|
|
* ta/docsmaint:
Fix various doc typos for R15B02
Fix various code typos for R15B02
OTP-10245
|
|
Release port data lock *after* "async_ready" or "free"
callback has been called.
|
|
|
|
* msp/double_middle_endian/OTP-10209:
Configure now assumed normal doubles
Revise the autoconf tests for double middle endianness.
Add test for floating-point output to float_SUITE.
Unbreak floating point on middle-endian machines.
|
|
* sverk/ets-test_ms-bug/OTP-10190:
Fix bug in ets:test_ms/2.
|
|
copy_shallow was called when using '$_'
|
|
* pan/unicode_home/OTP-10160:
Teach release_handler_SUITE about file:native_name_encoding/0
Add documetation about Unicode in environment
Make get/putenv and erlexec understand Unicode
|
|
* slf/slf-relocate-dtrace-N-probes/OTP-10189:
Relocate bodies of DTrace probes to the statically-linked VM.
|
|
* psi/fix-clever-mktime/OTP-10187:
Fix use of "clever" mktime
|
|
Due to various operating systems (in both the DTrace and SystemTap
worlds) not fully supporting DTrace probes (or SystemTap-compatibility
mode probes) in shared libraries, we relocate those probes to the
statically-linked virtual machine. This could be seen as pollution
of the pristine VM by a (yet) experimental feature. However:
1. This code can be eliminated completely by the C preprocessor.
2. Leaving the probes in the dyntrace NIF shared library simply
does not work correctly on too many platforms.
*Many* thanks to Macneil Shonle at Basho for assisting when my
RSI-injured fingers gave out.
Tested on:
* CentOS 5, SystemTap 1.3
* Solaris 10 (note)
* Solaris 11
* OpenIndiana 151
* SmartOS 20120809T221258Z
* FreeBSD 9.0-RELEASE (note)
I had hoped to be able to test CentOS 6 + SystemTap 1.7, but the
details of dealing with all dependencies for a 2.6.32-279.5.1.el6.x86_64
kernel are too time consuming right now.
(note: Solaris 10 and FreeBSD 9.0-RELEASE can take a long time to compile)
|
|
Putenv and getenv needs to convert to the proper environment
strings in Unicode depending on platform and user settings for filename
encoding. Also erlexec needs to pass environment strings in an appropriate
way for kernel to pick up. All environment strings on the command
line, as well as home directory, is now passed in UTF8 on windows
and in whatever encoding you have on Unix, kernel tries to convert all
parameters and environments from UTF8 before making strings.
|
|
|
|
|
|
erlang:universaltime_to_localtime is leap seconds-aware (since 2008),
however erlang:localtime_to_universaltime is not, which gives
surprising results on systems configured with leap seconds-aware
timezones:
1> erlang:universaltime_to_localtime({{2012,1,1},{0,0,0}}).
{{2012,1,1},{0,0,0}}
2> erlang:localtime_to_universaltime({{2012,1,1},{0,0,0}}).
{{2012,1,1},{0,0,24}}
and completely breaks calendar:local_time_to_universal_time_dst:
3> calendar:local_time_to_universal_time_dst({{2011,1,1},{0,0,0}}).
[]
Signed-off-by: Piotr Sikora <[email protected]>
|
|
Commit 1eef765 introduced regression (conditional _always_ evaluates
to true) in which erlang:localtime_to_universaltime/2 stopped working
on systems configured with timezone without DST (i.e. UTC) on *BSD
platforms:
1> erlang:localtime_to_universaltime({{2012,1,1},{0,0,0}}, true).
** exception error: bad argument
Signed-off-by: Piotr Sikora <[email protected]>
|
|
* rickard/proc-lock-queues/OTP-10163:
Use static allocation of process lock queues
|
|
* 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.
|
|
* sz/dtrace-message-send-fix:
DTrace bug in message-send
OTP-10142
|
|
|
|
* 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.
|
|
dtrace doesn't print sender pid and receiver pid in message related
probe correctly, it truncates pid string to 7 characters on 64bit
platform(or 3 characters on 32bit platform). The dtrace related code
did not set the string length correctly, it sets the string length to
the length of a pointer rather than the buffer length.
|
|
The hybrid heap emulator was last working in the non-SMP R11B
run-time system. When the constant pools were introduced in R12B,
the hybrid heap emulator was not updated to handle them.
At this point, the harm from reduced readability of the code is
greater than any potential usefulness of keeping the code.
|
|
|
|
|
|
* egil/fix-port-io-statistics/OTP-10073:
erts: Add port-I/O statistics for active once/true
|
|
|
|
Conflicts:
erts/vsn.mk
|
|
|
|
* rickard/driver_system_info/OTP-10059:
Clear number of async threads if no thread support
|
|
* rickard/no_ets_write_concurrency-r15b01/OTP-10048:
Remove unnecessary memory barriers in ETS when no write_concurrency is used
|
|
* rickard/sched-busy-wait/OTP-10044:
Add switch controlling scheduler busy wait
Conflicts:
erts/emulator/beam/erl_process.c
erts/emulator/beam/erl_process.h
|
|
rickard/sched-wakeup-other-r15b01/OTP-10033
Conflicts:
erts/emulator/beam/erl_process.c
erts/vsn.mk
|
|
|
|
|
|
|
|
|
|
|
|
When spawning OS (unix) processes with erlang:open_port, store the
resulting unix pid so that it can be queried later on using
erlang:port_info/1,2.
|
|
|
|
|
|
* Add new suspend, location, and port_locks options to erts_debug:lock_counters.
* Init and destroy lock counting for processes and ports as appropriate.
Conflicts:
erts/emulator/beam/erl_bif_info.c
|
|
|
|
rickard/no_ets_write_concurrency-r15b01/OTP-10048
Conflicts:
erts/emulator/beam/erl_db_hash.c
|