Userspace scheduling - exporting stats
- contributed by Bjorn Swift - adds process accounting, for example counting the number of messages sent, how often the process was preemted and how much time it spent in the run queue. These statistics, along with the current cpu load, are sent back to the user-space scheduler in the Out Of Quantum message. - the user-space scheduler may choose to make use of these statistics when making scheduling decisions. For isntance the cpu load becomes especially useful when scheduling on multiple cores.
This commit is contained in:
@@ -39,6 +39,16 @@ struct proc {
|
||||
run on */
|
||||
#endif
|
||||
|
||||
/* Accounting statistics that get passed to the process' scheduler */
|
||||
struct {
|
||||
u64_t enter_queue; /* time when enqueued (cycles) */
|
||||
u64_t time_in_queue; /* time spent in queue */
|
||||
unsigned long dequeues;
|
||||
unsigned long ipc_sync;
|
||||
unsigned long ipc_async;
|
||||
unsigned long preempted;
|
||||
} p_accounting;
|
||||
|
||||
struct mem_map p_memmap[NR_LOCAL_SEGS]; /* memory map (T, D, S) */
|
||||
|
||||
clock_t p_user_time; /* user time in ticks */
|
||||
|
||||
Reference in New Issue
Block a user