Print this page
XXX Rearchitect and replace interrupt distribution
*** 81,90 ****
--- 81,91 ----
/* 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,366 ****
--- 358,368 ----
{
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,625 ****
--- 618,631 ----
/* 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()");