Print this page
XXX Rearchitect and replace interrupt distribution
@@ -81,10 +81,11 @@
/* 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() */
@@ -357,10 +358,11 @@
{
proc_t *p = ttoproc(curthread); /* &p0 */
int (**initptr)();
extern void sched();
extern void fsflush();
+ extern void intrd();
extern int (*init_tbl[])();
extern int (*mp_init_tbl[])();
extern id_t syscid, defaultcid;
extern int swaploaded;
extern int netboot;
@@ -616,10 +618,14 @@
/* create fsflush daemon */
if (newproc(fsflush, NULL, syscid, minclsyspri, NULL,
FAMOUS_PID_FSFLUSH))
panic("main: unable to fork fsflush()");
+ /* create interrupt balancer daemon */
+ if (newproc(intrd, NULL, syscid, minclsyspri, NULL, 0))
+ panic("main: unable to fork intrd()");
+
/* 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()");