PERFORCE change 86473 for review
John Baldwin
jhb at FreeBSD.org
Tue Nov 8 09:41:36 PST 2005
http://perforce.freebsd.org/chv.cgi?CH=86473
Change 86473 by jhb at 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) <<<
More information about the p4-projects
mailing list