aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src/Makefile
AgeCommit message (Collapse)Author
2019-01-16[logger] Move out overload protection macros from logger_h_common.hrlSiri Hansen
The new file logger_olp.hrl is added.
2019-01-16[logger] Overload protect logging from erts and remote nodesSiri Hansen
2019-01-16[logger] Split overload protection functionality to own moduleSiri Hansen
2018-07-13[kernel] Reduce risk of dead lock when terminating logger_supSiri Hansen
2018-06-18Update copyright yearHenrik Nord
2018-05-23Rename module logger_simple to logger_simple_hSiri Hansen
Also, change HandlerId from logger_simple to simple.
2018-05-04Merge branch 'john/kernel/add-file_int-to-release'John Högberg
* john/kernel/add-file_int-to-release: Add file_int.hrl to release target
2018-05-02Add file_int.hrl to release targetJohn Högberg
2018-04-26Add loggerSiri Hansen
2017-12-19Merge branch 'dgud/kernel/refc_sched_wall_time/OTP-11694'Dan Gudmundsson
* dgud/kernel/refc_sched_wall_time/OTP-11694: test: spawn scheduler_wall_time flag holder Turn on scheduler_wall_time in an alive process Redirect system_flag(scheduler_wall_time,_) to kernel_refc kernel: add a resource reference counter
2017-12-01kernel: add a resource reference counterDan Gudmundsson
System resources/functionality may need to be reference counted to be handled correctly when used or enabled/disabled from more than one process or application. It is easier to handle this in erlang code than in erts, so make a process that deals with the housekeeping.
2017-11-30Reimplement efile_drv as a dirty NIFJohn Högberg
This improves the latency of file operations as dirty schedulers are a bit more eager to run jobs than async threads, and use a single global queue rather than per-thread queues, eliminating the risk of a job stalling behind a long-running job on the same thread while other async threads sit idle. There's no such thing as a free lunch though; the lowered latency comes at the cost of increased busy-waiting which may have an adverse effect on some applications. This behavior can be tweaked with the +sbwt flag, but unfortunately it affects all types of schedulers and not just dirty ones. We plan to add type-specific flags at a later stage. sendfile has been moved to inet_drv to lessen the effect of a nasty race; the cooperation between inet_drv and efile has never been airtight and the socket dying at the wrong time (Regardless of reason) could result in fd aliasing. Moving it to the inet driver makes it impossible to trigger this by closing the socket in the middle of a sendfile operation, while still allowing it to be aborted -- something that can't be done if it stays in the file driver. The race still occurs if the controlling process dies in the short window between dispatching the sendfile operation and the dup(2) call in the driver, but it's much less likely to happen now. A proper fix is in the works. -- Notable functional differences: * The use_threads option for file:sendfile/5 no longer has any effect. * The file-specific DTrace probes have been removed. The same effect can be achieved with normal tracing together with the nif__entry/nif__return probes to track scheduling. -- OTP-14256
2017-06-14Update copyright yearHans Nilsson
2017-05-17Add persistence to history of the non-legacy shellFred Hebert
This patch adds a mechanism by which shell history gets stored persistently on disk and gets loaded whenever a new shell session begins. The log files are added to the user's cache directory, with multiple files in it, although the location is configurable. All Erlang instances on a given host will share the same log file. There are two hook points in group.erl that are used: when instantiating the buffer, where we fetch from disk, and when adding a line to the buffer (gets stored). This allows all shell instances to use the same base set of lines when loaded, but to keep their history separate after the fact. As lines are added as you go, a new shell session (with ^G -> s -> c) will have access to previous sessions' lines. The implementation makes use of the disk_log library with a rotating log in order to store data, and allow automated repairs. By default, the feature is disabled and must be turned on through OTP environment variable part of the kernel application. The options include: | Option | Accepted values | Default | Description | | ------------------------ | ----------------- |---------- | -------------------- | | shell_history | enabled, disabled | disabled | turn feature on/off | | shell_history_path | any string | user cache| where to put files | | shell_history_file_bytes | 51200..N bytes | 512kb | max data size (>50kb)| | shell_history_drop | ["q().", ...] | [] | blacklisted lines | A version header is added to the disk_log configuration, allowing changes in the storage format to be enacted in the future (i.e. adding segmentation by node name in the same file, or encoding) without conflict. Log rotation is used with multiple log files to ensure proper enforcement of resizing without too much data loss. Because disk_log does not allow to just flush bits of content on rewrite (it truncates any full file), we instead use a wrap log and try to divide the configured size into up to 10 log files so that every time we rotate a log, we lose only 10% of the data. This remains true for corrupted files that cannot fully be repaired. This many-logs-based approach in turn forces the use of a minimal log size for the `shell_history_file_bytes` configuration, since it has to be divided by 10. The shell history is not loaded for the `user` process which, despite running the group.erl module, does not actually require history as it mostly just forwards IO protocol information.
2017-01-19kernel: Add gen_event signal server and default handlerBjörn-Egil Dahlberg
2016-06-01Rewrite inet* for address family 'local'Raimo Niskanen
2015-06-18Change license text to APLv2Bruce Yinhe
2014-08-26Install internal hrl files when necessaryPeter Lemenkov
Sometimes we install *.erl files. Some these files include a private *.hrl files, so in order to make these *.erl files usable we have to install these private includes as well. Signed-off-by: Peter Lemenkov <[email protected]>
2013-01-25Update copyright yearsBjörn-Egil Dahlberg
2013-01-23Turn warnings to errors on selected applicationsBjörn Gustavsson
2013-01-18Merge branch 'nox/enable-silent-rules/OTP-10726'Björn-Egil Dahlberg
* nox/enable-silent-rules/OTP-10726: Implement ./otp_build configure --enable-silent-rules
2013-01-15Implement ./otp_build configure --enable-silent-rulesAnthony Ramine
With silent rules, the output of make is less verbose and compilation warnings are easier to spot. Silent rules are disabled by default and can be disabled or enabled at will by make V=0 and make V=1.
2013-01-09kernel: Remove the packages moduleBjörn Gustavsson
2012-08-31Update copyright yearsBjörn-Egil Dahlberg
2012-06-05Update to work with whitespace in exec pathLukas Larsson
OTP-10106 OTP-10107
2011-12-09Update copyright yearsBjörn-Egil Dahlberg
2011-09-01Move distribution headers from kernel/src to kernel/includePatrik Nyblom
2010-02-10Support the configure option --enable-native-libsKostis Sagonas
2010-01-31kernel/src/Makefile: fix broken 'clean' targetBjörn Gustavsson
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP