Age | Commit message (Collapse) | Author |
|
|
|
implicit declaration of function 'EXIT_WITH'
Move code chunk up a bit to #define EXIT_WITH
before it's used.
|
|
* jrobhoward/os_mon/fix-freebsd_get_os_wordsize/PR-1039/OTP-13601:
Fix memsup:get_os_wordsize() on 64-bit Linux PPC
os_mon: Test wordsize of memsup:get_os_wordsize/0
Fix memsup:get_os_wordsize() on 64-bit FreeBSD
|
|
|
|
Simple test against erlang:system_info({wordsize,external}).
|
|
* mururu/os_mon/cpu-sup-osx/PR-1049/OTP-13597:
os_mon: Implement cpu_sup:util/0,1 on OSX
|
|
|
|
cpu_sup:util/0,1 works on OSX as well.
|
|
The combination of the use of the exit() function without including
<stdlib.h> together with the option -Werror=implicit-function-declaration
causes the compilation (and the 'make') to fail on SUN/SPARC with gcc 4.9.3.
|
|
|
|
The documentation correctly states that the Busy and NonBusy components
in the return value of cpu_sup:util/1 are not tuples but list of tuples:
"If the detailed option is given, this is a *list* of {State, Share}
tuples"
|
|
* henrik/update-copyrightyear:
update copyright-year
|
|
|
|
Those clause are obsolete and never used by common_test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Since no test suites includede test_server.hrl, there is no need
to have test_server in the include path or code path.
|
|
As a first step to removing the test_server application as
as its own separate application, change the inclusion of
test_server.hrl to an inclusion of ct.hrl and remove the
inclusion of test_server_line.hrl.
|
|
|
|
|
|
|
|
* jh/freebsdcpu/OTP-12796:
os_mon: Comply with C89 standard
os_mon: Update docs for FreeBSD
os_mon: Implement cpu_sup:util/0,1 for FreeBSD
|
|
|
|
* ethercrow/maint:
Make cpu_sup:util/0 spec lie less
|
|
|
|
Authors: Wasif Malik and Johannes Huning
|
|
Authors: Wasif Malik and Johannes Huning
|
|
|
|
This reverts commit e09dd66dc4d89c62ddfd8c19791f9678d5d787c6.
|
|
|
|
* aw/native-cpu_sup/OTP-12730:
erts: Fix configure.in
os_mon: rename send() to sendi() in cpu_sup.c
os_mon: cpu_sup should use native sysctl/libkvm calls on BSD
|
|
|
|
Do not crash with badmatch when integer part of loadavg has more than 2
digits.
|
|
Without this, cpu_sup.c won't compile on FreeBSD, as the name
overlaps with the send() socket call.
|
|
This avoids forking off with os:cmd every time we just want to
collect the load averages. riak does this every second, which
results in a lot of unnecessary load.
|
|
Some of the structs and functions needed by memsup.c are in
vmmeter.h on OpenBSD, too.
|
|
|
|
|
|
I noticed that running an R16B03-1 node on an overloaded host produced
log entries like the following ones:
```
2014-08-22 21:52:31 =ERROR REPORT====
Error in process <0.24112.3> on node '[email protected]' with exit value: {{case_clause,{data,4711}},[{cpu_sup,get_uint32_measurement,2,[{file,"cpu_sup.erl"},{line,227}]},{cpu_sup,measurement_server_loop,1,[{file,"cpu_sup.erl"},{line,585}]}]}
```
```
===== ALIVE Fri Aug 22 21:50:14 CEST 2014
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
===== ALIVE Fri Aug 22 22:07:46 CEST 2014
```
I performed a code inspection on the `cpu_sup` module and I concluded
that the `case_clause` error shows a small issue in the `cpu_sup`
module, that happens when the port used in `cpu_sup` is slow to start
- as it may happen on an overloaded node.
The `cpu_sup` `gen_server` process keeps in its state the pid of an
unlinked process (called "measurement server" - see `cpu_sup:init/1`),
in order to do dirty stuff (e.g. reading the filesystem, running OS
commands) and start_link-ing & managing the connected process to a
port (called "port server" - see `measurement_server_init/0`). So the
process organization looks like this:
```
cpu_sup - measurement server - port server - port
```
When the measurement server start_links the port server (see
`port_server_start/0`) it sends a `{self(), ?ping}` message to it and
expects an answer within 6s, otherwise it returns `{error, timeout}`
rather than the pid. This has two issues:
* The measurement server keeps `{error, ...}` in its state as if it
were a pid - that makes no sense;
* A late `{Pid, {data,4711}}` response may arrive in the mailbox of
the measurement server, that will believe it to be a request to be
processed, causing a `case_clause` error.
This commit teaches the measurement server to check the success of the
initialization of the port server by matching on the return value of
`port_server_start/0` (renamed to `port_server_start_link/0` for the
sake of clarity) in order to fail earlier and with an error clearer
than `{case_clause,{data,4711}}`. In such case I expect the
measurement server to be restarted by the `cpu_sup` `gen_server` (see
`handle_call/3`) - as before.
BTW It is not clear to me when the `handle_info({'EXIT', _Port,
Reason}, State)` may be called (the `cpu_sup` `gen_server` does not
link to the measurement server) but I am leaving it.
|
|
For some reason only a new testcases were run on the majority of
platforms. After this change all tests are run on all unix and win32
platforms.
|
|
|
|
On embedded (Linux) systems the "df" program is very often provided by
the Busybox (or Toolbox) project. This version does not provide the "-l"
option (for displaying only local filesystems) used in disksup.erl.
To make disksup work on these embedded platforms, this patch adds a new
application parameter 'disksup_posix_only', to make diskup use only
options defined in the POSIX standard:
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/df.html
|
|
|
|
child not started on windows so test fails
|
|
Enable a cross compile Erlang/OTP platform to Android or Raspberry PI
using Android NDK. Port emulator and core application to support target
HW platform. Exclude any add-on services required for OTP platform deployment
into target hardware due to device fragmentation and jail-break requirements.
* fix erts/emulator/beam/sys.h
Disable redefinition of __noreturn macro
* port erts/emulator/sys/unix/erl_child_setup.c
Use techniques proposed by https://code.google.com/p/erlang4android to
access system properties
* fix erts/emulator/sys/unix/erl_unix_sys_ddll.c
The static linking of emulator cannot find dlerror(), dlopen() symbols
* port erts/emulator/sys/unix/sys.c
make path to shell configurable at build time
* port erts/etc/common/Makefile.in
disable librt for *-linux-androideabi
* port erts/lib_src/pthread/ethread.c
Use techniques proposed by https://code.google.com/p/erlang4android to
disable emulator crash if kernel threads are on. Replace unreliable
pthread_sigmask() by sigprocmask()
* port lib/erl_interface/src/connect/ei_connect.c
Disable call to undefined gethostid()
* port lib/erl_interface/src/connect/ei_resolve.c
Use gethostbyname_r() on Android platform
|