diff options
author | Lukas Larsson <[email protected]> | 2018-10-12 18:16:17 +0200 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2018-12-06 11:40:14 +0100 |
commit | c6498571109b524fb319300e1b177b942e556f1b (patch) | |
tree | 1405d7e66f47fa34cbe4b494e09c58d781276e66 /erts/emulator/beam/erl_port.h | |
parent | 790aa06d380b5842fe2fdd984bdde4f160b3adaa (diff) | |
download | otp-c6498571109b524fb319300e1b177b942e556f1b.tar.gz otp-c6498571109b524fb319300e1b177b942e556f1b.tar.bz2 otp-c6498571109b524fb319300e1b177b942e556f1b.zip |
erts: Move fds with active true behaviour to own pollset
At start of the VM a poll-set that the schedulers
will check is created where fds that have triggered
many (at the moment, many means 10) times without
being deselected inbetween. In this scheduler specific
poll-set fds do not use ONESHOT, which means that the
number of syscalls goes down dramatically for such fds.
This pollset is introduced in order to handle fds that
are used by the erlang distribution and that never
change their state from {active, true}.
This pollset only handles ready_input events,
ready_output is still handled by the poll threads.
During overload, polling the scheduler poll-set is done
on a 10ms timer.
Diffstat (limited to 'erts/emulator/beam/erl_port.h')
-rw-r--r-- | erts/emulator/beam/erl_port.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_port.h b/erts/emulator/beam/erl_port.h index 2be0a5bf74..25976d38cc 100644 --- a/erts/emulator/beam/erl_port.h +++ b/erts/emulator/beam/erl_port.h @@ -334,6 +334,8 @@ Eterm erts_request_io_bytes(Process *c_p); #define ERTS_PORT_SFLG_INVALID ((Uint32) (1 << 11)) /* Last port to terminate halts the emulator */ #define ERTS_PORT_SFLG_HALT ((Uint32) (1 << 12)) +/* Check if the event in ready_input should be cleaned */ +#define ERTS_PORT_SFLG_CHECK_FD_CLEANUP ((Uint32) (1 << 13)) #ifdef DEBUG /* Only debug: make sure all flags aren't cleared unintentionally */ #define ERTS_PORT_SFLG_PORT_DEBUG ((Uint32) (1 << 31)) |