Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Nov 2005 17:41:30 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 86473 for review
Message-ID:  <200511081741.jA8HfU0O018638@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=86473

Change 86473 by jhb@jhb_slimer on 2005/11/08 17:40:52

	IFC @86472.

Affected files ...

.. //depot/projects/smpng/sys/alpha/alpha/mp_machdep.c#34 integrate
.. //depot/projects/smpng/sys/alpha/alpha/pmap.c#74 integrate
.. //depot/projects/smpng/sys/alpha/conf/GENERIC#51 integrate
.. //depot/projects/smpng/sys/alpha/include/smp.h#6 integrate
.. //depot/projects/smpng/sys/amd64/amd64/io_apic.c#11 integrate
.. //depot/projects/smpng/sys/amd64/amd64/pmap.c#49 integrate
.. //depot/projects/smpng/sys/amd64/conf/GENERIC#39 integrate
.. //depot/projects/smpng/sys/amd64/ia32/ia32_signal.c#13 integrate
.. //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#11 integrate
.. //depot/projects/smpng/sys/arm/arm/machdep.c#15 integrate
.. //depot/projects/smpng/sys/arm/arm/pmap.c#22 integrate
.. //depot/projects/smpng/sys/arm/include/pcpu.h#3 integrate
.. //depot/projects/smpng/sys/arm/include/pmap.h#13 integrate
.. //depot/projects/smpng/sys/boot/i386/boot2/boot2.c#29 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#29 integrate
.. //depot/projects/smpng/sys/compat/ia32/ia32_sysvec.c#13 integrate
.. //depot/projects/smpng/sys/compat/ndis/ndis_var.h#25 integrate
.. //depot/projects/smpng/sys/compat/ndis/ntoskrnl_var.h#21 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_hal.c#19 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#37 integrate
.. //depot/projects/smpng/sys/conf/Makefile.alpha#26 integrate
.. //depot/projects/smpng/sys/conf/Makefile.amd64#13 integrate
.. //depot/projects/smpng/sys/conf/Makefile.arm#14 integrate
.. //depot/projects/smpng/sys/conf/Makefile.i386#24 integrate
.. //depot/projects/smpng/sys/conf/Makefile.ia64#31 integrate
.. //depot/projects/smpng/sys/conf/Makefile.pc98#23 integrate
.. //depot/projects/smpng/sys/conf/Makefile.powerpc#32 integrate
.. //depot/projects/smpng/sys/conf/Makefile.sparc64#27 integrate
.. //depot/projects/smpng/sys/conf/files.powerpc#24 integrate
.. //depot/projects/smpng/sys/contrib/dev/acpica/dbcmds.c#23 integrate
.. //depot/projects/smpng/sys/contrib/dev/acpica/rscalc.c#14 integrate
.. //depot/projects/smpng/sys/contrib/dev/acpica/rsmisc.c#11 integrate
.. //depot/projects/smpng/sys/dev/aac/aac_pci.c#41 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi.c#89 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_pcib.c#33 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_resource.c#29 integrate
.. //depot/projects/smpng/sys/dev/amr/amr.c#34 integrate
.. //depot/projects/smpng/sys/dev/amr/amr_cam.c#15 integrate
.. //depot/projects/smpng/sys/dev/amr/amr_pci.c#23 integrate
.. //depot/projects/smpng/sys/dev/amr/amrvar.h#20 integrate
.. //depot/projects/smpng/sys/dev/fb/boot_font.c#5 integrate
.. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#38 integrate
.. //depot/projects/smpng/sys/dev/pccbb/pccbbdevid.h#17 integrate
.. //depot/projects/smpng/sys/dev/puc/puc.c#25 integrate
.. //depot/projects/smpng/sys/dev/puc/pucdata.c#32 integrate
.. //depot/projects/smpng/sys/dev/rp/rp.c#21 integrate
.. //depot/projects/smpng/sys/dev/si/si_pci.c#6 integrate
.. //depot/projects/smpng/sys/dev/si/sireg.h#3 integrate
.. //depot/projects/smpng/sys/dev/sound/isa/mss.c#26 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/als4000.c#18 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#30 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/mixer.c#22 integrate
.. //depot/projects/smpng/sys/dev/usb/ubser.c#11 integrate
.. //depot/projects/smpng/sys/i386/conf/GENERIC#68 integrate
.. //depot/projects/smpng/sys/i386/i386/pmap.c#89 integrate
.. //depot/projects/smpng/sys/i386/i386/trap.c#88 integrate
.. //depot/projects/smpng/sys/i386/pci/pci_cfgreg.c#30 integrate
.. //depot/projects/smpng/sys/ia64/ia64/pmap.c#74 integrate
.. //depot/projects/smpng/sys/kern/kern_exec.c#91 integrate
.. //depot/projects/smpng/sys/kern/kern_exit.c#104 integrate
.. //depot/projects/smpng/sys/kern/kern_kse.c#27 integrate
.. //depot/projects/smpng/sys/kern/kern_malloc.c#41 integrate
.. //depot/projects/smpng/sys/kern/kern_mbuf.c#11 integrate
.. //depot/projects/smpng/sys/kern/kern_proc.c#79 integrate
.. //depot/projects/smpng/sys/kern/kern_resource.c#56 integrate
.. //depot/projects/smpng/sys/kern/kern_sig.c#112 integrate
.. //depot/projects/smpng/sys/kern/kern_thr.c#29 integrate
.. //depot/projects/smpng/sys/kern/kern_thread.c#82 integrate
.. //depot/projects/smpng/sys/kern/kern_time.c#38 integrate
.. //depot/projects/smpng/sys/kern/subr_kdb.c#16 integrate
.. //depot/projects/smpng/sys/kern/subr_pcpu.c#8 integrate
.. //depot/projects/smpng/sys/kern/uipc_mbuf.c#40 integrate
.. //depot/projects/smpng/sys/kern/vfs_aio.c#63 integrate
.. //depot/projects/smpng/sys/kern/vfs_mount.c#51 integrate
.. //depot/projects/smpng/sys/modules/i2c/controllers/viapm/Makefile#2 integrate
.. //depot/projects/smpng/sys/net/if_vlan.c#41 integrate
.. //depot/projects/smpng/sys/netgraph/ng_eiface.c#23 integrate
.. //depot/projects/smpng/sys/netgraph/ng_ether.c#28 integrate
.. //depot/projects/smpng/sys/netgraph/ng_fec.c#17 integrate
.. //depot/projects/smpng/sys/netinet/if_ether.c#42 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_socket.c#38 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#54 integrate
.. //depot/projects/smpng/sys/powerpc/include/mmuvar.h#1 branch
.. //depot/projects/smpng/sys/powerpc/include/pmap.h#16 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/machdep.c#65 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/mmu_if.m#1 branch
.. //depot/projects/smpng/sys/powerpc/powerpc/mmu_oea.c#1 branch
.. //depot/projects/smpng/sys/powerpc/powerpc/pmap.c#57 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/pmap_dispatch.c#1 branch
.. //depot/projects/smpng/sys/sparc64/include/smp.h#16 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/mp_machdep.c#26 integrate
.. //depot/projects/smpng/sys/sys/mbuf.h#55 integrate
.. //depot/projects/smpng/sys/sys/mount.h#44 integrate
.. //depot/projects/smpng/sys/sys/proc.h#155 integrate
.. //depot/projects/smpng/sys/sys/signal.h#21 integrate
.. //depot/projects/smpng/sys/sys/signalvar.h#27 integrate
.. //depot/projects/smpng/sys/sys/sysent.h#14 integrate
.. //depot/projects/smpng/sys/ufs/ufs/ufs_extattr.c#37 integrate
.. //depot/projects/smpng/sys/vm/vm_page.c#67 integrate

