[erlang-patches] OTP_R15A: R15 pre-release

Björn-Egil Dahlberg <>
Tue Nov 22 14:54:31 CET 2011


Hello!

We have recently pushed a new master to GitHub tagged OTP_R15A.
This is a pre-release of the upcoming R15B release and will only be 
available through GitHub, tagged OTP_R15A.


This is a stabilized snapshot of the current R15 development which, 
among other things, includes:

OTP-9468  'Line numbers in exceptions'

OTP-9451  'Parallel make'

OTP-4779  A new GUI for Observer. Integrating pman, etop and tv into
                observer with tracing facilities.

OTP-7775  A number of memory allocation optimizations have been
               implemented. Most optimizations reduce contention caused by
               synchronization between threads during allocation and
               deallocation of memory. Most notably:

               Synchronization of memory management in scheduler specific
               allocator instances has been rewritten to use lock-free
               synchronization.

               Synchronization of memory management in scheduler specific
               pre-allocators has been rewritten to use lock-free
               synchronization.

               The 'mseg_alloc' memory segment allocator now use scheduler
               specific instances instead of one instance. Apart from
               reducing contention this also ensures that memory allocators
               always create memory segments on the local NUMA node on a
               NUMA system.


OTP-9632  An ERTS internal, generic, many to one, lock-free queue for
               communication between threads has been introduced. The many
               to one scenario is very common in ERTS, so it can be used in
               a lot of places in the future. Currently it is used by
               scheduling of certain jobs, and the async thread pool, but
               more uses are planned for the future.

               Drivers using the driver_async functionality are not
               automatically locked to the system anymore, and can be
               unloaded as any dynamically linked in driver.

               Scheduling of ready async jobs is now also interleaved in
               between other jobs. Previously all ready async jobs were
               performed at once.

OTP-9631  The ERTS internal system block functionality has been
               replaced by new functionality for blocking the system. The
               old system block functionality had contention issues and
               complexity issues. The new functionality piggy-backs on
               thread progress tracking functionality needed by newly
               introduced lock-free synchronization in the runtime system.
               When the functionality for blocking the system isn't used,
               there is more or less no overhead at all. This since the
               functionality for tracking thread progress is there and
               needed anyway.


... and much much more.

This is not a full release of R15 but rather a pre-release. Feel free to 
try our R15A release and get back to us
with your findings.

Your feedback is important to us and highly welcomed.

Regards,
The OTP Team


More information about the erlang-patches mailing list