Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Aug 2010 00:46:58 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 182291 for review
Message-ID:  <201008120046.o7C0kw7o066243@skunkworks.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@182291?ac=10

Change 182291 by jhb@jhb_jhbbsd on 2010/08/12 00:46:21

	IFC @182290

Affected files ...

.. //depot/projects/smpng/share/man/man9/memguard.9#2 integrate
.. //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#15 integrate
.. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#69 integrate
.. //depot/projects/smpng/sys/amd64/amd64/pmap.c#110 integrate
.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#50 integrate
.. //depot/projects/smpng/sys/arm/include/pmap.h#31 integrate
.. //depot/projects/smpng/sys/conf/files.i386#139 integrate
.. //depot/projects/smpng/sys/dev/cfe/cfe_env.c#2 integrate
.. //depot/projects/smpng/sys/dev/iscsi/initiator/iscsi.c#6 integrate
.. //depot/projects/smpng/sys/dev/tpm/tpm.c#1 branch
.. //depot/projects/smpng/sys/dev/tpm/tpm_acpi.c#1 branch
.. //depot/projects/smpng/sys/dev/tpm/tpm_isa.c#1 branch
.. //depot/projects/smpng/sys/dev/tpm/tpmvar.h#1 branch
.. //depot/projects/smpng/sys/dev/usb/serial/uplcom.c#16 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#157 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#130 integrate
.. //depot/projects/smpng/sys/i386/i386/pmap.c#149 integrate
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#99 integrate
.. //depot/projects/smpng/sys/i386/xen/pmap.c#18 integrate
.. //depot/projects/smpng/sys/kern/kern_malloc.c#59 integrate
.. //depot/projects/smpng/sys/mips/include/endian.h#3 integrate
.. //depot/projects/smpng/sys/mips/include/pmap.h#14 integrate
.. //depot/projects/smpng/sys/mips/mips/pmap.c#23 integrate
.. //depot/projects/smpng/sys/mips/rmi/xlr_machdep.c#5 integrate
.. //depot/projects/smpng/sys/modules/Makefile#175 integrate
.. //depot/projects/smpng/sys/modules/if_carp/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/tpm/Makefile#1 branch
.. //depot/projects/smpng/sys/net/if.c#135 integrate
.. //depot/projects/smpng/sys/net/if_bridge.c#67 integrate
.. //depot/projects/smpng/sys/net/if_ethersubr.c#107 integrate
.. //depot/projects/smpng/sys/netinet/if_ether.c#84 integrate
.. //depot/projects/smpng/sys/netinet/in.c#68 integrate
.. //depot/projects/smpng/sys/netinet/in_proto.c#40 integrate
.. //depot/projects/smpng/sys/netinet/ip_carp.c#43 integrate
.. //depot/projects/smpng/sys/netinet/ip_carp.h#5 integrate
.. //depot/projects/smpng/sys/netinet/ip_input.c#112 integrate
.. //depot/projects/smpng/sys/netinet6/in6_proto.c#38 integrate
.. //depot/projects/smpng/sys/netinet6/nd6_nbr.c#41 integrate
.. //depot/projects/smpng/sys/opencrypto/cryptodev.c#30 integrate
.. //depot/projects/smpng/sys/powerpc/include/pmap.h#29 integrate
.. //depot/projects/smpng/sys/sparc64/include/pmap.h#38 integrate
.. //depot/projects/smpng/sys/sparc64/include/smp.h#31 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/mp_machdep.c#44 integrate
.. //depot/projects/smpng/sys/sun4v/include/smp.h#12 integrate
.. //depot/projects/smpng/sys/sun4v/sun4v/mp_machdep.c#14 integrate
.. //depot/projects/smpng/sys/sun4v/sun4v/pmap.c#23 integrate
.. //depot/projects/smpng/sys/vm/memguard.c#6 integrate
.. //depot/projects/smpng/sys/vm/memguard.h#5 integrate
.. //depot/projects/smpng/sys/vm/vm_extern.h#42 integrate
.. //depot/projects/smpng/sys/vm/vm_kern.c#47 integrate

Differences ...

==== //depot/projects/smpng/share/man/man9/memguard.9#2 (text+ko) ====

@@ -22,9 +22,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/memguard.9,v 1.5 2006/09/18 15:24:20 ru Exp $
+.\" $FreeBSD: src/share/man/man9/memguard.9,v 1.6 2010/08/11 22:10:37 mdf Exp $
 .\"
-.Dd January 31, 2006
+.Dd August 2, 2010
 .Dt MEMGUARD 9
 .Os
 .Sh NAME
@@ -41,54 +41,107 @@
 .Pp
 Currently,
 .Nm
-can only take over
+can take over
 .Fn malloc ,
 .Fn realloc
 and
 .Fn free
-for a particular malloc type.
+for a single malloc type.
+.Nm
+can also guard all allocations larger than
+.Dv PAGE_SIZE ,
+and can guard a random fraction of all allocations.
+There is also a knob to prevent allocations smaller than a specified
+size from being guarded, to limit memory waste.
 .Sh EXAMPLES
 To use
 .Nm
-for memory type compiled into the kernel, one has to add the
-following line to the
+for a memory type, either add an entry to
 .Pa /boot/loader.conf :
 .Bd -literal -offset indent
 vm.memguard.desc=<memory_type>
 .Ed
 .Pp
-Where
-.Ar memory_type
-is a short description of memory type to monitor.
-The short description of memory type is the second argument to
-.Xr MALLOC_DEFINE 9 ,
-so one has to find it in the kernel source.
-.Pp
-To use
-.Nm
-for memory type defined in a kernel module, one has to set
+Or set the
 .Va vm.memguard.desc
 .Xr sysctl 8