Differences ...

==== //depot/projects/smpng/sys/alpha/alpha/mp_machdep.c#34 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.56 2005/04/04 21:53:51 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/mp_machdep.c,v 1.57 2005/11/03 21:08:19 jhb Exp $");
 
 #include "opt_kstack_pages.h"
 
@@ -62,6 +62,7 @@
 static struct mtx ap_boot_mtx;
 
 u_int64_t boot_cpu_id;
+struct pcb stoppcbs[MAXCPU];
 
 static void	release_aps(void *dummy);
 static int	smp_cpu_enabled(struct pcs *pcsp);
@@ -543,11 +544,12 @@
 
 		case IPI_STOP:
 			CTR0(KTR_SMP, "IPI_STOP");
-			atomic_set_int(&stopped_cpus, cpumask);
+			savectx(&stoppcbs[PCPU_GET(cpuid)]);
+			atomic_set_acq_int(&stopped_cpus, cpumask);
 			while ((started_cpus & cpumask) == 0)
-				alpha_mb();
-			atomic_clear_int(&started_cpus, cpumask);
-			atomic_clear_int(&stopped_cpus, cpumask);
+				cpu_spinwait();
+			atomic_clear_rel_int(&started_cpus, cpumask);
+			atomic_clear_rel_int(&stopped_cpus, cpumask);
 			break;
 		}
 	}

==== //depot/projects/smpng/sys/alpha/alpha/pmap.c#74 (text+ko) ====

@@ -148,7 +148,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.182 2005/11/02 08:23:28 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.183 2005/11/04 18:03:23 alc Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -186,8 +186,6 @@
 #define PMAP_DIAGNOSTIC
 #endif
 
-#define MINPV 2048
-
 #if 0
 #define PMAP_DIAGNOSTIC
 #define PMAP_DEBUG
