User-space scheduling for system processes

This commit is contained in:
Erik van der Kouwe
2010-07-01 08:32:33 +00:00
parent b17e3adb60
commit 23284ee7bd
40 changed files with 490 additions and 1166 deletions
+12 -1
View File
@@ -656,6 +656,14 @@
/* Subfunctions for SYS_STATECTL */
#define SYS_STATE_CLEAR_IPC_REFS 1 /* clear IPC references */
/* Subfunctions for SYS_SCHEDCTL */
#define SCHEDCTL_FLAGS m1_i1 /* flags for setting the scheduler */
# define SCHEDCTL_FLAG_KERNEL 1 /* mark kernel scheduler and remove
* RTS_NO_QUANTUM; otherwise caller is
* marked scheduler
*/
#define SCHEDCTL_ENDPOINT m1_i2 /* endpt of process to be scheduled */
/*===========================================================================*
* Messages for the Reincarnation Server *
*===========================================================================*/
@@ -1104,12 +1112,15 @@
#define SCHEDULING_START (SCHEDULING_BASE+2)
# define SCHEDULING_SCHEDULER m9_l1 /* Overrides _ENDPOINT on return*/
# define SCHEDULING_PARENT m9_l3
# define SCHEDULING_NICE m9_l4
# define SCHEDULING_MAXPRIO m9_l4
#define SCHEDULING_STOP (SCHEDULING_BASE+3)
#define SCHEDULING_SET_NICE (SCHEDULING_BASE+4)
/* SCHEDULING_INHERIT is like SCHEDULING_START, but without _QUANTUM field */
#define SCHEDULING_INHERIT (SCHEDULING_BASE+5)
#endif
/* _MINIX_COM_H */
+3 -1
View File
@@ -41,7 +41,9 @@ struct rs_start
char *rss_cmd;
size_t rss_cmdlen;
uid_t rss_uid;
int rss_nice;
endpoint_t rss_scheduler;
unsigned rss_priority;
unsigned rss_quantum;
int rss_major;
int rss_dev_style;
long rss_period;
+1 -1
View File
@@ -45,7 +45,7 @@ _PROTOTYPE( int sys_exit, (void));
_PROTOTYPE( int sys_trace, (int req, endpoint_t proc_ep, long addr, long *data_p));
_PROTOTYPE( int sys_schedule, (endpoint_t proc_ep, unsigned priority, unsigned quantum));
_PROTOTYPE( int sys_schedctl, (endpoint_t proc_ep));
_PROTOTYPE( int sys_schedctl, (unsigned flags, endpoint_t proc_ep));
/* Shorthands for sys_runctl() system call. */
#define sys_stop(proc_ep) sys_runctl(proc_ep, RC_STOP, 0)