Add 'getidle' CPU utilization measurement infrastructure
This commit is contained in:
@@ -482,6 +482,7 @@
|
||||
# define GET_HZ 18 /* get HZ value */
|
||||
# define GET_WHOAMI 19 /* get own name and endpoint */
|
||||
# define GET_RANDOMNESS_BIN 20 /* get one randomness bin */
|
||||
# define GET_IDLETSC 21 /* get cumulative idle time stamp counter */
|
||||
#define I_ENDPT m7_i4 /* calling process */
|
||||
#define I_VAL_PTR m7_p1 /* virtual address at caller */
|
||||
#define I_VAL_LEN m7_i1 /* max length of value */
|
||||
|
||||
@@ -11,6 +11,7 @@ _PROTOTYPE( ssize_t getsysinfo_up, (endpoint_t who, int what, size_t size,
|
||||
|
||||
#define SIU_LOADINFO 1 /* retrieve load info data */
|
||||
#define SIU_SYSTEMHZ 2 /* retrieve system clock frequency */
|
||||
#define SIU_IDLETSC 3 /* retrieve cumulative idle timestamp count */
|
||||
|
||||
/* Exported system parameters. */
|
||||
|
||||
|
||||
@@ -179,6 +179,7 @@ _PROTOTYPE(int sys_segctl, (int *index, u16_t *seg, vir_bytes *off,
|
||||
#define sys_getschedinfo(v1,v2) sys_getinfo(GET_SCHEDINFO, v1,0, v2,0)
|
||||
#define sys_getlocktimings(dst) sys_getinfo(GET_LOCKTIMING, dst, 0,0,0)
|
||||
#define sys_getprivid(nr) sys_getinfo(GET_PRIVID, 0, 0,0, nr)
|
||||
#define sys_getidletsc(dst) sys_getinfo(GET_IDLETSC, dst, 0,0,0)
|
||||
_PROTOTYPE(int sys_getinfo, (int request, void *val_ptr, int val_len,
|
||||
void *val_ptr2, int val_len2) );
|
||||
_PROTOTYPE(int sys_whoami, (endpoint_t *ep, char *name, int namelen));
|
||||
@@ -242,9 +243,5 @@ _PROTOTYPE( int sys_cprof, (int action, int size, endpoint_t endpt,
|
||||
void *ctl_ptr, void *mem_ptr) );
|
||||
_PROTOTYPE( int sys_profbuf, (void *ctl_ptr, void *mem_ptr) );
|
||||
|
||||
/* read_tsc() and friends. */
|
||||
_PROTOTYPE( void read_tsc_64, (u64_t *t) );
|
||||
_PROTOTYPE( void read_tsc, (u32_t *hi, u32_t *lo) );
|
||||
|
||||
#endif /* _SYSLIB_H */
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ _PROTOTYPE( int getuptime2, (clock_t *ticks, time_t *boottime));
|
||||
_PROTOTYPE( int tickdelay, (clock_t ticks));
|
||||
_PROTOTYPE( int micro_delay_calibrate, (void));
|
||||
_PROTOTYPE( u32_t sys_hz, (void));
|
||||
_PROTOTYPE( double getidle, (void));
|
||||
_PROTOTYPE( void util_stacktrace, (void));
|
||||
_PROTOTYPE( void util_nstrcat, (char *str, unsigned long n) );
|
||||
_PROTOTYPE( void util_stacktrace_strcat, (char *));
|
||||
@@ -81,5 +82,9 @@ struct util_timingdata {
|
||||
|
||||
typedef struct util_timingdata util_timingdata_t;
|
||||
|
||||
/* read_tsc() and friends. */
|
||||
_PROTOTYPE( void read_tsc_64, (u64_t *t) );
|
||||
_PROTOTYPE( void read_tsc, (u32_t *hi, u32_t *lo) );
|
||||
|
||||
#endif /* _MINIX_SYSUTIL_H */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user