@@ -572,28 +570,24 @@
 void
 pmap_init(void)
 {
+	int shpgperproc = PMAP_SHPGPERPROC;
 
 	/*
-	 * init the pv free list
+	 * Initialize the address space (zone) for the pv entries.  Set a
+	 * high water mark so that the system can recover from excessive
+	 * numbers of pv entries.
 	 */
-	pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL,
+	pvzone = uma_zcreate("PV ENTRY", sizeof(struct pv_entry), NULL, NULL,
 	    NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
-	uma_prealloc(pvzone, MINPV);
+	TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
+	pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
+	TUNABLE_INT_FETCH("vm.pmap.pv_entries", &pv_entry_max);
+	pv_entry_high_water = 9 * (pv_entry_max / 10);
 }
 
-/*
- * Initialize the address space (zone) for the pv_entries.  Set a
- * high water mark so that the system can recover from excessive
- * numbers of pv entries.
- */
 void
 pmap_init2()
 {
-	int shpgperproc = PMAP_SHPGPERPROC;
-
-	TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
-	pv_entry_max = shpgperproc * maxproc + vm_page_array_size;
-	pv_entry_high_water = 9 * (pv_entry_max / 10);
 }
 
 
@@ -1313,8 +1307,7 @@
 get_pv_entry(void)
 {
 	pv_entry_count++;
-	if (pv_entry_high_water &&
-		(pv_entry_count > pv_entry_high_water) &&
+	if ((pv_entry_count > pv_entry_high_water) &&
 		(pmap_pagedaemon_waken == 0)) {
 		pmap_pagedaemon_waken = 1;
 		wakeup (&vm_pages_needed);

==== //depot/projects/smpng/sys/alpha/conf/GENERIC#51 (text+ko) ====

@@ -18,7 +18,7 @@
 #
 # For hardware specific information check HARDWARE.TXT
 #
-# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.188 2005/09/24 16:47:34 wilko Exp $
+# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.189 2005/11/05 19:48:53 marcel Exp $
 
 machine		alpha
 cpu		EV4
@@ -143,8 +143,9 @@
 
 device		mcclock		# MC146818 real time clock device
 
-# Serial (COM) ports (required)
+# Serial (COM) ports
 device		sio		# 8250, 16[45]50 based serial ports
+device		uart		# Generic UART driver
 
 # Parallel port
 device		ppc
@@ -155,7 +156,7 @@
 
 # If you've got a "dumb" serial or parallel PCI card that is
 # supported by the puc(4) glue driver, uncomment the following
-# line to enable it (connects to the sio and/or ppc drivers):
+# line to enable it (connects to sio, uart and/or ppc drivers):
 #device		puc
 
 # PCI Ethernet NICs.

==== //depot/projects/smpng/sys/alpha/include/smp.h#6 (text+ko) ====

@@ -6,7 +6,7 @@
  * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
  * ----------------------------------------------------------------------------
  *
- * $FreeBSD: src/sys/alpha/include/smp.h,v 1.8 2005/01/05 20:05:50 imp Exp $
+ * $FreeBSD: src/sys/alpha/include/smp.h,v 1.9 2005/11/03 21:08:19 jhb Exp $
  *
  */
 
@@ -27,6 +27,7 @@
 #ifndef LOCORE
 
 extern u_int64_t		boot_cpu_id;
+extern struct pcb		stoppcbs[];
 
 void	ipi_selected(u_int cpus, u_int64_t ipi);
 void	ipi_all(u_int64_t ipi);

==== //depot/projects/smpng/sys/amd64/amd64/io_apic.c#11 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.18 2005/11/02 20:11:46 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.19 2005/11/04 23:02:28 peter Exp $");
 
 #include "opt_atpic.h"
 #include "opt_isa.h"
@@ -65,7 +65,7 @@
 
 #define	TODO		printf("%s: not implemented!\n", __func__)
 
-static MALLOC_DEFINE(M_IOAPIC, "ioapic", "I/O APIC structures");
+static MALLOC_DEFINE(M_IOAPIC, "io_apic", "I/O APIC structures");
 
 /*
  * I/O APIC interrupt source driver.  Each pin is assigned an IRQ cookie

==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#49 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.531 2005/10/31 21:25:33 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.532 2005/11/04 18:03:23 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -152,8 +152,6 @@
 #define PMAP_DIAGNOSTIC
 #endif
 
-#define MINPV 2048
-
 #if !defined(PMAP_DIAGNOSTIC)
 #define PMAP_INLINE __inline
 #else
@@ -567,30 +565,25 @@
 void
 pmap_init(void)
 {
+	int shpgperproc = PMAP_SHPGPERPROC;
 
 	/*
-	 * init the pv free list
+	 * Initialize the address space (zone) for the pv entries.  Set a
+	 * high water mark so that the system can recover from excessive
+	 * numbers of pv entries.
 	 */
-	pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, 
+	pvzone = uma_zcreate("PV ENTRY", sizeof(struct pv_entry), NULL, NULL, 
 	    NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
-	uma_prealloc(pvzone, MINPV);
+	TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
+	pv_entry_max = shpgperproc * maxproc + cnt.v_page_count;
+	TUNABLE_INT_FETCH("vm.pmap.pv_entries", &pv_entry_max);
+	pv_entry_high_water = 9 * (pv_entry_max / 10);
+	uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max);
 }
 
-/*
- * Initialize the address space (zone) for the pv_entries.  Set a
- * high water mark so that the system can recover from excessive
- * numbers of pv entries.
- */
 void
 pmap_init2()
 {
-	int shpgperproc = PMAP_SHPGPERPROC;
-
-	TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
-	pv_entry_max = shpgperproc * maxproc + vm_page_array_size;
-	TUNABLE_INT_FETCH("vm.pmap.pv_entries", &pv_entry_max);
-	pv_entry_high_water = 9 * (pv_entry_max / 10);
-	uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max);
 }
 
 
@@ -1442,8 +1435,7 @@
 get_pv_entry(void)
 {
 	pv_entry_count++;
-	if (pv_entry_high_water &&
-		(pv_entry_count > pv_entry_high_water) &&
+	if ((pv_entry_count > pv_entry_high_water) &&
 		(pmap_pagedaemon_waken == 0)) {
 		pmap_pagedaemon_waken = 1;
 		wakeup (&vm_pages_needed);

==== //depot/projects/smpng/sys/amd64/conf/GENERIC#39 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.445 2005/11/01 22:59:02 jhb Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.446 2005/11/05 19:48:53 marcel Exp $
 
 machine		amd64
 cpu		HAMMER
@@ -164,6 +164,7 @@
 
 # Serial (COM) ports
 device		sio		# 8250, 16[45]50 based serial ports
+device		uart		# Generic UART driver
 
 # Parallel port
 device		ppc
@@ -175,7 +176,7 @@
 
 # If you've got a "dumb" serial or parallel PCI card that is
 # supported by the puc(4) glue driver, uncomment the following
-# line to enable it (connects to the sio and/or ppc drivers):
+# line to enable it (connects to sio, uart and/or ppc drivers):
 #device		puc
 
 # PCI Ethernet NICs.

==== //depot/projects/smpng/sys/amd64/ia32/ia32_signal.c#13 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.12 2005/10/14 12:43:43 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/ia32/ia32_signal.c,v 1.13 2005/11/04 20:32:26 ru Exp $");
 
 #include "opt_compat.h"
 
@@ -752,7 +752,7 @@
 	dst->si_uid = src->si_uid;
 	dst->si_status = src->si_status;
 	dst->si_addr = dst->si_addr;
-	dst->si_value.sigval_int = src->si_value.sigval_int;
+	dst->si_value.sigval_int = src->si_value.sival_int;
 	dst->si_band = src->si_band;
 	dst->__spare__[0] = src->si_trapno;
 }

==== //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#11 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.11 2005/10/14 20:22:57 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.12 2005/11/02 21:18:07 ps Exp $");
 
 /* XXX we use functions that might not exist. */
 #include "opt_compat.h"
@@ -121,7 +121,7 @@
 static void     linux_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask);
 static void	exec_linux_setregs(struct thread *td, u_long entry,
 				   u_long stack, u_long ps_strings);
-static void	linux32_fixlimits(struct image_params *imgp);
+static void	linux32_fixlimits(struct proc *p);
 
 /*
  * Linux syscalls return negative errno's, we do positive and map them
@@ -953,9 +953,8 @@
  * XXX copied from ia32_sysvec.c.
  */
 static void
-linux32_fixlimits(struct image_params *imgp)
+linux32_fixlimits(struct proc *p)
 {
-	struct proc *p = imgp->proc;
 	struct plimit *oldlim, *newlim;
 
 	if (linux32_maxdsiz == 0 && linux32_maxssiz == 0 &&

==== //depot/projects/smpng/sys/arm/arm/machdep.c#15 (text+ko) ====

@@ -44,7 +44,7 @@
 
 #include "opt_compat.h"
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.18 2005/10/14 12:43:44 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.19 2005/11/06 16:10:28 cognet Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -244,6 +244,7 @@
 	cpu_setup("");
 	identify_arm_cpu();
 	thread0.td_frame = (struct trapframe *)pcb->un_32.pcb32_sp - 1;
+	pmap_postinit();
 #ifdef ARM_CACHE_LOCK_ENABLE
 	pmap_kenter_user(ARM_TP_ADDRESS, ARM_TP_ADDRESS);
 	arm_lock_cache_line(ARM_TP_ADDRESS);

==== //depot/projects/smpng/sys/arm/arm/pmap.c#22 (text+ko) ====

@@ -147,7 +147,7 @@
 #include "opt_vm.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.39 2005/10/23 23:09:14 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.40 2005/11/06 16:10:28 cognet Exp $");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
@@ -398,11 +398,6 @@
  */
 #define	PV_BEEN_REFD(f)   (((f) & PVF_REF) != 0)
 
-/*
- * Data for the pv entry allocation mechanism
- */
-#define MINPV	2048
-
 #ifndef PMAP_SHPGPERPROC
 #define PMAP_SHPGPERPROC 200
 #endif
@@ -1949,6 +1944,7 @@
 void
 pmap_init(void)
 {
+	int shpgperproc = PMAP_SHPGPERPROC;
 
 	PDEBUG(1, printf("pmap_init: phys_start = %08x\n"));
 
@@ -1957,12 +1953,24 @@
 	 */
 	pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, 
 	    NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
-	uma_prealloc(pvzone, MINPV);
 	/*
 	 * Now it is safe to enable pv_table recording.
 	 */
 	PDEBUG(1, printf("pmap_init: done!\n"));
 
+	TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
+	
+	pv_entry_max = shpgperproc * maxproc + vm_page_array_size;
+	pv_entry_high_water = 9 * (pv_entry_max / 10);
+	l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor,
+	    NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
+	l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable),
+	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
+	    UMA_ZONE_VM | UMA_ZONE_NOFREE);
+
+	uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max);
+	uma_zone_set_obj(l2zone, &l2zone_obj, pv_entry_max);
+
 }
 
 int
@@ -2190,15 +2198,14 @@
 	return (rv);
 }
 
-/*
- * Initialize the address space (zone) for the pv_entries.  Set a
- * high water mark so that the system can recover from excessive
- * numbers of pv entries.
- */
+void
+pmap_init2(void)
+{
+}
+
 void
-pmap_init2()
+pmap_postinit(void)
 {
-	int shpgperproc = PMAP_SHPGPERPROC;
 	struct l2_bucket *l2b;
 	struct l1_ttable *l1;
 	pd_entry_t *pl1pt;
@@ -2206,21 +2213,6 @@
 	vm_offset_t va, eva;
 	u_int loop, needed;
 	
-	TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc);
-	
-	pv_entry_max = shpgperproc * maxproc + vm_page_array_size;
-	pv_entry_high_water = 9 * (pv_entry_max / 10);
-	l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor,
-	    NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE);
-	uma_prealloc(l2zone, 4096);
-	l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable),
-	    NULL, NULL, NULL, NULL, UMA_ALIGN_PTR,
-	    UMA_ZONE_VM | UMA_ZONE_NOFREE);
-	uma_prealloc(l2table_zone, 1024);
-
-	uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max);
-	uma_zone_set_obj(l2zone, &l2zone_obj, pv_entry_max);
-
 	needed = (maxproc / PMAP_DOMAINS) + ((maxproc % PMAP_DOMAINS) ? 1 : 0);
 	needed -= 1;
 	l1 = malloc(sizeof(*l1) * needed, M_VMPMAP, M_WAITOK);
