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:
@@ -1141,13 +1141,23 @@
|
||||
#define SCHEDULING_BASE 0xF00
|
||||
|
||||
#define SCHEDULING_NO_QUANTUM (SCHEDULING_BASE+1)
|
||||
# define SCHEDULING_ACNT_DEQS m9_l1
|
||||
# define SCHEDULING_ACNT_IPC_SYNC m9_l2
|
||||
# define SCHEDULING_ACNT_IPC_ASYNC m9_l3
|
||||
# define SCHEDULING_ACNT_PREEMPT m9_l4
|
||||
# define SCHEDULING_ACNT_QUEUE m9_l5
|
||||
# define SCHEDULING_ACNT_CPU m9_s1
|
||||
# define SCHEDULING_ACNT_CPU_LOAD m9_s2
|
||||
/* These are used for SYS_SCHEDULE, a reply to SCHEDULING_NO_QUANTUM */
|
||||
# define SCHEDULING_ENDPOINT m9_l1
|
||||
# define SCHEDULING_QUANTUM m9_l2
|
||||
# define SCHEDULING_PRIORITY m9_s1
|
||||
# define SCHEDULING_CPU m9_l4
|
||||
|
||||
/* SCHEDULING_START uses _ENDPOINT, _PRIORITY and _QUANTUM from
|
||||
* SCHEDULING_NO_QUANTUM */
|
||||
/*
|
||||
* SCHEDULING_START uses _ENDPOINT, _PRIORITY and _QUANTUM from
|
||||
* SCHEDULING_NO_QUANTUM/SYS_SCHEDULE
|
||||
*/
|
||||
#define SCHEDULING_START (SCHEDULING_BASE+2)
|
||||
# define SCHEDULING_SCHEDULER m9_l1 /* Overrides _ENDPOINT on return*/
|
||||
# define SCHEDULING_PARENT m9_l3
|
||||
|
||||
Reference in New Issue
Block a user