aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.h
diff options
context:
space:
mode:
authorPatrik Nyblom <[email protected]>2012-02-07 18:00:35 +0100
committerPatrik Nyblom <[email protected]>2012-02-07 18:00:35 +0100
commit6004ec3e1785913ff0b74054cf614a35c180d54a (patch)
tree1865eab06f4254649f4d9f3e0fbd693c854df5c0 /erts/emulator/beam/erl_process.h
parent8d59a1fc518719c8c445d9d94b23c173c18b4438 (diff)
parent6992261d258f2fc0b25ddf99ebcbf66ae02f5df8 (diff)
downloadotp-6004ec3e1785913ff0b74054cf614a35c180d54a.tar.gz
otp-6004ec3e1785913ff0b74054cf614a35c180d54a.tar.bz2
otp-6004ec3e1785913ff0b74054cf614a35c180d54a.zip
Merge branch 'dgud/sched-work-time/OTP-9858' into maint
* dgud/sched-work-time/OTP-9858: emulator: Document and test scheduler_wall_time Implement statistics(scheduler_wall_time)
Diffstat (limited to 'erts/emulator/beam/erl_process.h')
-rw-r--r--erts/emulator/beam/erl_process.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process.h b/erts/emulator/beam/erl_process.h
index a51b380bb0..173b7df69d 100644
--- a/erts/emulator/beam/erl_process.h
+++ b/erts/emulator/beam/erl_process.h
@@ -394,6 +394,16 @@ do { \
} while (0)
typedef struct {
+ int enabled;
+ Uint64 start;
+ struct {
+ Uint64 total;
+ Uint64 start;
+ int currently;
+ } working;
+} ErtsSchedWallTime;
+
+typedef struct {
int sched_id;
ErtsSchedulerData *esdp;
ErtsSchedulerSleepInfo *ssi;
@@ -457,6 +467,8 @@ struct ErtsSchedulerData_ {
ErtsSchedAllocData alloc_data;
+ ErtsSchedWallTime sched_wall_time;
+
#ifdef ERTS_DO_VERIFY_UNUSED_TEMP_ALLOC
erts_alloc_verify_func_t verify_unused_temp_alloc;
Allctr_t *verify_unused_temp_alloc_data;
@@ -1064,6 +1076,8 @@ void erts_late_init_process(void);
void erts_early_init_scheduling(int);
void erts_init_scheduling(int, int);
+Eterm erts_sched_wall_time_request(Process *c_p, int set, int enable);
+
ErtsProcList *erts_proclist_create(Process *);
void erts_proclist_destroy(ErtsProcList *);
int erts_proclist_same(ErtsProcList *, Process *);