PERFORCE change 182291 for review
John Baldwin
jhb at FreeBSD.org
Thu Aug 12 00:46:59 UTC 2010
http://p4web.freebsd.org/@@182291?ac=10
Change 182291 by jhb at 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 at FreeBSD.org .
-This manual page was written by
+This manual page was originally written by
.An Christian Brueffer Aq brueffer at FreeBSD.org .
+Additions have been made by
+.An Matthew Fleming Aq mdf at 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 at 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) <<<
More information about the p4-projects
mailing list