diff options
-rw-r--r-- | sys/arch/alpha/include/_types.h | 3 | ||||
-rw-r--r-- | sys/arch/amd64/include/_types.h | 3 | ||||
-rw-r--r-- | sys/arch/arm/include/_types.h | 4 | ||||
-rw-r--r-- | sys/arch/hppa/include/_types.h | 5 | ||||
-rw-r--r-- | sys/arch/hppa64/include/_types.h | 5 | ||||
-rw-r--r-- | sys/arch/i386/include/_types.h | 3 | ||||
-rw-r--r-- | sys/arch/m68k/include/_types.h | 5 | ||||
-rw-r--r-- | sys/arch/m88k/include/_types.h | 5 | ||||
-rw-r--r-- | sys/arch/mips64/include/_types.h | 3 | ||||
-rw-r--r-- | sys/arch/powerpc/include/_types.h | 3 | ||||
-rw-r--r-- | sys/arch/sh/include/_types.h | 3 | ||||
-rw-r--r-- | sys/arch/sparc/include/_types.h | 4 | ||||
-rw-r--r-- | sys/arch/sparc64/include/_types.h | 3 | ||||
-rw-r--r-- | sys/arch/vax/include/_types.h | 5 | ||||
-rw-r--r-- | sys/kern/init_main.c | 15 | ||||
-rw-r--r-- | sys/kern/kern_clock.c | 42 | ||||
-rw-r--r-- | sys/kern/kern_fork.c | 4 | ||||
-rw-r--r-- | sys/kern/kern_ktrace.c | 6 | ||||
-rw-r--r-- | sys/kern/kern_subr.c | 6 | ||||
-rw-r--r-- | sys/kern/kern_synch.c | 10 | ||||
-rw-r--r-- | sys/kern/kern_sysctl.c | 15 | ||||
-rw-r--r-- | sys/kern/sched_bsd.c | 79 | ||||
-rw-r--r-- | sys/sys/kernel.h | 5 | ||||
-rw-r--r-- | sys/sys/proc.h | 22 | ||||
-rw-r--r-- | sys/sys/sched.h | 7 |
25 files changed, 35 insertions, 230 deletions
diff --git a/sys/arch/alpha/include/_types.h b/sys/arch/alpha/include/_types.h index 18535caa90b..aa00ab491b3 100644 --- a/sys/arch/alpha/include/_types.h +++ b/sys/arch/alpha/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.8 2007/05/15 15:23:35 art Exp $ */ +/* $OpenBSD: _types.h,v 1.9 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -119,7 +119,6 @@ typedef void * __wctrans_t; typedef void * __wctype_t; /* Feature test macros */ -#define __HAVE_CPUINFO #define __HAVE_GENERIC_SOFT_INTERRUPTS #define __HAVE_TIMECOUNTER diff --git a/sys/arch/amd64/include/_types.h b/sys/arch/amd64/include/_types.h index 07aefab326c..ad32a2a8138 100644 --- a/sys/arch/amd64/include/_types.h +++ b/sys/arch/amd64/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.3 2007/05/15 15:23:35 art Exp $ */ +/* $OpenBSD: _types.h,v 1.4 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -116,7 +116,6 @@ typedef void * __wctype_t; /* Feature test macros */ #define __HAVE_GENERIC_SOFT_INTERRUPTS -#define __HAVE_CPUINFO #define __HAVE_TIMECOUNTER #endif /* _AMD64__TYPES_H_ */ diff --git a/sys/arch/arm/include/_types.h b/sys/arch/arm/include/_types.h index db38d11fbd2..ea013402cad 100644 --- a/sys/arch/arm/include/_types.h +++ b/sys/arch/arm/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.4 2007/05/14 07:07:09 art Exp $ */ +/* $OpenBSD: _types.h,v 1.5 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -119,6 +119,4 @@ typedef void * __wctype_t; #define __PROG32 /* indicate 32-bit mode */ #endif -#define __HAVE_CPUINFO - #endif /* _ARM__TYPES_H_ */ diff --git a/sys/arch/hppa/include/_types.h b/sys/arch/hppa/include/_types.h index ebe380ad296..fa5d1168746 100644 --- a/sys/arch/hppa/include/_types.h +++ b/sys/arch/hppa/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.6 2007/05/15 15:23:35 art Exp $ */ +/* $OpenBSD: _types.h,v 1.7 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -122,7 +122,4 @@ typedef int __rune_t; typedef void * __wctrans_t; typedef void * __wctype_t; -/* Feature test macros */ -#define __HAVE_CPUINFO - #endif /* _HPPA__TYPES_H_ */ diff --git a/sys/arch/hppa64/include/_types.h b/sys/arch/hppa64/include/_types.h index d05448fda15..02b161c0eff 100644 --- a/sys/arch/hppa64/include/_types.h +++ b/sys/arch/hppa64/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.2 2007/05/15 01:56:46 deraadt Exp $ */ +/* $OpenBSD: _types.h,v 1.3 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -118,7 +118,4 @@ typedef int __rune_t; typedef void * __wctrans_t; typedef void * __wctype_t; -/* Feature test macros */ -#define __HAVE_CPUINFO - #endif /* _HPPA64__TYPES_H_ */ diff --git a/sys/arch/i386/include/_types.h b/sys/arch/i386/include/_types.h index b6ae4922594..4fc270e483e 100644 --- a/sys/arch/i386/include/_types.h +++ b/sys/arch/i386/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.6 2007/05/15 15:23:35 art Exp $ */ +/* $OpenBSD: _types.h,v 1.7 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -115,7 +115,6 @@ typedef void * __wctrans_t; typedef void * __wctype_t; /* Feature test macros */ -#define __HAVE_CPUINFO #define __HAVE_TIMECOUNTER #endif /* _I386__TYPES_H_ */ diff --git a/sys/arch/m68k/include/_types.h b/sys/arch/m68k/include/_types.h index f51e71a3b11..4073832a445 100644 --- a/sys/arch/m68k/include/_types.h +++ b/sys/arch/m68k/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.5 2007/05/15 15:23:36 art Exp $ */ +/* $OpenBSD: _types.h,v 1.6 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -114,7 +114,4 @@ typedef int __rune_t; typedef void * __wctrans_t; typedef void * __wctype_t; -/* Feature test macros */ -#define __HAVE_CPUINFO - #endif /* _M68K__TYPES_H_ */ diff --git a/sys/arch/m88k/include/_types.h b/sys/arch/m88k/include/_types.h index bb8f7fca0ad..718e177981e 100644 --- a/sys/arch/m88k/include/_types.h +++ b/sys/arch/m88k/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.3 2007/05/15 15:23:36 art Exp $ */ +/* $OpenBSD: _types.h,v 1.4 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -115,7 +115,4 @@ typedef int __rune_t; typedef void * __wctrans_t; typedef void * __wctype_t; -/* Feature test macros */ -#define __HAVE_CPUINFO - #endif /* _M88K__TYPES_H_ */ diff --git a/sys/arch/mips64/include/_types.h b/sys/arch/mips64/include/_types.h index 765e071bd88..37ad2cde899 100644 --- a/sys/arch/mips64/include/_types.h +++ b/sys/arch/mips64/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.3 2007/05/07 18:42:12 kettenis Exp $ */ +/* $OpenBSD: _types.h,v 1.4 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -132,7 +132,6 @@ typedef struct label_t { #define __SWAP_BROKEN /* Feature test macros */ -#define __HAVE_CPUINFO #define __HAVE_TIMECOUNTER #endif /* _MIPS64__TYPES_H_ */ diff --git a/sys/arch/powerpc/include/_types.h b/sys/arch/powerpc/include/_types.h index b7666a54410..a89a4434cb3 100644 --- a/sys/arch/powerpc/include/_types.h +++ b/sys/arch/powerpc/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.6 2007/05/15 15:23:36 art Exp $ */ +/* $OpenBSD: _types.h,v 1.7 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -116,7 +116,6 @@ typedef void * __wctrans_t; typedef void * __wctype_t; /* Feature test macros */ -#define __HAVE_CPUINFO #define __HAVE_TIMECOUNTER #endif /* _POWERPC__TYPES_H_ */ diff --git a/sys/arch/sh/include/_types.h b/sys/arch/sh/include/_types.h index d382015007c..7756280fc4c 100644 --- a/sys/arch/sh/include/_types.h +++ b/sys/arch/sh/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.4 2007/05/15 15:23:36 art Exp $ */ +/* $OpenBSD: _types.h,v 1.5 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -117,6 +117,5 @@ typedef void * __wctype_t; /* Feature test macros */ #define __HAVE_GENERIC_SOFT_INTERRUPTS -#define __HAVE_CPUINFO #endif /* _SH__TYPES_H_ */ diff --git a/sys/arch/sparc/include/_types.h b/sys/arch/sparc/include/_types.h index 0978cc65b61..b2ef3e869a4 100644 --- a/sys/arch/sparc/include/_types.h +++ b/sys/arch/sparc/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.7 2007/05/15 15:23:36 art Exp $ */ +/* $OpenBSD: _types.h,v 1.8 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -114,6 +114,4 @@ typedef int __rune_t; typedef void * __wctrans_t; typedef void * __wctype_t; -#define __HAVE_CPUINFO - #endif /* _SPARC__TYPES_H_ */ diff --git a/sys/arch/sparc64/include/_types.h b/sys/arch/sparc64/include/_types.h index 9707c260acf..c9b18cf22b6 100644 --- a/sys/arch/sparc64/include/_types.h +++ b/sys/arch/sparc64/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.6 2007/05/15 15:23:36 art Exp $ */ +/* $OpenBSD: _types.h,v 1.7 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -122,7 +122,6 @@ typedef void * __wctype_t; /* Feature test macros */ #define __HAVE_GENERIC_SOFT_INTERRUPTS -#define __HAVE_CPUINFO #define __HAVE_TIMECOUNTER #endif /* _SPARC64__TYPES_H_ */ diff --git a/sys/arch/vax/include/_types.h b/sys/arch/vax/include/_types.h index d034229480d..88f19e3b5be 100644 --- a/sys/arch/vax/include/_types.h +++ b/sys/arch/vax/include/_types.h @@ -1,4 +1,4 @@ -/* $OpenBSD: _types.h,v 1.6 2007/05/16 05:21:00 miod Exp $ */ +/* $OpenBSD: _types.h,v 1.7 2007/05/16 17:27:30 art Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -114,7 +114,4 @@ typedef int __rune_t; typedef void * __wctrans_t; typedef void * __wctype_t; -/* Feature test macros */ -#define __HAVE_CPUINFO - #endif /* _MACHINE__TYPES_H_ */ diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index a8cf415a9df..46f9faf3ade 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -1,4 +1,4 @@ -/* $OpenBSD: init_main.c,v 1.139 2007/04/12 22:14:15 tedu Exp $ */ +/* $OpenBSD: init_main.c,v 1.140 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: init_main.c,v 1.84.4.1 1996/06/02 09:08:06 mrg Exp $ */ /* @@ -113,9 +113,6 @@ struct pcred cred0; struct plimit limit0; struct vmspace vmspace0; struct sigacts sigacts0; -#if !defined(__HAVE_CPUINFO) && !defined(curproc) -struct proc *curproc; -#endif struct proc *initproc; int cmask = CMASK; @@ -125,9 +122,6 @@ void (*md_diskconf)(void) = NULL; struct vnode *rootvp, *swapdev_vp; int boothowto; struct timeval boottime; -#ifndef __HAVE_CPUINFO -struct timeval runtime; -#endif int ncpus = 1; __volatile int start_init_exec; /* semaphore for start_init() */ @@ -199,9 +193,7 @@ main(void *framep) * any possible traps/probes to simplify trap processing. */ curproc = p = &proc0; -#ifdef __HAVE_CPUINFO p->p_cpu = curcpu(); -#endif /* * Initialize timeouts. @@ -484,14 +476,9 @@ main(void *framep) #else boottime = mono_time = time; #endif -#ifndef __HAVE_CPUINFO - microuptime(&runtime); -#endif LIST_FOREACH(p, &allproc, p_list) { p->p_stats->p_start = boottime; -#ifdef __HAVE_CPUINFO microuptime(&p->p_cpu->ci_schedstate.spc_runtime); -#endif p->p_rtime.tv_sec = p->p_rtime.tv_usec = 0; } diff --git a/sys/kern/kern_clock.c b/sys/kern/kern_clock.c index fa1ed4d7450..f4e18101952 100644 --- a/sys/kern/kern_clock.c +++ b/sys/kern/kern_clock.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_clock.c,v 1.63 2007/04/17 17:57:32 miod Exp $ */ +/* $OpenBSD: kern_clock.c,v 1.64 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: kern_clock.c,v 1.34 1996/06/09 04:51:03 briggs Exp $ */ /*- @@ -226,9 +226,7 @@ hardclock(struct clockframe *frame) extern int64_t ntp_tick_permanent; extern int64_t ntp_tick_acc; #endif -#ifdef __HAVE_CPUINFO struct cpu_info *ci = curcpu(); -#endif p = curproc; if (p && ((p->p_flag & (P_SYSTEM | P_WEXIT)) == 0)) { @@ -253,7 +251,6 @@ hardclock(struct clockframe *frame) if (stathz == 0) statclock(frame); -#if defined(__HAVE_CPUINFO) if (--ci->ci_schedstate.spc_rrticks <= 0) roundrobin(ci); @@ -263,7 +260,6 @@ hardclock(struct clockframe *frame) */ if (CPU_IS_PRIMARY(ci) == 0) return; -#endif #ifndef __HAVE_TIMECOUNTER /* @@ -482,15 +478,10 @@ statclock(struct clockframe *frame) struct gmonparam *g; int i; #endif -#ifdef __HAVE_CPUINFO struct cpu_info *ci = curcpu(); struct schedstate_percpu *spc = &ci->ci_schedstate; -#else - static int schedclk; -#endif struct proc *p = curproc; -#ifdef __HAVE_CPUINFO /* * Notice changes in divisor frequency, and adjust clock * frequency accordingly. @@ -505,15 +496,10 @@ statclock(struct clockframe *frame) } } -/* XXX Kludgey */ -#define pscnt spc->spc_pscnt -#define cp_time spc->spc_cp_time -#endif - if (CLKF_USERMODE(frame)) { if (p->p_flag & P_PROFIL) addupc_intr(p, CLKF_PC(frame)); - if (--pscnt > 0) + if (--spc->spc_pscnt > 0) return; /* * Came from user mode; CPU was in user state. @@ -521,9 +507,9 @@ statclock(struct clockframe *frame) */ p->p_uticks++; if (p->p_nice > NZERO) - cp_time[CP_NICE]++; + spc->spc_cp_time[CP_NICE]++; else - cp_time[CP_USER]++; + spc->spc_cp_time[CP_USER]++; } else { #ifdef GPROF /* @@ -542,7 +528,7 @@ statclock(struct clockframe *frame) if (p != NULL && p->p_flag & P_PROFIL) addupc_intr(p, PROC_PC(p)); #endif - if (--pscnt > 0) + if (--spc->spc_pscnt > 0) return; /* * Came from kernel mode, so we were: @@ -559,19 +545,14 @@ statclock(struct clockframe *frame) if (CLKF_INTR(frame)) { if (p != NULL) p->p_iticks++; - cp_time[CP_INTR]++; + spc->spc_cp_time[CP_INTR]++; } else if (p != NULL) { p->p_sticks++; - cp_time[CP_SYS]++; + spc->spc_cp_time[CP_SYS]++; } else - cp_time[CP_IDLE]++; + spc->spc_cp_time[CP_IDLE]++; } - pscnt = psdiv; - -#ifdef __HAVE_CPUINFO -#undef pscnt -#undef cp_time -#endif + spc->spc_pscnt = psdiv; if (p != NULL) { p->p_cpticks++; @@ -580,14 +561,9 @@ statclock(struct clockframe *frame) * ~~16 Hz is best */ if (schedhz == 0) { -#ifdef __HAVE_CPUINFO if ((++curcpu()->ci_schedstate.spc_schedticks & 3) == 0) schedclock(p); -#else - if ((++schedclk & 3) == 0) - schedclock(p); -#endif } } } diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c index 71941682d39..d4eb5fcc449 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_fork.c,v 1.90 2007/04/12 22:14:15 tedu Exp $ */ +/* $OpenBSD: kern_fork.c,v 1.91 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: kern_fork.c,v 1.29 1996/02/09 18:59:34 christos Exp $ */ /* @@ -254,9 +254,7 @@ fork1(struct proc *p1, int exitsig, int flags, void *stack, size_t stacksize, timeout_set(&p2->p_sleep_to, endtsleep, p2); timeout_set(&p2->p_realit_to, realitexpire, p2); -#if defined(__HAVE_CPUINFO) p2->p_cpu = p1->p_cpu; -#endif /* * Duplicate sub-structures as needed. diff --git a/sys/kern/kern_ktrace.c b/sys/kern/kern_ktrace.c index c65b8b78458..ce85d215862 100644 --- a/sys/kern/kern_ktrace.c +++ b/sys/kern/kern_ktrace.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_ktrace.c,v 1.41 2006/11/14 09:16:55 deraadt Exp $ */ +/* $OpenBSD: kern_ktrace.c,v 1.42 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: kern_ktrace.c,v 1.23 1996/02/09 18:59:36 christos Exp $ */ /* @@ -207,11 +207,7 @@ ktrgenio(struct proc *p, int fd, enum uio_rw rw, struct iovec *iov, int len, * Don't allow this process to hog the cpu when doing * huge I/O. */ -#ifdef __HAVE_CPUINFO if (curcpu()->ci_schedstate.spc_schedflags & SPCF_SHOULDYIELD) -#else - if (p->p_schedflags & PSCHED_SHOULDYIELD) -#endif preempt(NULL); count = min(iov->iov_len, buflen); diff --git a/sys/kern/kern_subr.c b/sys/kern/kern_subr.c index 4835da16ec8..023a5867f25 100644 --- a/sys/kern/kern_subr.c +++ b/sys/kern/kern_subr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_subr.c,v 1.30 2005/11/28 00:14:29 jsg Exp $ */ +/* $OpenBSD: kern_subr.c,v 1.31 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: kern_subr.c,v 1.15 1996/04/09 17:21:56 ragge Exp $ */ /* @@ -75,12 +75,8 @@ uiomove(void *cp, int n, struct uio *uio) switch (uio->uio_segflg) { case UIO_USERSPACE: -#ifdef __HAVE_CPUINFO if (curcpu()->ci_schedstate.spc_schedflags & SPCF_SHOULDYIELD) -#else - if (p->p_schedflags & PSCHED_SHOULDYIELD) -#endif preempt(NULL); if (uio->uio_rw == UIO_READ) error = copyout(cp, iov->iov_base, cnt); diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c index 5acff3ccad8..849dffefc57 100644 --- a/sys/kern/kern_synch.c +++ b/sys/kern/kern_synch.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_synch.c,v 1.79 2007/04/03 08:05:43 art Exp $ */ +/* $OpenBSD: kern_synch.c,v 1.80 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: kern_synch.c,v 1.37 1996/04/22 01:38:37 christos Exp $ */ /* @@ -185,11 +185,7 @@ sleep_finish(struct sleep_state *sls, int do_sleep) #endif } -#ifdef __HAVE_CPUINFO p->p_cpu->ci_schedstate.spc_curpriority = p->p_usrpri; -#else - curpriority = p->p_usrpri; -#endif SCHED_UNLOCK(sls->sls_s); /* @@ -357,12 +353,8 @@ restart: * resched_proc(). */ setrunqueue(p); -#ifdef __HAVE_CPUINFO KASSERT(p->p_cpu != NULL); need_resched(p->p_cpu); -#else - need_resched(NULL); -#endif /* END INLINE EXPANSION */ if (n != 0) diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c index 2c7f0459039..6cf0c7fc2fa 100644 --- a/sys/kern/kern_sysctl.c +++ b/sys/kern/kern_sysctl.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_sysctl.c,v 1.151 2007/04/18 16:57:06 art Exp $ */ +/* $OpenBSD: kern_sysctl.c,v 1.152 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: kern_sysctl.c,v 1.17 1996/05/20 17:49:05 mrg Exp $ */ /*- @@ -433,7 +433,6 @@ kern_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp, return (sysctl_malloc(name + 1, namelen - 1, oldp, oldlenp, newp, newlen, p)); case KERN_CPTIME: -#ifdef __HAVE_CPUINFO { CPU_INFO_ITERATOR cii; struct cpu_info *ci; @@ -445,10 +444,10 @@ kern_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp, for (i = 0; i < CPUSTATES; i++) cp_time[i] += ci->ci_schedstate.spc_cp_time[i]; } - } -#endif + return (sysctl_rdstruct(oldp, oldlenp, newp, &cp_time, sizeof(cp_time))); + } case KERN_NCHSTATS: return (sysctl_rdstruct(oldp, oldlenp, newp, &nchstats, sizeof(struct nchstats))); @@ -533,11 +532,9 @@ kern_sysctl(int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp, #endif case KERN_MAXLOCKSPERUID: return (sysctl_int(oldp, oldlenp, newp, newlen, &maxlocksperuid)); -#ifdef __HAVE_CPUINFO case KERN_CPTIME2: return (sysctl_cptime2(name + 1, namelen -1, oldp, oldlenp, newp, newlen)); -#endif default: return (EOPNOTSUPP); } @@ -1290,11 +1287,7 @@ fill_kproc2(struct proc *p, struct kinfo_proc2 *ki) ki->p_stat = p->p_stat; ki->p_swtime = p->p_swtime; ki->p_slptime = p->p_slptime; -#ifdef __HAVE_CPUINFO ki->p_schedflags = 0; -#else - ki->p_schedflags = p->p_schedflags; -#endif ki->p_holdcnt = 1; ki->p_priority = p->p_priority; ki->p_usrpri = p->p_usrpri; @@ -1873,7 +1866,6 @@ sysctl_emul(int *name, u_int namelen, void *oldp, size_t *oldlenp, #endif /* SMALL_KERNEL */ -#ifdef __HAVE_CPUINFO int sysctl_cptime2(int *name, u_int namelen, void *oldp, size_t *oldlenp, void *newp, size_t newlen) @@ -1898,4 +1890,3 @@ sysctl_cptime2(int *name, u_int namelen, void *oldp, size_t *oldlenp, &ci->ci_schedstate.spc_cp_time, sizeof(ci->ci_schedstate.spc_cp_time))); } -#endif diff --git a/sys/kern/sched_bsd.c b/sys/kern/sched_bsd.c index 699f4dd807a..186be456346 100644 --- a/sys/kern/sched_bsd.c +++ b/sys/kern/sched_bsd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sched_bsd.c,v 1.10 2007/02/06 18:42:37 art Exp $ */ +/* $OpenBSD: sched_bsd.c,v 1.11 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: kern_synch.c,v 1.37 1996/04/22 01:38:37 christos Exp $ */ /*- @@ -54,13 +54,8 @@ #include <machine/cpu.h> -#ifndef __HAVE_CPUINFO -u_char curpriority; /* usrpri of curproc */ -#endif int lbolt; /* once a second sleep address */ -#ifdef __HAVE_CPUINFO int rrticks_init; /* # of hardclock ticks per roundrobin() */ -#endif int whichqs; /* Bit mask summary of non-empty Q's. */ struct prochd qs[NQS]; @@ -69,11 +64,7 @@ struct SIMPLELOCK sched_lock; void scheduler_start(void); -#ifdef __HAVE_CPUINFO void roundrobin(struct cpu_info *); -#else -void roundrobin(void *); -#endif void schedcpu(void *); void updatepri(struct proc *); void endtsleep(void *); @@ -81,9 +72,6 @@ void endtsleep(void *); void scheduler_start(void) { -#ifndef __HAVE_CPUINFO - static struct timeout roundrobin_to; -#endif static struct timeout schedcpu_to; /* @@ -93,16 +81,9 @@ scheduler_start(void) * make them do their job. */ -#ifndef __HAVE_CPUINFO - timeout_set(&roundrobin_to, roundrobin, &roundrobin_to); -#endif timeout_set(&schedcpu_to, schedcpu, &schedcpu_to); -#ifdef __HAVE_CPUINFO rrticks_init = hz / 10; -#else - roundrobin(&roundrobin_to); -#endif schedcpu(&schedcpu_to); } @@ -110,7 +91,6 @@ scheduler_start(void) * Force switch among equal priority processes every 100ms. */ /* ARGSUSED */ -#ifdef __HAVE_CPUINFO void roundrobin(struct cpu_info *ci) { @@ -136,33 +116,6 @@ roundrobin(struct cpu_info *ci) need_resched(curcpu()); } -#else -void -roundrobin(void *arg) -{ - struct timeout *to = (struct timeout *)arg; - struct proc *p = curproc; - int s; - - if (p != NULL) { - s = splstatclock(); - if (p->p_schedflags & PSCHED_SEENRR) { - /* - * The process has already been through a roundrobin - * without switching and may be hogging the CPU. - * Indicate that the process should yield. - */ - p->p_schedflags |= PSCHED_SHOULDYIELD; - } else { - p->p_schedflags |= PSCHED_SEENRR; - } - splx(s); - } - - need_resched(NULL); - timeout_add(to, hz / 10); -} -#endif /* * Constants for digital decay and forget: @@ -422,9 +375,7 @@ mi_switch(void) int hold_count; int sched_count; #endif -#ifdef __HAVE_CPUINFO struct schedstate_percpu *spc = &p->p_cpu->ci_schedstate; -#endif SCHED_ASSERT_LOCKED(); @@ -445,7 +396,6 @@ mi_switch(void) * XXX - use microuptime here to avoid strangeness. */ microuptime(&tv); -#ifdef __HAVE_CPUINFO if (timercmp(&tv, &spc->spc_runtime, <)) { #if 0 printf("uptime is not monotonic! " @@ -457,18 +407,6 @@ mi_switch(void) timersub(&tv, &spc->spc_runtime, &tv); timeradd(&p->p_rtime, &tv, &p->p_rtime); } -#else - if (timercmp(&tv, &runtime, <)) { -#if 0 - printf("uptime is not monotonic! " - "tv=%lu.%06lu, runtime=%lu.%06lu\n", - tv.tv_sec, tv.tv_usec, runtime.tv_sec, runtime.tv_usec); -#endif - } else { - timersub(&tv, &runtime, &tv); - timeradd(&p->p_rtime, &tv, &p->p_rtime); - } -#endif /* * Check if the process exceeds its cpu resource allocation. @@ -489,11 +427,7 @@ mi_switch(void) * Process is about to yield the CPU; clear the appropriate * scheduling flags. */ -#ifdef __HAVE_CPUINFO spc->spc_schedflags &= ~SPCF_SWITCHCLEAR; -#else - p->p_schedflags &= ~PSCHED_SWITCHCLEAR; -#endif /* * Pick a new current process and record its start time. @@ -512,13 +446,9 @@ mi_switch(void) * be running on a new CPU now, so don't use the cache'd * schedstate_percpu pointer. */ -#ifdef __HAVE_CPUINFO KDASSERT(p->p_cpu != NULL); KDASSERT(p->p_cpu == curcpu()); microuptime(&p->p_cpu->ci_schedstate.spc_runtime); -#else - microuptime(&runtime); -#endif #if defined(MULTIPROCESSOR) /* @@ -549,9 +479,7 @@ rqinit(void) static __inline void resched_proc(struct proc *p, u_char pri) { -#ifdef __HAVE_CPUINFO struct cpu_info *ci; -#endif /* * XXXSMP @@ -575,14 +503,9 @@ resched_proc(struct proc *p, u_char pri) * There is also the issue of locking the other CPU's * sched state, which we currently do not do. */ -#ifdef __HAVE_CPUINFO ci = (p->p_cpu != NULL) ? p->p_cpu : curcpu(); if (pri < ci->ci_schedstate.spc_curpriority) need_resched(ci); -#else - if (pri < curpriority) - need_resched(NULL); -#endif } /* diff --git a/sys/sys/kernel.h b/sys/sys/kernel.h index d14da10dbab..f0615ea2007 100644 --- a/sys/sys/kernel.h +++ b/sys/sys/kernel.h @@ -1,4 +1,4 @@ -/* $OpenBSD: kernel.h,v 1.11 2004/07/28 17:15:12 tholo Exp $ */ +/* $OpenBSD: kernel.h,v 1.12 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: kernel.h,v 1.11 1995/03/03 01:24:16 cgd Exp $ */ /*- @@ -48,9 +48,6 @@ extern int domainnamelen; /* 1.2 */ extern struct timeval boottime; -#ifndef __HAVE_CPUINFO -extern struct timeval runtime; -#endif #ifndef __HAVE_TIMECOUNTER extern volatile struct timeval mono_time; extern volatile struct timeval time; diff --git a/sys/sys/proc.h b/sys/sys/proc.h index 0c4733bda05..8af1af06d56 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: proc.h,v 1.97 2007/05/08 11:16:31 art Exp $ */ +/* $OpenBSD: proc.h,v 1.98 2007/05/16 17:27:30 art Exp $ */ /* $NetBSD: proc.h,v 1.44 1996/04/22 01:23:21 christos Exp $ */ /*- @@ -47,9 +47,7 @@ #include <sys/event.h> /* For struct klist */ #include <machine/atomic.h> -#ifdef __HAVE_CPUINFO #define curproc curcpu()->ci_curproc -#endif #ifdef _KERNEL #define __need_process #endif @@ -198,11 +196,7 @@ struct proc { const char *p_wmesg; /* Reason for sleep. */ u_int p_swtime; /* Time swapped in or out. */ u_int p_slptime; /* Time since last blocked. */ -#ifdef __HAVE_CPUINFO struct cpu_info * __volatile p_cpu; /* CPU we're running on. */ -#else - int p_schedflags; /* PSCHED_* flags */ -#endif struct itimerval p_realtimer; /* Alarm timer. */ struct timeout p_realit_to; /* Alarm timeout. */ @@ -324,17 +318,6 @@ struct proc { #define P_EXITSIG(p) \ (((p)->p_flag & P_TRACED) ? SIGCHLD : (p)->p_exitsig) -#ifndef __HAVE_CPUINFO -/* - * These flags are kept in p_schedflags. p_schedflags may be modified - * only at splstatclock(). - */ -#define PSCHED_SEENRR 0x0001 /* process has been in roundrobin() */ -#define PSCHED_SHOULDYIELD 0x0002 /* process should yield */ - -#define PSCHED_SWITCHCLEAR (PSCHED_SEENRR|PSCHED_SHOULDYIELD) -#endif - /* * MOVE TO ucred.h? * @@ -403,9 +386,6 @@ extern u_long pidhash; extern LIST_HEAD(pgrphashhead, pgrp) *pgrphashtbl; extern u_long pgrphash; -#if !defined(__HAVE_CPUINFO) && !defined(curproc) -extern struct proc *curproc; /* Current running proc. */ -#endif extern struct proc proc0; /* Process slot for swapper. */ extern int nprocs, maxproc; /* Current and max number of procs. */ extern int randompid; /* fork() should create random pid's */ diff --git a/sys/sys/sched.h b/sys/sys/sched.h index f45101cd590..7f35dc91ada 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sched.h,v 1.14 2007/02/03 16:48:23 miod Exp $ */ +/* $OpenBSD: sched.h,v 1.15 2007/05/16 17:27:31 art Exp $ */ /* $NetBSD: sched.h,v 1.2 1999/02/28 18:14:58 ross Exp $ */ /*- @@ -123,10 +123,8 @@ extern int rrticks_init; /* ticks per roundrobin() */ struct proc; void schedclock(struct proc *); -#ifdef __HAVE_CPUINFO struct cpu_info; void roundrobin(struct cpu_info *); -#endif /* Inherit the parent's scheduler history */ #define scheduler_fork_hook(parent, child) do { \ @@ -138,9 +136,6 @@ void roundrobin(struct cpu_info *); (parent)->p_estcpu = ESTCPULIM((parent)->p_estcpu + (child)->p_estcpu);\ } while (0) -#if !defined(__HAVE_CPUINFO) && !defined(splsched) -#define splsched() splhigh() -#endif #ifndef IPL_SCHED #define IPL_SCHED IPL_HIGH #endif |