aboutsummaryrefslogtreecommitdiffstats
path: root/HOWTO
AgeCommit message (Collapse)Author
2014-01-29Minor update of INSTALL.mdRickard Green
2014-01-28Merge branch 'vinoski/ds'Rickard Green
* vinoski/ds: initial support for dirty schedulers and dirty NIFs
2014-01-28initial support for dirty schedulers and dirty NIFsSteve Vinoski
Add initial support for dirty schedulers. There are two types of dirty schedulers: CPU schedulers and I/O schedulers. By default, there are as many dirty CPU schedulers as there are normal schedulers and as many dirty CPU schedulers online as normal schedulers online. There are 10 dirty I/O schedulers (similar to the choice of 10 as the default for async threads). By default, dirty schedulers are disabled and conditionally compiled out. To enable them, you must pass --enable-dirty-schedulers to the top-level configure script when building Erlang/OTP. Current dirty scheduler support requires the emulator to be built with SMP support. This restriction will be lifted in the future. You can specify the number of dirty schedulers with the command-line options +SDcpu (for dirty CPU schedulers) and +SDio (for dirty I/O schedulers). The +SDcpu option is similar to the +S option in that it takes two numbers separated by a colon: C1:C2, where C1 specifies the number of dirty schedulers available and C2 specifies the number of dirty schedulers online. The +SDPcpu option allows numbers of dirty CPU schedulers available and dirty CPU schedulers online to be specified as percentages, similar to the existing +SP option for normal schedulers. The number of dirty CPU schedulers created and dirty CPU schedulers online may not exceed the number of normal schedulers created and normal schedulers online, respectively. The +SDio option takes only a single number specifying the number of dirty I/O schedulers available and online. There is no support yet for programmatically changing at run time the number of dirty CPU schedulers online via erlang:system_flag/2. Also, changing the number of normal schedulers online via erlang:system_flag(schedulers_online, NewSchedulersOnline) should ensure that there are no more dirty CPU schedulers than normal schedulers, but this is not yet implemented. You can retrieve the number of dirty schedulers by passing dirty_cpu_schedulers, dirty_cpu_schedulers_online, or dirty_io_schedulers to erlang:system_info/1. Currently only NIFs are able to access dirty scheduler functionality. Neither drivers nor BIFs currently support dirty schedulers. This restriction will be addressed in the future. If dirty scheduler support is present in the runtime, the initial status line Erlang prints before presenting its interactive prompt will include the indicator "[ds:C1:C2:I]" where "ds" indicates "dirty schedulers", "C1" indicates the number of dirty CPU schedulers available, "C2" indicates the number of dirty CPU schedulers online, and "I" indicates the number of dirty I/O schedulers. Document The dirty NIF API in the erl_nif man page. The API closely follows Rickard Green's presentation slides from his talk "Future Extensions to the Native Interface", presented at the 2011 Erlang Factory held in the San Francisco Bay Area. Rickard's slides are available online at http://bit.ly/1m34UHB . Document the new erl command-line options, the additions to erlang:system_info/1, and also add the erlang:system_flag/2 dirty scheduler documentation even though it's not yet implemented. To determine whether the dirty NIF API is available, native code can check to see whether the C preprocessor macro ERL_NIF_DIRTY_SCHEDULER_SUPPORT is defined. To check if dirty schedulers are available at run time, native code can call the boolean enif_have_dirty_schedulers() function, and Erlang code can call erlang:system_info(dirty_cpu_schedulers), which raises badarg if no dirty scheduler support is available. Add a simple dirty NIF test to the emulator NIF suite.
2014-01-28Fix MacOSX build instructionsDan Gudmundsson
Remove confusing and obsolete build instructions for Lion.
2014-01-21Merge branch 'maint'Dan Gudmundsson
2014-01-15Update wx build instsructions for DarwinDan Gudmundsson
2013-11-01Merge branch 'maint'Lukas Larsson
* maint: erts: Add max alignment posix_memalign configure check
2013-11-01Merge branch 'lukas/erts/openbsd-posix-memalign-fix/OTP-11371' into maintLukas Larsson
* lukas/erts/openbsd-posix-memalign-fix/OTP-11371: erts: Add max alignment posix_memalign configure check
2013-11-01erts: Add max alignment posix_memalign configure checkLukas Larsson
On some OSs posix_memalign exists, but it does not allow for alignment greater than the current page size. So we have to do a runtime check for alignment size and also add cross compile options.
2013-10-30Merge branch 'maint'Fredrik Gustafsson
2013-10-30Update INSTALL.mdJakub
Added info how to generate configure file if building from git.
2013-09-06Merge branch 'maint'Lukas Larsson
* maint: Ignore odbc cores Cross compilation is now a supported feature
2013-09-06Merge branch 'lukas/r16b02/docfixes' into maintLukas Larsson
* lukas/r16b02/docfixes: Ignore odbc cores Cross compilation is now a supported feature
2013-09-02Merge branch 'maint'Lukas Larsson
* maint: Refactor and change EXTRA_APPLICATIONS to use ls Add configure option --without-$app Conflicts: HOWTO/INSTALL.md lib/Makefile
2013-09-02Add configure option --without-$appLukas Larsson
This is used to skip the specified app when building and releasing
2013-08-29Cross compilation is now a supported featureLukas Larsson
2013-08-21erts: Document --enable-static-nif/driverLukas Larsson
2013-07-09Refuse to build SMP runtime by default without native atomicsRickard Green
Build with fallback can be enabled by passing the `configure` command line argument `--disable-smp-require-native-atomics`
2013-01-25Update copyright yearsBjörn-Egil Dahlberg
2013-01-25Document howto build wxWidgets on macDan Gudmundsson
2013-01-09Fix some FOP warningsHans Bolinder
Examples overflowing the width of PDF pages have been fixed. The remaining warnings are due to table cells, and require more work.
2012-11-28Fix various typos in HOWTO/ for R16Tuncer Ayaz
2012-08-24Merge branch 'maint'Lukas Larsson
* maint: Configure now assumed normal doubles Bumped version nr bumped revision make list_suffix/1 and list_prefix/1 handle erl_parse() cons sequences modernized and cleaned up edoc documentation removed obsolete @spec annotations and fixed some -spec and -type annotations preserve line numbers when reverting representation updated author e-mail removed CVS keywords from source files Revise the autoconf tests for double middle endianness. Add test for floating-point output to float_SUITE. Unbreak floating point on middle-endian machines. Add support for NULL value in odbc:param_query Conflicts: xcomp/README.md
2012-07-25Fix broken links in BENCHMARKS.mdBjörn-Egil Dahlberg
2012-07-25Merge branch 'maint'Björn-Egil Dahlberg
2012-07-19Add framework to ts to run benchmarksLukas Larsson
2012-07-19Add DTRACE and SYSTEMTAP howtos as User GuideLukas Larsson
2012-07-19Add a testing HOWTOLukas Larsson
2012-07-19Move README and INSTALL to HOWTO folderLukas Larsson