aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.h
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2017-01-04 18:10:26 +0100
committerRickard Green <[email protected]>2017-01-17 12:23:19 +0100
commitf9459092940943876dff040ee997515b96fd5d50 (patch)
tree075fc1e01f6cc1cd1e398b9f52a0ee0f617065e4 /erts/emulator/beam/erl_process.h
parentfd1fb9070333fe5b91f4528841a4b0fe71bbf096 (diff)
downloadotp-f9459092940943876dff040ee997515b96fd5d50.tar.gz
otp-f9459092940943876dff040ee997515b96fd5d50.tar.bz2
otp-f9459092940943876dff040ee997515b96fd5d50.zip
Scheduler wall time support for dirty schedulers
Diffstat (limited to 'erts/emulator/beam/erl_process.h')
-rw-r--r--erts/emulator/beam/erl_process.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/erts/emulator/beam/erl_process.h b/erts/emulator/beam/erl_process.h
index fc2055332b..ce0989883c 100644
--- a/erts/emulator/beam/erl_process.h
+++ b/erts/emulator/beam/erl_process.h
@@ -550,13 +550,15 @@ do { \
} while (0)
typedef struct {
- int need; /* "+sbu true" or scheduler_wall_time enabled */
+ union {
+ erts_atomic32_t mod; /* on dirty schedulers */
+ int need; /* "+sbu true" or scheduler_wall_time enabled */
+ } u;
int enabled;
Uint64 start;
struct {
Uint64 total;
Uint64 start;
- int currently;
} working;
} ErtsSchedWallTime;
@@ -1598,7 +1600,8 @@ void erts_init_scheduling(int, int
void erts_execute_dirty_system_task(Process *c_p);
#endif
int erts_set_gc_state(Process *c_p, int enable);
-Eterm erts_sched_wall_time_request(Process *c_p, int set, int enable);
+Eterm erts_sched_wall_time_request(Process *c_p, int set, int enable,
+ int dirty_cpu, int want_dirty_io);
Eterm erts_system_check_request(Process *c_p);
Eterm erts_gc_info_request(Process *c_p);
Uint64 erts_get_proc_interval(void);