Print this page
XXX Rearchitect and replace interrupt distribution
*** 85,94 ****
--- 85,95 ----
/* well known processes */
proc_t *proc_sched; /* memory scheduler */
proc_t *proc_init; /* init */
proc_t *proc_pageout; /* pageout daemon */
proc_t *proc_fsflush; /* fsflush daemon */
+ proc_t *proc_intrd; /* interrupt daemon */
pgcnt_t maxmem; /* Maximum available memory in pages. */
pgcnt_t freemem; /* Current available memory in pages. */
int interrupts_unleashed; /* set when we do the first spl0() */
*** 361,370 ****
--- 362,372 ----
{
proc_t *p = ttoproc(curthread); /* &p0 */
int (**initptr)();
extern void sched();
extern void fsflush();
+ extern void interrupt_balancer();
extern int (*init_tbl[])();
extern int (*mp_init_tbl[])();
extern id_t syscid, defaultcid;
extern int swaploaded;
extern int netboot;
*** 620,629 ****
--- 622,635 ----
/* create fsflush daemon */
if (newproc(fsflush, NULL, syscid, minclsyspri, NULL,
FAMOUS_PID_FSFLUSH))
panic("main: unable to fork fsflush()");
+ /* create interrupt balancer process */
+ if (newproc(interrupt_balancer, NULL, syscid, minclsyspri, NULL, 0))
+ panic("main: unable to fork interrupt_balancer()");
+
/* create cluster process if we're a member of one */
if (cluster_bootflags & CLUSTER_BOOTED) {
if (newproc(cluster_wrapper, NULL, syscid, minclsyspri,
NULL, 0)) {
panic("main: unable to fork cluster()");