SMP - Changed prototype of sys_schedule()
- sys_schedule can change only selected values, -1 means that the current value should be kept unchanged. For instance we mostly want to change the scheduling quantum and priority but we want to keep the process at the current cpu - RS can hand off its processes to scheduler - service can read the destination cpu from system.conf - RS can pass the information farther
This commit is contained in:
@@ -676,6 +676,7 @@
|
||||
#define SCHEDCTL_ENDPOINT m9_l2 /* endpt of process to be scheduled */
|
||||
#define SCHEDCTL_QUANTUM m9_l3 /* current scheduling quantum */
|
||||
#define SCHEDCTL_PRIORITY m9_s4 /* current scheduling priority */
|
||||
#define SCHEDCTL_CPU m9_l5 /* where to place this process */
|
||||
|
||||
/*===========================================================================*
|
||||
* Messages for the Reincarnation Server *
|
||||
@@ -1141,6 +1142,7 @@
|
||||
# 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 */
|
||||
|
||||
@@ -33,6 +33,10 @@ Interface to the reincarnation server
|
||||
#define RS_NR_PCI_CLASS 4
|
||||
#define RS_MAX_LABEL_LEN 16
|
||||
|
||||
/* CPU special values */
|
||||
#define RS_CPU_DEFAULT -1 /* use the default cpu or do not change the current one */
|
||||
#define RS_CPU_BSP -2 /* use the bootstrap cpu */
|
||||
|
||||
/* Labels are copied over separately. */
|
||||
struct rss_label
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
_PROTOTYPE(int sched_stop, (endpoint_t scheduler_e, endpoint_t schedulee_e));
|
||||
_PROTOTYPE(int sched_start, (endpoint_t scheduler_e, endpoint_t schedulee_e,
|
||||
endpoint_t parent_e, unsigned maxprio, unsigned quantum,
|
||||
endpoint_t parent_e, int maxprio, int quantum, int cpu,
|
||||
endpoint_t *newscheduler_e));
|
||||
_PROTOTYPE(int sched_inherit, (endpoint_t scheduler_e,
|
||||
endpoint_t schedulee_e, endpoint_t parent_e, unsigned maxprio,
|
||||
|
||||
@@ -44,9 +44,10 @@ _PROTOTYPE( int sys_clear, (endpoint_t proc_ep));
|
||||
_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_schedule, (endpoint_t proc_ep, int priority,
|
||||
int quantum, int cpu));
|
||||
_PROTOTYPE( int sys_schedctl, (unsigned flags, endpoint_t proc_ep,
|
||||
unsigned priority, unsigned quantum));
|
||||
int priority, int quantum, int cpu));
|
||||
|
||||
/* Shorthands for sys_runctl() system call. */
|
||||
#define sys_stop(proc_ep) sys_runctl(proc_ep, RC_STOP, 0)
|
||||
|
||||
Reference in New Issue
Block a user