Issue: Compiling a program while trying to use X results in the mouse repeatedly freezing for a moment, then coming back to life. This is due to the problem discussed on tech-kern using the highly technical designation ``sucky performance''. :-) For more details see the email from Ross Harvey http://mail-index.netbsd.org/tech-kern/1999/01/23/0002.html and Bill Sommerfeld http://mail-index.netbsd.org/tech-kern/1999/01/23/0003.html This problem was solved by scheduler mods in -current on 1/23/99 The following patch should apply to NetBSD 1.3, 1.3.1, 1.3.2, and 1.3.3. Instructions: Assuming you have the kernel source extracted and ready to build, patch -d /sys/kern < 1.3schedpatch Index: kern_exit.c =================================================================== RCS file: /cvsroot/src/sys/kern/kern_exit.c,v retrieving revision 1.61 retrieving revision 1.63 diff -u -r1.61 -r1.63 --- kern_exit.c 1998/11/11 22:37:13 1.61 +++ kern_exit.c 1999/01/23 22:23:19 1.63 @@ -452,6 +452,11 @@ wakeup((caddr_t)p->p_pptr); return (0); } + + /* Charge us for our child's sins */ + curproc->p_estcpu = min(curproc->p_estcpu + + p->p_estcpu, UCHAR_MAX); + p->p_xstat = 0; ruadd(&q->p_stats->p_cru, p->p_ru); pool_put(&rusage_pool, p->p_ru); Index: kern_fork.c =================================================================== RCS file: /cvsroot/src/sys/kern/kern_fork.c,v retrieving revision 1.50 retrieving revision 1.52 diff -u -r1.50 -r1.52 --- kern_fork.c 1998/11/11 22:44:25 1.50 +++ kern_fork.c 1999/01/23 22:23:19 1.52 @@ -315,6 +315,13 @@ ktradref(p2); } #endif + + /* + * set priority of child to be that of parent + * XXX should move p_estcpu into the region of struct proc which gets + * copied. + */ + p2->p_estcpu = p1->p_estcpu; /* * This begins the section where we must prevent the parent