-variable before loading the module:
+variable at run-time:
 .Bd -literal -offset indent
 sysctl vm.memguard.desc=<memory_type>
 .Ed
 .Pp
+Where
+.Ar memory_type
+is a short description of the memory type to monitor.
+Only allocations from that
+.Ar memory_type
+made after
+.Va vm.memguard.desc
+is set will potentially be guarded.
+If
+.Va vm.memguard.desc
+is modified at run-time then only allocations of the new
+.Ar memory_type
+will potentially be guarded once the
+.Xr sysctl 8
+is set.
+Existing guarded allocations will still be properly released by
+.Xr free 9 .
+.Pp
+The short description of a
+.Xr malloc 9
+type is the second argument to
+.Xr MALLOC_DEFINE 9 ,
+so one has to find it in the kernel source.
+.Pp
 The
 .Va vm.memguard.divisor
-boot-time tunable is used to scale how much of
-.Va kmem_map
-one wants to allocate for
-.Nm .
-The default is 10, so
-.Va kmem_size Ns /10
-bytes will be used.
-The
-.Va kmem_size
-value can be obtained via the
-.Va vm.kmem_size
-.Xr sysctl 8
-variable.
+boot-time tunable is used to scale how much of the system's physical
+memory
+.Nm
+is allowed to consume.
+The default is 10, so up to
+.Va cnt.v_page_count Ns /10
+pages can be used.
+.Nm
+will reserve
+.Va vm_kmem_max
+/
+.Va vm.memguard.divisor
+bytes of virtual address space, limited by twice the physical memory
+size.
+The physical limit is reported as
+.Va vm.memguard.phys_limit
+and the virtual space reserved for
+.Nm
+is reported as
+.Va vm.memguard.mapsize .
+.Pp
+.Nm
+will not do page promotions for any allocation smaller than
+.Va vm.memguard.minsize
+bytes.
+The default is 0, meaning all allocations can potentially be guarded.
+.Nm
+can guard sufficiently large allocations randomly, with average
+frequency of every one in 100000 /
+.Va vm.memguard.frequency
+allocations.
+The default is 0, meaning no allocations are randomly guarded.
+.Pp
+.Nm
+can optionally add unmapped guard pages around each allocation to
+detect overflow and underflow, if
+.Va vm.memguard.options
+has the 1 bit set.
+This option is enabled by default.
+.Nm
+will optionally guard all allocations of
+.Dv PAGE_SIZE
+or larger if
+.Va vm.memguard.options
+has the 2 bit set.
+This option is off by default.
 .Sh SEE ALSO
 .Xr sysctl 8 ,
 .Xr vmstat 8 ,
@@ -102,10 +155,13 @@
 .Sh AUTHORS
 .An -nosplit
 .Nm
-was written by
+was originally written by
 .An Bosko Milekic Aq bmilekic@FreeBSD.org .
-This manual page was written by
+This manual page was originally written by
 .An Christian Brueffer Aq brueffer@FreeBSD.org .
+Additions have been made by
+.An Matthew Fleming Aq mdf@FreeBSD.org
+to both the implementation and the documentation.
 .Sh BUGS
 Currently, it is not possible to override UMA
 .Xr zone 9

==== //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#15 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.35 2010/08/06 17:21:32 jkim Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.36 2010/08/12 00:20:46 jkim Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -278,11 +278,13 @@
 		for (;;)
 			ia32_pause();
 	} else {
+		acpi_resync_clock(sc);
+		PCPU_SET(switchtime, cpu_ticks());
+		PCPU_SET(switchticks, ticks);
 #ifdef SMP
 		if (wakeup_cpus != 0)
 			acpi_wakeup_cpus(sc, wakeup_cpus);
 #endif
-		acpi_resync_clock(sc);
 		ret = 0;
 	}
 

==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#69 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.323 2010/08/09 20:25:06 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.328 2010/08/12 00:20:46 jkim Exp $");
 
 #include "opt_cpu.h"
 #include "opt_kstack_pages.h"
@@ -127,7 +127,7 @@
  * Local data and functions.
  */
 
-static u_int logical_cpus;
+static cpumask_t logical_cpus;
 static volatile cpumask_t ipi_nmi_pending;
 
 /* used to hold the AP's until we are ready to release them */
@@ -162,8 +162,8 @@
 static int	start_ap(int apic_id);
 static void	release_aps(void *dummy);
 
-static int	hlt_logical_cpus;
-static u_int	hyperthreading_cpus;
+static cpumask_t	hlt_logical_cpus;
+static cpumask_t	hyperthreading_cpus;
 static cpumask_t	hyperthreading_cpus_mask;
 static int	hyperthreading_allowed = 1;
 static struct	sysctl_ctx_list logical_cpu_clist;
