summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1997-04-26 11:46:25 +0000
committerpeter <peter@FreeBSD.org>1997-04-26 11:46:25 +0000
commit6323aa10bffe459912ba8b2f8592c7ac4ffd8705 (patch)
treebf48960e09e26f0de373de093c89322724bbdd64 /sys/vm
parent96efe480c0c091aecb2f359675c74aca30f36a4a (diff)
downloadFreeBSD-src-6323aa10bffe459912ba8b2f8592c7ac4ffd8705.zip
FreeBSD-src-6323aa10bffe459912ba8b2f8592c7ac4ffd8705.tar.gz
Man the liferafts! Here comes the long awaited SMP -> -current merge!
There are various options documented in i386/conf/LINT, there is more to come over the next few days. The kernel should run pretty much "as before" without the options to activate SMP mode. There are a handful of known "loose ends" that need to be fixed, but have been put off since the SMP kernel is in a moderately good condition at the moment. This commit is the result of the tinkering and testing over the last 14 months by many people. A special thanks to Steve Passe for implementing the APIC code!
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_kern.c8
-rw-r--r--sys/vm/vm_kern.h3
-rw-r--r--sys/vm/vm_meter.c4
-rw-r--r--sys/vm/vm_object.c6
4 files changed, 17 insertions, 4 deletions
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c
index a875230..af36cfd 100644
--- a/sys/vm/vm_kern.c
+++ b/sys/vm/vm_kern.c
@@ -61,12 +61,14 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_kern.c,v 1.33 1997/02/22 09:48:21 peter Exp $
+ * $Id: vm_kern.c,v 1.34 1997/03/31 11:11:24 davidg Exp $
*/
/*
* Kernel memory management.
*/
+#include "opt_smp.h"
+#include "opt_smp_privpages.h"
#include <sys/param.h>
#include <sys/systm.h>
@@ -99,6 +101,10 @@ vm_map_t mb_map=0;
int mb_map_full=0;
vm_map_t io_map=0;
vm_map_t phys_map=0;
+#if defined(SMP) && defined(SMP_PRIVPAGES)
+vm_map_t ppage_map=0;
+#endif
+
/*
* kmem_alloc_pageable:
diff --git a/sys/vm/vm_kern.h b/sys/vm/vm_kern.h
index b23150f..5d85318 100644
--- a/sys/vm/vm_kern.h
+++ b/sys/vm/vm_kern.h
@@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id: vm_kern.h,v 1.12 1997/02/22 09:48:21 peter Exp $
+ * $Id: vm_kern.h,v 1.13 1997/03/31 11:11:26 davidg Exp $
*/
#ifndef _VM_VM_KERN_H_
@@ -78,6 +78,7 @@ extern vm_map_t clean_map;
extern vm_map_t phys_map;
extern vm_map_t exec_map;
extern vm_map_t u_map;
+extern vm_map_t ppage_map;
extern vm_offset_t kernel_vm_end;
/* XXX - elsewhere? */
diff --git a/sys/vm/vm_meter.c b/sys/vm/vm_meter.c
index c58423c..b6ac38c 100644
--- a/sys/vm/vm_meter.c
+++ b/sys/vm/vm_meter.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)vm_meter.c 8.4 (Berkeley) 1/4/94
- * $Id$
+ * $Id: vm_meter.c,v 1.20 1997/02/22 09:48:25 peter Exp $
*/
#include <sys/param.h>
@@ -79,6 +79,8 @@ loadav(struct loadavg *avg)
register struct proc *p;
for (nrun = 0, p = allproc.lh_first; p != 0; p = p->p_list.le_next) {
+ if (p->p_flag & P_IDLEPROC)
+ continue;
switch (p->p_stat) {
case SSLEEP:
if (p->p_priority > PZERO || p->p_slptime != 0)
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 4de7814..ded4374 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
- * $Id$
+ * $Id: vm_object.c,v 1.90 1997/02/22 09:48:28 peter Exp $
*/
/*
@@ -1451,6 +1451,10 @@ vm_object_in_map( object)
return 1;
if( _vm_object_in_map( u_map, object, 0))
return 1;
+#if defined(SMP) && defined(SMP_PRIVPAGES)
+ if( _vm_object_in_map( ppage_map, object, 0))
+ return 1;
+#endif
return 0;
}
OpenPOWER on IntegriCloud