@@ -3787,8 +3779,7 @@
 	pv_entry_t ret_value;
 	
 	pv_entry_count++;
-	if (pv_entry_high_water &&
-	    (pv_entry_count > pv_entry_high_water) &&
+	if ((pv_entry_count > pv_entry_high_water) &&
 	    (pmap_pagedaemon_waken == 0)) {
 	    	pmap_pagedaemon_waken = 1;
 	    	wakeup (&vm_pages_needed);

==== //depot/projects/smpng/sys/arm/include/pcpu.h#3 (text+ko) ====

@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  *	from: FreeBSD: src/sys/i386/include/globaldata.h,v 1.27 2001/04/27
- * $FreeBSD: src/sys/arm/include/pcpu.h,v 1.2 2004/11/04 19:19:44 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/pcpu.h,v 1.3 2005/11/08 13:01:29 cognet Exp $
  */
 
 #ifndef	_MACHINE_PCPU_H_
@@ -32,7 +32,6 @@
 
 #ifdef _KERNEL
 
-#include <machine/asmacros.h>
 #include <machine/frame.h>
 
 #define	ALT_STACK_SIZE	128

==== //depot/projects/smpng/sys/arm/include/pmap.h#13 (text+ko) ====

@@ -44,7 +44,7 @@
  *      from: @(#)pmap.h        7.4 (Berkeley) 5/12/91
  * 	from: FreeBSD: src/sys/i386/include/pmap.h,v 1.70 2000/11/30
  *
- * $FreeBSD: src/sys/arm/include/pmap.h,v 1.12 2005/10/04 16:29:31 cognet Exp $
+ * $FreeBSD: src/sys/arm/include/pmap.h,v 1.13 2005/11/06 16:10:27 cognet Exp $
  */
 
 #ifndef _MACHINE_PMAP_H_
@@ -509,6 +509,8 @@
 
 extern char *_tmppt;
 
+void	pmap_postinit(void);
+
 #ifdef ARM_USE_SMALL_ALLOC
 void	arm_add_smallalloc_pages(void *, void *, int, int);
 void 	arm_busy_pages(void);

==== //depot/projects/smpng/sys/boot/i386/boot2/boot2.c#29 (text+ko) ====

@@ -14,7 +14,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.78 2005/10/16 20:22:36 sobomax Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/boot2/boot2.c,v 1.79 2005/11/03 07:35:36 ru Exp $");
 
 #include <sys/param.h>
 #include <sys/disklabel.h>
@@ -67,7 +67,12 @@
 /* 0x1f is reserved for log2(RB_BOOTINFO). */
 
 /* pass: -a, -s, -r, -d, -c, -v, -h, -C, -g, -m, -p, -D */
-#define RBX_MASK	0x2011ffff
+#define RBX_MASK	(OPT_SET(RBX_ASKNAME) | OPT_SET(RBX_SINGLE) | \
+			OPT_SET(RBX_DFLTROOT) | OPT_SET(RBX_KDB ) | \
+			OPT_SET(RBX_CONFIG) | OPT_SET(RBX_VERBOSE) | \
+			OPT_SET(RBX_SERIAL) | OPT_SET(RBX_CDROM) | \
+			OPT_SET(RBX_GDB ) | OPT_SET(RBX_MUTE) | \
+			OPT_SET(RBX_PAUSE) | OPT_SET(RBX_DUAL))
 
 #define PATH_CONFIG	"/boot.config"
 #define PATH_BOOT3	"/boot/loader"
@@ -89,7 +94,8 @@
 #define TYPE_MAXHARD	TYPE_DA
 #define TYPE_FD		2
 
-#define OPT_CHECK(opt)	((opts >> (opt)) & 1)
+#define OPT_SET(opt)	(1 << (opt))
+#define OPT_CHECK(opt)	((opts) & OPT_SET(opt))
 
 extern uint32_t _end;
 
@@ -413,7 +419,7 @@
 		    if (*(uint8_t *)PTOV(0x496) & 0x10) {
 			cp = "yes";
 		    } else {
-			opts |= 1 << RBX_DUAL | 1 << RBX_SERIAL;
+			opts |= OPT_SET(RBX_DUAL) | OPT_SET(RBX_SERIAL);
 			cp = "no";
 		    }
 		    printf("Keyboard: %s\n", cp);
@@ -431,10 +437,10 @@
 		for (i = 0; c != optstr[i]; i++)
 		    if (i == NOPT - 1)
 			return -1;
-		opts ^= 1 << flags[i];
+		opts ^= OPT_SET(flags[i]);
 	    }
-	    ioctrl = opts & 1 << RBX_DUAL ? (IO_SERIAL|IO_KEYBOARD) :
-		     opts & 1 << RBX_SERIAL ? IO_SERIAL : IO_KEYBOARD;
+	    ioctrl = OPT_CHECK(RBX_DUAL) ? (IO_SERIAL|IO_KEYBOARD) :
+		     OPT_CHECK(RBX_SERIAL) ? IO_SERIAL : IO_KEYBOARD;
 	    if (ioctrl & IO_SERIAL)
 	        sio_init(115200 / comspeed);
 	} else {

==== //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#29 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.46 2005/10/31 21:09:56 ps Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.47 2005/11/06 18:12:43 ps Exp $");
 
 #include "opt_compat.h"
 
@@ -1033,7 +1033,7 @@
 			error = freebsd32_copyoutmsghdr(&msg, uap->msg);
 
 		if (error == 0)
-			error = freebsd32_copyoutiov(iov, iov->iov_len,
+			error = freebsd32_copyoutiov(iov, m32.msg_iovlen,
 			    (struct iovec32 *)(uintptr_t)m32.msg_iov, EMSGSIZE);
 	}
 	free(iov, M_IOV);

==== //depot/projects/smpng/sys/compat/ia32/ia32_sysvec.c#13 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.20 2005/01/29 23:11:58 sobomax Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ia32/ia32_sysvec.c,v 1.21 2005/11/02 21:18:07 ps Exp $");
 
 #include "opt_compat.h"
 
@@ -93,7 +93,7 @@
 #endif
 
 static register_t *ia32_copyout_strings(struct image_params *imgp);
-static void ia32_fixlimits(struct image_params *imgp);
+static void ia32_fixlimits(struct proc *p);
 
 extern struct sysent freebsd32_sysent[];
 
@@ -278,9 +278,8 @@
 SYSCTL_ULONG(_compat_ia32, OID_AUTO, maxvmem, CTLFLAG_RW, &ia32_maxvmem, 0, "");
 
 static void
-ia32_fixlimits(struct image_params *imgp)
+ia32_fixlimits(struct proc *p)
 {
-	struct proc *p = imgp->proc;
 	struct plimit *oldlim, *newlim;
 
 	if (ia32_maxdsiz == 0 && ia32_maxssiz == 0 && ia32_maxvmem == 0)

==== //depot/projects/smpng/sys/compat/ndis/ndis_var.h#25 (text+ko) ====

@@ -29,7 +29,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/compat/ndis/ndis_var.h,v 1.45 2005/11/02 18:01:04 wpaul Exp $
+ * $FreeBSD: src/sys/compat/ndis/ndis_var.h,v 1.46 2005/11/07 16:57:14 wpaul Exp $
  */
 
 #ifndef _NDIS_VAR_H_
@@ -1332,7 +1332,7 @@
 typedef struct ndis_packet_pool ndis_packet_pool;
 
 /* mbuf ext type for NDIS */
-#define EXT_NDIS		0x999
+#define EXT_NDIS		EXT_NET_DRV
 
 /* mtx type for NDIS */
 #define MTX_NDIS_LOCK "NDIS lock"

==== //depot/projects/smpng/sys/compat/ndis/ntoskrnl_var.h#21 (text+ko) ====

@@ -29,7 +29,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/compat/ndis/ntoskrnl_var.h,v 1.41 2005/10/26 06:52:57 wpaul Exp $
+ * $FreeBSD: src/sys/compat/ndis/ntoskrnl_var.h,v 1.42 2005/11/06 19:38:33 wpaul Exp $
  */
 
 #ifndef _NTOSKRNL_VAR_H_
@@ -1196,6 +1196,7 @@
 #define STATUS_MUTANT_NOT_OWNED		0xC0000046
 #define STATUS_INVALID_PARAMETER_2	0xC00000F0
 #define STATUS_INSUFFICIENT_RESOURCES	0xC000009A
+#define STATUS_NOT_FOUND		0xC0000225
 
 #define STATUS_WAIT_0			0x00000000
 

==== //depot/projects/smpng/sys/compat/ndis/subr_hal.c#19 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_hal.c,v 1.26 2005/10/21 05:23:20 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_hal.c,v 1.27 2005/11/06 19:38:33 wpaul Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -78,6 +78,8 @@
 static void READ_PORT_BUFFER_UCHAR(uint8_t *,
 	uint8_t *, uint32_t);
 static uint64_t KeQueryPerformanceCounter(uint64_t *);
+static void _KeLowerIrql(uint8_t);
+static uint8_t KeRaiseIrqlToDpcLevel(void);
 static void dummy (void);
 
 #define NDIS_MAXCPUS 64
@@ -370,10 +372,6 @@
 {
 	uint8_t			oldirql;
 
-	/* I am so going to hell for this. */
-	if (KeGetCurrentIrql() > DISPATCH_LEVEL)
-		panic("IRQL_NOT_LESS_THAN_OR_EQUAL");
-
 	KeRaiseIrql(DISPATCH_LEVEL, &oldirql);
 	KeAcquireSpinLockAtDpcLevel(lock);
 
@@ -416,13 +414,16 @@
 	uint8_t			oldirql;
 
 	oldirql = KeGetCurrentIrql();
-	if (irql < oldirql)
+
+	/* I am so going to hell for this. */
+	if (oldirql > irql)
 		panic("IRQL_NOT_LESS_THAN");
 
 	if (oldirql != DISPATCH_LEVEL) {
 		sched_pin();
 		mtx_lock(&disp_lock[curthread->td_oncpu]);
 	}
+/*printf("RAISE IRQL: %d %d\n", irql, oldirql);*/
 
 	return(oldirql);
 }
@@ -443,6 +444,23 @@
 	return;
 }
 
+static uint8_t
+KeRaiseIrqlToDpcLevel(void)
+{
+	uint8_t			irql;
+
+	KeRaiseIrql(DISPATCH_LEVEL, &irql);
+	return(irql);
+}
+
+static void
+_KeLowerIrql(oldirql)
+	uint8_t			oldirql;
+{
+	KeLowerIrql(oldirql);
+	return;
+}
+
 static void dummy()
 {
 	printf ("hal dummy called...\n");
@@ -469,6 +487,9 @@
 	IMPORT_SFUNC(KeQueryPerformanceCounter, 1),
 	IMPORT_FFUNC(KfLowerIrql, 1),
 	IMPORT_FFUNC(KfRaiseIrql, 1),
+	IMPORT_SFUNC(KeRaiseIrqlToDpcLevel, 0),
+#undef KeLowerIrql
+	IMPORT_SFUNC_MAP(KeLowerIrql, _KeLowerIrql, 1),
 
 	/*
 	 * This last entry is a catch-all for any function we haven't

==== //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#37 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.81 2005/11/02 18:01:04 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.82 2005/11/06 19:38:33 wpaul Exp $");
 
 #include <sys/ctype.h>
 #include <sys/unistd.h>
@@ -227,6 +227,10 @@
 	uint32_t, void *, uint8_t, void **, void **);
 static void ObfDereferenceObject(void *);
 static uint32_t ZwClose(ndis_handle);
+static uint32_t WmiQueryTraceInformation(uint32_t, void *, uint32_t,
+	uint32_t, void *);
+static uint32_t WmiTraceMessage(uint64_t, uint32_t, void *, uint16_t, ...);
+static uint32_t IoWMIRegistrationControl(device_object *, uint32_t);
 static void *ntoskrnl_memset(void *, int, size_t);
 static char *ntoskrnl_strstr(char *, char *);
 static int ntoskrnl_toupper(int);
@@ -3336,6 +3340,32 @@
 	return(STATUS_SUCCESS);
 }
 
+static uint32_t
+WmiQueryTraceInformation(traceclass, traceinfo, infolen, reqlen, buf)
+	uint32_t		traceclass;
+	void			*traceinfo;
+	uint32_t		infolen;
+	uint32_t		reqlen;
+	void			*buf;
+{
+	return(STATUS_NOT_FOUND);
+}
+
+static uint32_t
+WmiTraceMessage(uint64_t loghandle, uint32_t messageflags,
+	void *guid, uint16_t messagenum, ...)
+{
+	return(STATUS_SUCCESS);
+}
+
+static uint32_t
+IoWMIRegistrationControl(dobj, action)
+	device_object		*dobj;
+	uint32_t		action;
+{
+	return(STATUS_SUCCESS);
+}
+
 /*
  * This is here just in case the thread returns without calling
  * PsTerminateSystemThread().
@@ -4215,6 +4245,9 @@
 	IMPORT_SFUNC(ZwClose, 1),
 	IMPORT_SFUNC(PsCreateSystemThread, 7),
 	IMPORT_SFUNC(PsTerminateSystemThread, 1),
+	IMPORT_SFUNC(IoWMIRegistrationControl, 2),
+	IMPORT_SFUNC(WmiQueryTraceInformation, 5),
+	IMPORT_CFUNC(WmiTraceMessage, 0),
 
 	/*
 	 * This last entry is a catch-all for any function we haven't

==== //depot/projects/smpng/sys/conf/Makefile.alpha#26 (text+ko) ====

@@ -1,7 +1,7 @@
 # Makefile.alpha -- with config changes.
 # Copyright 1990 W. Jolitz
 #	from: @(#)Makefile.alpha	7.1 5/10/91
-# $FreeBSD: src/sys/conf/Makefile.alpha,v 1.136 2005/10/27 19:27:54 jhb Exp $
+# $FreeBSD: src/sys/conf/Makefile.alpha,v 1.138 2005/11/04 04:14:49 imp Exp $
 #
 # Makefile for FreeBSD
 #

==== //depot/projects/smpng/sys/conf/Makefile.amd64#13 (text+ko) ====

@@ -2,7 +2,7 @@
 # Copyright 1990 W. Jolitz
 #	from: @(#)Makefile.i386	7.1 5/10/91
 #	from FreeBSD: src/sys/conf/Makefile.i386,v 1.255 2002/02/20 23:35:49
-# $FreeBSD: src/sys/conf/Makefile.amd64,v 1.18 2005/10/27 19:27:54 jhb Exp $
+# $FreeBSD: src/sys/conf/Makefile.amd64,v 1.20 2005/11/04 04:14:49 imp Exp $
 #
 # Makefile for FreeBSD
 #

==== //depot/projects/smpng/sys/conf/Makefile.arm#14 (text+ko) ====

@@ -1,7 +1,7 @@
 # Makefile.arm -- with config changes.
 # Copyright 1990 W. Jolitz
 #	from: @(#)Makefile.i386	7.1 5/10/91
-# $FreeBSD: src/sys/conf/Makefile.arm,v 1.14 2005/10/27 19:27:54 jhb Exp $
+# $FreeBSD: src/sys/conf/Makefile.arm,v 1.16 2005/11/04 04:14:49 imp Exp $
 #
 # Makefile for FreeBSD
 #

==== //depot/projects/smpng/sys/conf/Makefile.i386#24 (text+ko) ====

@@ -1,7 +1,7 @@
 # Makefile.i386 -- with config changes.
 # Copyright 1990 W. Jolitz
 #	from: @(#)Makefile.i386	7.1 5/10/91
-# $FreeBSD: src/sys/conf/Makefile.i386,v 1.266 2005/10/27 19:27:54 jhb Exp $
+# $FreeBSD: src/sys/conf/Makefile.i386,v 1.268 2005/11/04 04:14:49 imp Exp $
 #
 # Makefile for FreeBSD
 #

==== //depot/projects/smpng/sys/conf/Makefile.ia64#31 (text+ko) ====

@@ -1,7 +1,7 @@
 # Makefile.ia64 -- with config changes.
 # Copyright 1990 W. Jolitz
 #	from: src/sys/conf/Makefile.alpha,v 1.76
-# $FreeBSD: src/sys/conf/Makefile.ia64,v 1.63 2005/10/27 19:27:54 jhb Exp $
+# $FreeBSD: src/sys/conf/Makefile.ia64,v 1.65 2005/11/04 04:14:49 imp Exp $
 #
 # Makefile for FreeBSD
 #

==== //depot/projects/smpng/sys/conf/Makefile.pc98#23 (text+ko) ====

@@ -3,7 +3,7 @@
 # Makefile.i386 -- with config changes.
 # Copyright 1990 W. Jolitz
 #	from: @(#)Makefile.i386	7.1 5/10/91
-# $FreeBSD: src/sys/conf/Makefile.pc98,v 1.168 2005/10/27 19:27:54 jhb Exp $
+# $FreeBSD: src/sys/conf/Makefile.pc98,v 1.170 2005/11/04 04:14:49 imp Exp $
 #
 # Makefile for FreeBSD
 #

==== //depot/projects/smpng/sys/conf/Makefile.powerpc#32 (text+ko) ====

@@ -1,7 +1,7 @@
 # Makefile.powerpc -- with config changes.
 # Copyright 1990 W. Jolitz
 #	from: @(#)Makefile.i386	7.1 5/10/91
-# $FreeBSD: src/sys/conf/Makefile.powerpc,v 1.279 2005/10/27 19:27:54 jhb Exp $
+# $FreeBSD: src/sys/conf/Makefile.powerpc,v 1.281 2005/11/04 04:14:49 imp Exp $
 #
 # Makefile for FreeBSD
 #

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200511081741.jA8HfU0O018638>