summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_proc.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2002-11-21 01:22:38 +0000
committerjeff <jeff@FreeBSD.org>2002-11-21 01:22:38 +0000
commit49bf96275f3964fb635238eb94eec3afbc449864 (patch)
treeffffe185be0dc78e5e3c311d7fcb3156b1524543 /sys/kern/kern_proc.c
parent8fd30b58c6c738e9fb184bb33bf58c140f0fac3a (diff)
downloadFreeBSD-src-49bf96275f3964fb635238eb94eec3afbc449864.zip
FreeBSD-src-49bf96275f3964fb635238eb94eec3afbc449864.tar.gz
- Implement a mechanism for allowing schedulers to place scheduler dependant
data in the scheduler independant structures (proc, ksegrp, kse, thread). - Implement unused stubs for this mechanism in sched_4bsd. Approved by: re Reviewed by: luigi, trb Tested on: x86, alpha
Diffstat (limited to 'sys/kern/kern_proc.c')
-rw-r--r--sys/kern/kern_proc.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index a016bba..cf9de34 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -45,6 +45,7 @@
#include <sys/mutex.h>
#include <sys/proc.h>
#include <sys/kse.h>
+#include <sys/sched.h>
#include <sys/smp.h>
#include <sys/sysctl.h>
#include <sys/filedesc.h>
@@ -123,7 +124,7 @@ procinit()
LIST_INIT(&zombproc);
pidhashtbl = hashinit(maxproc / 4, M_PROC, &pidhash);
pgrphashtbl = hashinit(maxproc / 4, M_PROC, &pgrphash);
- proc_zone = uma_zcreate("PROC", sizeof (struct proc),
+ proc_zone = uma_zcreate("PROC", sched_sizeof_proc(),
proc_ctor, proc_dtor, proc_init, proc_fini,
UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
uihashinit();
@@ -137,8 +138,6 @@ proc_ctor(void *mem, int size, void *arg)
{
struct proc *p;
- KASSERT((size == sizeof(struct proc)),
- ("size mismatch: %d != %d\n", size, (int)sizeof(struct proc)));
p = (struct proc *)mem;
}
@@ -154,8 +153,6 @@ proc_dtor(void *mem, int size, void *arg)
struct kse *ke;
/* INVARIANTS checks go here */
- KASSERT((size == sizeof(struct proc)),
- ("size mismatch: %d != %d\n", size, (int)sizeof(struct proc)));
p = (struct proc *)mem;
KASSERT((p->p_numthreads == 1),
("bad number of threads in exiting process"));
@@ -194,9 +191,8 @@ proc_init(void *mem, int size)
struct ksegrp *kg;
struct kse *ke;
- KASSERT((size == sizeof(struct proc)),
- ("size mismatch: %d != %d\n", size, (int)sizeof(struct proc)));
p = (struct proc *)mem;
+ p->p_sched = (struct p_sched *)&p[1];
vm_proc_new(p);
td = thread_alloc();
ke = kse_alloc();
@@ -215,8 +211,6 @@ proc_fini(void *mem, int size)
struct ksegrp *kg;
struct kse *ke;
- KASSERT((size == sizeof(struct proc)),
- ("size mismatch: %d != %d\n", size, (int)sizeof(struct proc)));
p = (struct proc *)mem;
KASSERT((p->p_numthreads == 1),
("bad number of threads in freeing process"));
OpenPOWER on IntegriCloud