From owner-p4-projects@FreeBSD.ORG Thu Aug 12 00:46:59 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E385B1065679; Thu, 12 Aug 2010 00:46:58 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A6B5E1065674 for ; Thu, 12 Aug 2010 00:46:58 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 9230E8FC19 for ; Thu, 12 Aug 2010 00:46:58 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7C0kwim066246 for ; Thu, 12 Aug 2010 00:46:58 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7C0kw7o066243 for perforce@freebsd.org; Thu, 12 Aug 2010 00:46:58 GMT (envelope-from jhb@freebsd.org) Date: Thu, 12 Aug 2010 00:46:58 GMT Message-Id: <201008120046.o7C0kw7o066243@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182291 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Aug 2010 00:46:59 -0000 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= .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= .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 -__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 #include @@ -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 -__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 -__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 -__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 -#include -#include +#include #include -__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 -__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 -__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 . @@ -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 -__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 -__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) <<<