@@ -1321,8 +1321,13 @@
 void
 cpustop_handler(void)
 {
-	int cpu = PCPU_GET(cpuid);
-	cpumask_t cpumask = PCPU_GET(cpumask);
+	cpumask_t cpumask;
+	u_int cpu;
+
+	sched_pin();
+	cpu = PCPU_GET(cpuid);
+	cpumask = PCPU_GET(cpumask);
+	sched_unpin();
 
 	savectx(&stoppcbs[cpu]);
 
@@ -1349,9 +1354,14 @@
 void
 cpususpend_handler(void)
 {
+	cpumask_t cpumask;
 	register_t cr3, rf;
-	int cpu = PCPU_GET(cpuid);
-	cpumask_t cpumask = PCPU_GET(cpumask);
+	u_int cpu;
+
+	sched_pin();
+	cpu = PCPU_GET(cpuid);
+	cpumask = PCPU_GET(cpumask);
+	sched_unpin();
 
 	rf = intr_disable();
 	cr3 = rcr3();
@@ -1359,6 +1369,9 @@
 	if (savectx(susppcbs[cpu])) {
 		wbinvd();
 		atomic_set_int(&stopped_cpus, cpumask);
+	} else {
+		PCPU_SET(switchtime, cpu_ticks());
+		PCPU_SET(switchticks, ticks);
 	}
 
 	/* Wait for resume */
@@ -1523,14 +1536,20 @@
 int
 mp_grab_cpu_hlt(void)
 {
-	cpumask_t mask = PCPU_GET(cpumask);
+	cpumask_t mask;
 #ifdef MP_WATCHDOG
-	u_int cpuid = PCPU_GET(cpuid);
+	u_int cpuid;
 #endif
 	int retval;
 
 #ifdef MP_WATCHDOG
+	sched_pin();
+	mask = PCPU_GET(cpumask);
+	cpuid = PCPU_GET(cpuid);
+	sched_unpin();
 	ap_watchdog(cpuid);
+#else
+	mask = PCPU_GET(cpumask);
 #endif
 
 	retval = 0;

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

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.709 2010/07/15 16:25:51 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.710 2010/08/10 16:14:10 attilio Exp $");
 
 /*
  *	Manages physical address maps.
@@ -926,8 +926,7 @@
 void
 pmap_invalidate_page(pmap_t pmap, vm_offset_t va)
 {
-	cpumask_t cpumask;
-	cpumask_t other_cpus;
+	cpumask_t cpumask, other_cpus;
 
 	sched_pin();
 	if (pmap == kernel_pmap || pmap->pm_active == all_cpus) {
@@ -947,8 +946,7 @@
 void
 pmap_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva)
 {
-	cpumask_t cpumask;
-	cpumask_t other_cpus;
+	cpumask_t cpumask, other_cpus;
 	vm_offset_t addr;
 
 	sched_pin();
@@ -972,8 +970,7 @@
 void
 pmap_invalidate_all(pmap_t pmap)
 {
-	cpumask_t cpumask;
-	cpumask_t other_cpus;
+	cpumask_t cpumask, other_cpus;
 
 	sched_pin();
 	if (pmap == kernel_pmap || pmap->pm_active == all_cpus) {

==== //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#50 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.270 2010/06/15 09:19:33 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.271 2010/08/11 23:22:53 jhb Exp $");
 
 #include "opt_isa.h"
 #include "opt_cpu.h"

==== //depot/projects/smpng/sys/arm/include/pmap.h#31 (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.34 2010/04/30 00:46:43 kmacy Exp $
+ * $FreeBSD: src/sys/arm/include/pmap.h,v 1.35 2010/08/11 23:22:53 jhb Exp $
  */
 
 #ifndef _MACHINE_PMAP_H_

==== //depot/projects/smpng/sys/conf/files.i386#139 (text+ko) ====

@@ -1,7 +1,7 @@
 # This file tells config what files go into building a kernel,
 # files marked standard are always included.
 #
-# $FreeBSD: src/sys/conf/files.i386,v 1.650 2010/08/08 06:18:05 jkim Exp $
+# $FreeBSD: src/sys/conf/files.i386,v 1.651 2010/08/12 00:16:18 takawata Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -231,6 +231,9 @@
 dev/syscons/scvesactl.c		optional sc vga vesa
 dev/syscons/scvgarndr.c		optional sc vga
 dev/syscons/scvtb.c		optional sc
+dev/tpm/tpm.c			optional tpm
+dev/tpm/tpm_acpi.c		optional tpm acpi
+dev/tpm/tpm_isa.c		optional tpm isa
 dev/uart/uart_cpu_i386.c	optional uart
 dev/acpica/acpi_if.m		standard
 dev/acpi_support/acpi_wmi_if.m	standard

==== //depot/projects/smpng/sys/dev/cfe/cfe_env.c#2 (text+ko) ====

@@ -25,12 +25,11 @@
  */
 
 #include <sys/param.h>
-#include <sys/kernel.h>
-#include <sys/systm.h>
+#include <sys/kenv.h>
 
 #include <dev/cfe/cfe_api.h>
 
-__FBSDID("$FreeBSD: src/sys/dev/cfe/cfe_env.c,v 1.1 2010/01/11 03:43:18 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/cfe/cfe_env.c,v 1.2 2010/08/11 02:13:50 neel Exp $");
 
 #ifndef	CFE_ENV_SIZE
 #define	CFE_ENV_SIZE	PAGE_SIZE	/* default is one page */
@@ -43,32 +42,20 @@
 void
 cfe_env_init(void)
 {
-	int idx, len;
-	char name[64], val[128], *cp, *cplim;
+	int idx;
+	char name[KENV_MNAMELEN], val[KENV_MVALLEN];
 
-	cp = cfe_env_buf;
-	cplim = cp + CFE_ENV_SIZE;
+	init_static_kenv(cfe_env_buf, CFE_ENV_SIZE);
 
 	idx = 0;
 	while (1) {
 		if (cfe_enumenv(idx, name, sizeof(name), val, sizeof(val)) != 0)
 			break;
 
-		if (bootverbose)
-			printf("Importing CFE env: \"%s=%s\"\n", name, val);
-
-		/*
-		 * name=val\0\0
-		 */
-		len = strlen(name) + 1 + strlen(val) + 1 + 1;
-		if (cplim - cp < len)
+		if (setenv(name, val) != 0) {
 			printf("No space to store CFE env: \"%s=%s\"\n",
 				name, val);
-		else
-			cp += sprintf(cp, "%s=%s", name, val) + 1;
+		}
 		++idx;
 	}
-	*cp++ = '\0';
-
-	kern_envp = cfe_env_buf;
 }

==== //depot/projects/smpng/sys/dev/iscsi/initiator/iscsi.c#6 (text+ko) ====

@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/iscsi/initiator/iscsi.c,v 1.5 2010/08/09 12:36:36 des Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/iscsi/initiator/iscsi.c,v 1.6 2010/08/11 16:56:38 jhb Exp $");
 
 #include "opt_iscsi_initiator.h"
 
@@ -306,11 +306,11 @@
 	  int	i = 0;
 	  struct socket	*so = sp->soc;
 #define pukeit(i, pq) do {\
-	       sprintf(buf, "%03d] %06x %02x %06x %06x %zd\n",\
+	       sprintf(buf, "%03d] %06x %02x %06x %06x %jd\n",\
 		       i, ntohl(pq->pdu.ipdu.bhs.CmdSN),\
 		       pq->pdu.ipdu.bhs.opcode, ntohl(pq->pdu.ipdu.bhs.itt),\
 		       ntohl(pq->pdu.ipdu.bhs.ExpStSN),\
-		       pq->ts.sec);\
+		       (intmax_t)pq->ts.sec);\
 	       } while(0)
 
 	  sprintf(buf, "%d/%d /---- hld -----/\n", sp->stats.nhld, sp->stats.max_hld);

==== //depot/projects/smpng/sys/dev/usb/serial/uplcom.c#16 (text+ko) ====

@@ -1,7 +1,7 @@
 /*	$NetBSD: uplcom.c,v 1.21 2001/11/13 06:24:56 lukem Exp $	*/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/serial/uplcom.c,v 1.22 2010/08/09 17:42:05 gavin Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/serial/uplcom.c,v 1.23 2010/08/10 19:13:11 gavin Exp $");
 
 /*-
  * Copyright (c) 2001-2003, 2005 Shunsuke Akiyama <akiyama@jp.FreeBSD.org>.
@@ -249,29 +249,63 @@
   { USB_VENDOR(USB_VENDOR_##v), USB_PRODUCT(USB_PRODUCT_##v##_##p) }
 
 static const struct usb_device_id uplcom_devs[] = {
+	UPLCOM_DEV(ACERP, S81),			/* BenQ S81 phone */
+	UPLCOM_DEV(ADLINK, ND6530),		/* ADLINK ND-6530 USB-Serial */
+	UPLCOM_DEV(ALCATEL, OT535),		/* Alcatel One Touch 535/735 */
+	UPLCOM_DEV(ALCOR, AU9720),		/* Alcor AU9720 USB 2.0-RS232 */
+	UPLCOM_DEV(ANCHOR, SERIAL),		/* Anchor Serial adapter */
 	UPLCOM_DEV(ATEN, UC232A),		/* PLANEX USB-RS232 URS-03 */
 	UPLCOM_DEV(BELKIN, F5U257),		/* Belkin F5U257 */
 	UPLCOM_DEV(COREGA, CGUSBRS232R),	/* Corega CG-USBRS232R */
+	UPLCOM_DEV(EPSON, CRESSI_EDY),		/* Cressi Edy diving computer */
 	UPLCOM_DEV(ELECOM, UCSGT),		/* ELECOM UC-SGT */
 	UPLCOM_DEV(ELECOM, UCSGT0),		/* ELECOM UC-SGT */
 	UPLCOM_DEV(HAL, IMR001),		/* HAL Corporation Crossam2+USB */
+	UPLCOM_DEV(HP, LD220),			/* HP LD220 POS Display */
 	UPLCOM_DEV(IODATA, USBRSAQ),		/* I/O DATA USB-RSAQ */
 	UPLCOM_DEV(IODATA, USBRSAQ5),		/* I/O DATA USB-RSAQ5 */
+	UPLCOM_DEV(ITEGNO, WM1080A),		/* iTegno WM1080A GSM/GFPRS modem */
+	UPLCOM_DEV(ITEGNO, WM2080A),		/* iTegno WM2080A CDMA modem */
+	UPLCOM_DEV(LEADTEK, 9531),		/* Leadtek 9531 GPS */
+	UPLCOM_DEV(MICROSOFT, 700WX),		/* Microsoft Palm 700WX */
 	UPLCOM_DEV(MOBILEACTION, MA620),	/* Mobile Action MA-620 Infrared Adapter */
+	UPLCOM_DEV(NETINDEX, WS002IN),		/* Willcom W-S002IN */
+	UPLCOM_DEV(NOKIA2, CA42),		/* Nokia CA-42 cable */
+	UPLCOM_DEV(OTI, DKU5),			/* OTI DKU-5 cable */
+	UPLCOM_DEV(PANASONIC, TYTP50P6S),	/* Panasonic TY-TP50P6-S flat screen */
+	UPLCOM_DEV(PLX, CA42),			/* PLX CA-42 clone cable */
+	UPLCOM_DEV(PROLIFIC, ALLTRONIX_GPRS),	/* Alltronix ACM003U00 modem */
+	UPLCOM_DEV(PROLIFIC, ALDIGA_AL11U),	/* AlDiga AL-11U modem */
+	UPLCOM_DEV(PROLIFIC, DCU11),		/* DCU-11 Phone Cable */
+	UPLCOM_DEV(PROLIFIC, HCR331),		/* HCR331 Card Reader */
+	UPLCOM_DEV(PROLIFIC, MICROMAX_610U),	/* Micromax 610U modem */
 	UPLCOM_DEV(PROLIFIC, PHAROS),		/* Prolific Pharos */
-	UPLCOM_DEV(PROLIFIC, PL2303),		/* Generic */
+	UPLCOM_DEV(PROLIFIC, PL2303),		/* Generic adapter */
 	UPLCOM_DEV(PROLIFIC, RSAQ2),		/* I/O DATA USB-RSAQ2 */
 	UPLCOM_DEV(PROLIFIC, RSAQ3),		/* I/O DATA USB-RSAQ3 */
-	UPLCOM_DEV(PROLIFIC2, WSIM),		/* Willcom W-SIM */
+	UPLCOM_DEV(PROLIFIC2, PL2303),		/* Prolific adapter */
 	UPLCOM_DEV(RADIOSHACK, USBCABLE),
 	UPLCOM_DEV(RATOC, REXUSB60),		/* RATOC REX-USB60 */
 	UPLCOM_DEV(SAGEM, USBSERIAL),		/* Sagem USB-Serial Controller */
+	UPLCOM_DEV(SAMSUNG, I330),		/* Samsung I330 phone cradle */
+	UPLCOM_DEV(SANWA, KB_USB2),		/* Sanwa KB-USB2 Multimeter cable */
+	UPLCOM_DEV(SIEMENS3, EF81),		/* Seimens EF81 */
+	UPLCOM_DEV(SIEMENS3, SX1),		/* Seimens SX1 */
+	UPLCOM_DEV(SIEMENS3, X65),		/* Seimens X65 */
+	UPLCOM_DEV(SIEMENS3, X75),		/* Seimens X75 */
 	UPLCOM_DEV(SITECOM, SERIAL),		/* Sitecom USB to Serial */
-	UPLCOM_DEV(SONYERICSSON, DCU10),	/* Sony Ericsson USB Cable */
+	UPLCOM_DEV(SMART, PL2303),		/* SMART Technologies */
+	UPLCOM_DEV(SONY, QN3),			/* Sony QN3 phone cable */
+	UPLCOM_DEV(SONYERICSSON, DATAPILOT),	/* Sony Ericsson Datapilot */
+	UPLCOM_DEV(SONYERICSSON, DCU10),	/* Sony Ericsson DCU-10 Cable */
 	UPLCOM_DEV(SOURCENEXT, KEIKAI8),	/* SOURCENEXT KeikaiDenwa 8 */
 	UPLCOM_DEV(SOURCENEXT, KEIKAI8_CHG),	/* SOURCENEXT KeikaiDenwa 8 with charger */
+	UPLCOM_DEV(SPEEDDRAGON, MS3303H),	/* Speed Dragon USB-Serial */
+	UPLCOM_DEV(SYNTECH, CPT8001C),		/* Syntech CPT-8001C Barcode scanner */
 	UPLCOM_DEV(TDK, UHA6400),		/* TDK USB-PHS Adapter UHA6400 */
+	UPLCOM_DEV(TDK, UPA9664),		/* TDK USB-PHS Adapter UPA9664 */
 	UPLCOM_DEV(TRIPPLITE, U209),		/* Tripp-Lite U209-000-R */
+	UPLCOM_DEV(YCCABLE, PL2303),		/* YC Cable USB-Serial */
 };
 #undef UPLCOM_DEV
 

==== //depot/projects/smpng/sys/dev/usb/usbdevs#157 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/usb/usbdevs,v 1.480 2010/08/09 17:27:27 gavin Exp $
+$FreeBSD: src/sys/dev/usb/usbdevs,v 1.481 2010/08/10 19:13:11 gavin Exp $
 /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
 
 /*-
@@ -372,6 +372,7 @@
 vendor SANDISK		0x0781	SanDisk
 vendor JENOPTIK		0x0784	Jenoptik
 vendor LOGITEC		0x0789	Logitec
+vendor NOKIA2		0x078b	Nokia
 vendor BRIMAX		0x078e	Brimax
 vendor AXIS		0x0792	Axis Communications
 vendor ABL		0x0794	ABL Electronics
@@ -495,9 +496,11 @@
 vendor HAL		0x0b41	HAL Corporation
 vendor EMS		0x0b43	EMS Production
 vendor NEC2		0x0b62	NEC
+vendor ADLINK		0x0b63	ADLINK Technoligy, Inc.
 vendor ATI2		0x0b6f	ATI
 vendor ZEEVO		0x0b7a	Zeevo, Inc.
 vendor KURUSUGAWA	0x0b7e	Kurusugawa Electronics, Inc.
+vendor SMART		0x0b8c	Smart Technologies
 vendor ASIX		0x0b95	ASIX Electronics
 vendor O2MICRO		0x0b97	O2 Micro, Inc.
 vendor USR		0x0baf	U.S. Robotics
@@ -575,9 +578,10 @@
 vendor DLINK3		0x1186	Dlink
 vendor ACERCM		0x1189	Acer Communications & Multimedia
 vendor SIERRA		0x1199	Sierra Wireless
+vendor SANWA		0x11ad	Sanwa Electric Instrument Co., Ltd.
 vendor TOPFIELD		0x11db	Topfield Co., Ltd
 vendor SIEMENS3		0x11f5	Siemens
-vendor PROLIFIC2	0x11f6	Prolific
+vendor NETINDEX		0x11f6	NetIndex
 vendor ALCATEL		0x11f7	Alcatel
 vendor UNKNOWN3		0x1233	Unknown vendor
 vendor TSUNAMI		0x1241	Tsunami
@@ -690,6 +694,7 @@
 vendor ACEECA		0x4766	Aceeca
 vendor AVERATEC		0x50c2	Averatec
 vendor SWEEX		0x5173	Sweex
+vendor PROLIFIC2	0x5372	Prolific Technologies
 vendor ONSPEC2		0x55aa	OnSpec Electronic Inc.
 vendor ZINWELL		0x5a57	Zinwell
 vendor SITECOM		0x6189	Sitecom
@@ -799,6 +804,7 @@
 product ACERP ACERSCAN_4300U	0x20b0	Benq 3300U/4300U
 product ACERP ACERSCAN_640BT	0x20be	Acerscan 640BT
 product ACERP ACERSCAN_1240U	0x20c0	Acerscan 1240U
+product ACERP S81		0x4027	BenQ S81 phone
 product ACERP H10		0x4068	AWL400 Wireless Adapter
 product ACERP ATAPI		0x6003	ATA/ATAPI Adapter
 product ACERP AWL300		0x9000	AWL300 Wireless Adapter
@@ -829,6 +835,9 @@
 /* Addtron products */
 product ADDTRON AWU120		0xff31	AWU-120
 
+/* ADLINK Texhnology products */
+product ADLINK ND6530		0x6530	ND-6530 USB-Serial
+
 /* ADMtek products */
 product ADMTEK PEGASUSII_4	0x07c2	AN986A Ethernet
 product ADMTEK PEGASUS		0x0986	AN986 Ethernet
@@ -888,6 +897,9 @@
 /* AKS products */
 product AKS USBHASP		0x0001	USB-HASP 0.06
 
+/* Alcatel products */
+product ALCATEL OT535		0x02df	One Touch 535/735
+
 /* Alcor Micro, Inc. products */
 product ALCOR2 KBD_HUB		0x2802	Kbd Hub
 
@@ -899,6 +911,7 @@
 product ALCOR UMCR_9361		0x9361	USB Multimedia Card Reader
 product ALCOR SM_KBD		0x9410	MicroConnectors/StrongMan Keyboard
 product ALCOR NEC_KBD_HUB	0x9472	NEC Kbd Hub
+product ALCOR AU9720 		0x9720	USB2 - RS-232
 product ALCOR AU6390	0x6390	AU6390 USB-IDE converter
 
 /* Alink products */
@@ -957,6 +970,7 @@
 product AMIT2 RT2870		0x0008	RT2870
 
 /* Anchor products */
+product ANCHOR SERIAL		0x2008	Serial
 product ANCHOR EZUSB		0x2131	EZUSB
 product ANCHOR EZLINK		0x2720	EZLINK
 
@@ -1507,6 +1521,7 @@
 product EPSON 2480		0x0121	Perfection 2480 scanner
 product EPSON 3590		0x0122	Perfection 3590 scanner
 product EPSON 4990		0x012a	Perfection 4990 Photo scanner
+product EPSON CRESSI_EDY	0x0521	Cressi Edy diving computer
 product EPSON STYLUS_875DC	0x0601	Stylus Photo 875DC Card Reader
 product EPSON STYLUS_895	0x0602	Stylus Photo 895 Card Reader
 product EPSON CX5400		0x0808	CX5400 scanner
@@ -1743,6 +1758,7 @@
 product HP 640C			0x2004	DeskJet 640c
 product HP 4670V		0x3005	ScanJet 4670v
 product HP P1100		0x3102	Photosmart P1100
+product HP LD220		0x3524	LD220 POS Display
 product HP OJ4215		0x3d11	OfficeJet 4215
 product HP HN210E		0x811c	Ethernet HN210E
 product HP2 C500		0x6002	PhotoSmart C500
@@ -1884,6 +1900,10 @@
 product IOMEGA ZIP100		0x0001	Zip 100
 product IOMEGA ZIP250		0x0030	Zip 250
 
+/* iTegno products */
+product ITEGNO WM1080A		0x1080	WM1080A GSM/GPRS modem
+product ITEGNO WM2080A		0x2080	WM2080A CDMA modem
+
 /* Ituner networks products */
 product ITUNERNET USBLCD2X20	0x0002	USB-LCD 2x20
 product ITUNERNET USBLCD4X20	0xc001	USB-LCD 4x20
@@ -1983,6 +2003,9 @@
 product LACIE HD		0xa601	Hard Disk
 product LACIE CDRW		0xa602	CD R/W
 
+/* Leadtek products */
+product LEADTEK 9531		0x2101	9531 GPS
+
 /* Lexar products */
 product LEXAR JUMPSHOT		0x0001	jumpSHOT CompactFlash Reader
 product LEXAR CF_READER		0xb002	USB CF Reader
@@ -2144,6 +2167,7 @@
 product MICROSOFT INTELLIMOUSE5	0x0039	IntelliMouse 1.1 5-Button Mouse
 product MICROSOFT WHEELMOUSE	0x0040	Wheel Mouse Optical
 product MICROSOFT MN510		0x006e	MN510 Wireless
+product MICROSOFT 700WX		0x0079	Palm 700WX
 product MICROSOFT MN110		0x007a	10/100 USB NIC
 product MICROSOFT WLINTELLIMOUSE 0x008c	Wireless Optical IntelliMouse
 product MICROSOFT WLNOTEBOOK	0x00b9	Wireless Optical Mouse (Model 1023)
@@ -2278,6 +2302,9 @@
 product NETGEAR3 WPN111_NF	0x5f01	WPN111 (no firmware)
 product NETGEAR3 WPN111_2	0x5f02	WPN111
 
+/* NetIndex products */
+product NETINDEX WS002IN	0x2001	Willcom WS002IN
+
 /* Nikon products */
 product NIKON E990		0x0102	Digital Camera E990
 product NIKON LS40		0x4000	CoolScan LS40 ED
@@ -2289,6 +2316,7 @@
 
 /* Nokia products */
 product NOKIA N958GB		0x0070	Nokia N95 8GBc
+product NOKIA2 CA42		0x1234	CA-42 cable
 
 /* Novatel Wireless products */
 product NOVATEL V640		0x1100	Merlin V620
@@ -2398,6 +2426,9 @@
 product OQO ETHER01PLUS		0x7720	model 01+ Ethernet
 product OQO ETHER01		0x8150	model 01 Ethernet interface
 
+/* Ours Technology Inc. */
+product OTI DKU5		0x6858	DKU-5 Serial
+
 /* Owen.ru products */
 product OWEN AC4		0x0004	AC4 USB-RS485 converter
 
@@ -2421,6 +2452,7 @@
 product PANASONIC KXLCB20AN	0x0d0a	CD-R Drive KXL-CB20AN
 product PANASONIC KXLCB35AN	0x0d0e	DVD-ROM & CD-R/RW
 product PANASONIC SDCAAE	0x1b00	MultiMediaCard
+product PANASONIC TYTP50P6S	0x3900	TY-TP50P6-S 50in Touch Panel
 
 /* PARA Industrial products */
 product PARA RT3070		0x8888	RT3070
@@ -2518,14 +2550,19 @@
 product PROLIFIC PL2301		0x0000	PL2301 Host-Host interface
 product PROLIFIC PL2302		0x0001	PL2302 Host-Host interface
 product PROLIFIC RSAQ2		0x04bb	PL2303 Serial (IODATA USB-RSAQ2)
+product PROLIFIC ALLTRONIX_GPRS	0x0609	Alltronix ACM003U00 modem
+product PROLIFIC ALDIGA_AL11U	0x0611	AlDiga AL-11U modem
+product PROLIFIC MICROMAX_610U	0x0612	Micromax 610U
+product PROLIFIC DCU11		0x1234	DCU-11 Phone Cable
 product PROLIFIC PL2303		0x2303	PL2303 Serial (ATEN/IOGEAR UC232A)
 product PROLIFIC PL2305		0x2305	Parallel printer
 product PROLIFIC ATAPI4		0x2307	ATAPI-4 Controller
 product PROLIFIC PL2501		0x2501	PL2501 Host-Host interface
 product PROLIFIC PL2506		0x2506	PL2506 USB to IDE Bridge
+product PROLIFIC HCR331		0x331a	HCR331 Hybrid Card Reader
 product PROLIFIC PHAROS		0xaaa0	Prolific Pharos
 product PROLIFIC RSAQ3		0xaaa2	PL2303 Serial Adapter (IODATA USB-RSAQ3)
-product PROLIFIC2 WSIM		0x2001	Willcom WSIM
+product PROLIFIC2 PL2303	0x2303	PL2303 Serial Adapter
 
 /* Putercom products */
 product PUTERCOM UPA100		0x047e	USB-1284 BRIDGE
@@ -2661,6 +2698,10 @@
 product RALINK RT2570_3		0x9020	RT2500USB Wireless Adapter
 product RALINK RT2573_2		0x9021	RT2501USB Wireless Adapter
 
+/* RATOC Systems products */
+product RATOC REXUSB60		0xb000	USB serial adapter REX-USB60
+product RATOC REXUSB60F		0xb020	USB serial adapter REX-USB60F
+
 /* ReakTek products */
 /* Green House and CompUSA OEM this part */
 product REALTEK USBKR100	0x8150	USBKR100 USB Ethernet
@@ -2701,8 +2742,8 @@
 product SAMSUNG ML6060		0x3008	ML-6060 laser printer
 product SAMSUNG YP_U2		0x5050	YP-U2 MP3 Player
 product SAMSUNG YP_U4		0x5092	YP-U4 MP3 Player
-
 product SAMSUNG I500		0x6601	I500 Palm USB Phone 
+product SAMSUNG I330		0x8001	I330 phone cradle
 product SAMSUNG2 RT2870_1	0x2018	RT2870
 
 /* Samsung Techwin products */
@@ -2719,6 +2760,9 @@
 product SANDISK SDCZ4_128	0x7112	Cruzer Micro 128MB
 product SANDISK SDCZ4_256	0x7113	Cruzer Micro 256MB
 
+/* Sanwa Electric Instrument Co., Ltd. products */
+product SANWA KB_USB2 		0x0701	KB-USB2 multimeter cable
+
 /* Sanyo Electric products */
 product SANYO SCP4900 		0x0701	Sanyo SCP-4900 USB Phone
 
@@ -2780,6 +2824,7 @@
 product SIEMENS3 SX1		0x0001	SX1
 product SIEMENS3 X65		0x0003	X65
 product SIEMENS3 X75		0x0004	X75
+product SIEMENS3 EF81 		0x0005	EF81
 
 /* Sierra Wireless products */
 product SIERRA EM5625		0x0017	EM5625
@@ -2954,6 +2999,9 @@
 product SKANHEX MD_7425		0x410a	MD 7425 Camera
 product SKANHEX SX_520Z		0x5200	SX 520z Camera
 
+/* Smart Technologies products */
+product SMART PL2303		0x2303	Serial adapter
+
 /* SmartBridges products */
 product SMARTBRIDGES SMARTLINK	0x0001	SmartLink USB Ethernet
 product SMARTBRIDGES SMARTNIC	0x0003	smartNIC 2 PnP Ethernet
@@ -2993,9 +3041,11 @@
 product SONY CLIE_TH55		0x0144	Sony Clie th55
 product SONY CLIE_TJ37		0x0169	Sony Clie tj37
 product SONY RF_RECEIVER	0x01db	Sony RF mouse/kbd Receiver VGP-WRC1
+product SONY QN3		0x0437	Sony QN3 CMD-Jxx phone cable
 
 /* Sony Ericsson products */
-product SONYERICSSON DCU10	0x0528	USB Cable
+product SONYERICSSON DCU10	0x0528	DCU-10 Phone Data Cable
+product SONYERICSSON DATAPILOT	0x2003	Datapilot Phone Cable
 
 /* SOURCENEXT products */
 product SOURCENEXT KEIKAI8	0x039f	KeikaiDenwa 8
@@ -3006,6 +3056,9 @@
 product SPARKLAN RT2870_1	0x0006	RT2870
 product SPARKLAN RT3070		0x0010	RT3070
 
+/* Speed Dragon Multimedia products */
+product SPEEDDRAGON MS3303H	0x110b	MS3303H Serial
+
 /* Sphairon Access Systems GmbH products */
 product SPHAIRON UB801R		0x0110	UB801R
 
@@ -3059,6 +3112,7 @@
 product	SUPERTOP IDE		0x6600	USB-IDE
 
 /* Syntech products */
+product SYNTECH CPT8001C	0x0001	CPT-8001C Barcode scanner
 product	SYNTECH CYPHERLAB100	0x1000	CipherLab USB Barcode Scanner
 
 /* Teclast products */
@@ -3280,6 +3334,9 @@
 product YANO U640MO		0x0101	U640MO-03
 product YANO FW800HD		0x05fc	METALWEAR-HDD
 
+/* Y.C. Cable products */
+product YCCABLE PL2303		0x0fba	PL2303 Serial
+
 /* Y-E Data products */
 product YEDATA FLASHBUSTERU	0x0000	Flashbuster-U
 

==== //depot/projects/smpng/sys/i386/i386/mp_machdep.c#130 (text+ko) ====

@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.311 2010/08/09 20:25:06 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/mp_machdep.c,v 1.315 2010/08/11 23:22:53 jhb Exp $");
 
 #include "opt_apic.h"
 #include "opt_cpu.h"
@@ -174,7 +174,7 @@
  * Local data and functions.
  */
 
-static u_int logical_cpus;
+static cpumask_t logical_cpus;
 static volatile cpumask_t ipi_nmi_pending;
 
 /* used to hold the AP's until we are ready to release them */
@@ -210,8 +210,8 @@
 static int	start_ap(int apic_id);
 static void	release_aps(void *dummy);
 
-static int	hlt_logical_cpus;
-static u_int	hyperthreading_cpus;
+static cpumask_t	hlt_logical_cpus;
+static cpumask_t	hyperthreading_cpus;
 static cpumask_t	hyperthreading_cpus_mask;
 static int	hyperthreading_allowed = 1;
 static struct	sysctl_ctx_list logical_cpu_clist;
@@ -1408,8 +1408,13 @@
 void
 cpustop_handler(void)
 {
-	int cpu = PCPU_GET(cpuid);
-	int cpumask = PCPU_GET(cpumask);
+	cpumask_t cpumask;
+	u_int cpu;
+
+	sched_pin();
+	cpu = PCPU_GET(cpuid);
+	cpumask = PCPU_GET(cpumask);
+	sched_unpin();
 
 	savectx(&stoppcbs[cpu]);
 
@@ -1577,14 +1582,20 @@
 int
 mp_grab_cpu_hlt(void)
 {
-	cpumask_t mask = PCPU_GET(cpumask);
+	cpumask_t mask;
 #ifdef MP_WATCHDOG
-	u_int cpuid = PCPU_GET(cpuid);
+	u_int cpuid;
 #endif
 	int retval;
 
 #ifdef MP_WATCHDOG
+	sched_pin();
+	mask = PCPU_GET(cpumask);
+	cpuid = PCPU_GET(cpuid);
+	sched_unpin();
 	ap_watchdog(cpuid);
+#else
+	mask = PCPU_GET(cpumask);
 #endif
 
 	retval = 0;

==== //depot/projects/smpng/sys/i386/i386/pmap.c#149 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.688 2010/07/10 18:22:44 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.689 2010/08/10 16:14:10 attilio Exp $");
 
 /*
  *	Manages physical address maps.
@@ -949,8 +949,7 @@
 void
 pmap_invalidate_page(pmap_t pmap, vm_offset_t va)
 {
-	cpumask_t cpumask;
-	cpumask_t other_cpus;
+	cpumask_t cpumask, other_cpus;
 
 	sched_pin();
 	if (pmap == kernel_pmap || pmap->pm_active == all_cpus) {
@@ -970,8 +969,7 @@
 void
 pmap_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva)
 {
-	cpumask_t cpumask;
-	cpumask_t other_cpus;
+	cpumask_t cpumask, other_cpus;
 	vm_offset_t addr;
 
 	sched_pin();
@@ -995,8 +993,7 @@
 void
 pmap_invalidate_all(pmap_t pmap)
 {
-	cpumask_t cpumask;
-	cpumask_t other_cpus;
+	cpumask_t cpumask, other_cpus;
 
 	sched_pin();
 	if (pmap == kernel_pmap || pmap->pm_active == all_cpus) {

==== //depot/projects/smpng/sys/i386/i386/vm_machdep.c#99 (text+ko) ====


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



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