Date: Sat, 10 Nov 2007 16:33:56 GMT From: Robert Watson <rwatson@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 128904 for review Message-ID: <200711101633.lAAGXu1O069146@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=128904 Change 128904 by rwatson@rwatson_noisy on 2007/11/10 16:33:04 Integrate zcopybpf branch. Affected files ... .. //depot/projects/zcopybpf/src/sys/amd64/amd64/machdep.c#6 integrate .. //depot/projects/zcopybpf/src/sys/amd64/amd64/pmap.c#9 integrate .. //depot/projects/zcopybpf/src/sys/amd64/conf/NOTES#7 integrate .. //depot/projects/zcopybpf/src/sys/arm/arm/cpufunc.c#5 integrate .. //depot/projects/zcopybpf/src/sys/arm/arm/pmap.c#7 integrate .. //depot/projects/zcopybpf/src/sys/arm/at91/kb920x_machdep.c#6 integrate .. //depot/projects/zcopybpf/src/sys/arm/sa11x0/assabet_machdep.c#2 integrate .. //depot/projects/zcopybpf/src/sys/arm/xscale/i80321/ep80219_machdep.c#4 integrate .. //depot/projects/zcopybpf/src/sys/arm/xscale/i80321/iq31244_machdep.c#4 integrate .. //depot/projects/zcopybpf/src/sys/arm/xscale/i8134x/crb_machdep.c#3 integrate .. //depot/projects/zcopybpf/src/sys/arm/xscale/ixp425/avila_machdep.c#5 integrate .. //depot/projects/zcopybpf/src/sys/arm/xscale/ixp425/if_npe.c#4 integrate .. //depot/projects/zcopybpf/src/sys/boot/common/loader.8#4 integrate .. //depot/projects/zcopybpf/src/sys/compat/linux/linux_ioctl.c#3 integrate .. //depot/projects/zcopybpf/src/sys/compat/linux/linux_ioctl.h#3 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/kcondvar.h#2 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/mutex.h#4 integrate .. //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/rwlock.h#4 integrate .. //depot/projects/zcopybpf/src/sys/compat/pecoff/imgact_pecoff.c#3 integrate .. //depot/projects/zcopybpf/src/sys/compat/svr4/imgact_svr4.c#2 integrate .. //depot/projects/zcopybpf/src/sys/conf/NOTES#11 integrate .. //depot/projects/zcopybpf/src/sys/conf/files#13 integrate .. //depot/projects/zcopybpf/src/sys/conf/files.amd64#6 integrate .. //depot/projects/zcopybpf/src/sys/conf/files.i386#6 integrate .. //depot/projects/zcopybpf/src/sys/contrib/dev/wpi/LICENSE#1 branch .. //depot/projects/zcopybpf/src/sys/contrib/dev/wpi/iwlwifi-3945-2.14.4.fw.uu#1 branch .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#5 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#3 integrate .. //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/sys/vfs.h#2 delete .. //depot/projects/zcopybpf/src/sys/dev/acpica/acpi_ec.c#7 integrate .. //depot/projects/zcopybpf/src/sys/dev/asmc/asmc.c#1 branch .. //depot/projects/zcopybpf/src/sys/dev/asmc/asmcvar.h#1 branch .. //depot/projects/zcopybpf/src/sys/dev/ciss/ciss.c#7 integrate .. //depot/projects/zcopybpf/src/sys/dev/isp/isp_sbus.c#5 integrate .. //depot/projects/zcopybpf/src/sys/dev/md/md.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/mpt/mpt.c#6 integrate .. //depot/projects/zcopybpf/src/sys/dev/nfe/if_nfe.c#7 integrate .. //depot/projects/zcopybpf/src/sys/dev/ral/rt2560.c#7 integrate .. //depot/projects/zcopybpf/src/sys/dev/ral/rt2661.c#6 integrate .. //depot/projects/zcopybpf/src/sys/dev/safe/safe.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/atiixp.c#8 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/atiixp.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/sound/pci/t4dwave.c#6 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/if_axe.c#7 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/if_axereg.h#6 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/if_rum.c#4 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/if_ural.c#8 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/if_zyd.c#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/if_zydfw.h#2 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/if_zydreg.h#3 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/ukbd.c#6 integrate .. //depot/projects/zcopybpf/src/sys/dev/usb/usbdevs#11 integrate .. //depot/projects/zcopybpf/src/sys/dev/wpi/if_wpi.c#1 branch .. //depot/projects/zcopybpf/src/sys/dev/wpi/if_wpireg.h#1 branch .. //depot/projects/zcopybpf/src/sys/dev/wpi/if_wpivar.h#1 branch .. //depot/projects/zcopybpf/src/sys/i386/conf/NOTES#7 integrate .. //depot/projects/zcopybpf/src/sys/i386/conf/PAE#6 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/machdep.c#6 integrate .. //depot/projects/zcopybpf/src/sys/i386/i386/pmap.c#9 integrate .. //depot/projects/zcopybpf/src/sys/i386/ibcs2/imgact_coff.c#3 integrate .. //depot/projects/zcopybpf/src/sys/i386/linux/imgact_linux.c#3 integrate .. //depot/projects/zcopybpf/src/sys/ia64/ia64/machdep.c#5 integrate .. //depot/projects/zcopybpf/src/sys/ia64/ia64/pmap.c#5 integrate .. //depot/projects/zcopybpf/src/sys/kern/imgact_aout.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/imgact_elf.c#3 integrate .. //depot/projects/zcopybpf/src/sys/kern/imgact_gzip.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_exec.c#7 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_fork.c#8 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_kse.c#6 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_proc.c#5 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_rmlock.c#1 branch .. //depot/projects/zcopybpf/src/sys/kern/kern_sig.c#7 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_thr.c#4 integrate .. //depot/projects/zcopybpf/src/sys/kern/kern_thread.c#7 integrate .. //depot/projects/zcopybpf/src/sys/kern/sched_4bsd.c#7 integrate .. //depot/projects/zcopybpf/src/sys/kern/subr_lock.c#6 integrate .. //depot/projects/zcopybpf/src/sys/kern/subr_pcpu.c#2 integrate .. //depot/projects/zcopybpf/src/sys/kern/subr_smp.c#5 integrate .. //depot/projects/zcopybpf/src/sys/kern/sys_process.c#5 integrate .. //depot/projects/zcopybpf/src/sys/kern/tty_pty.c#3 integrate .. //depot/projects/zcopybpf/src/sys/modules/Makefile#11 integrate .. //depot/projects/zcopybpf/src/sys/modules/asmc/Makefile#1 branch .. //depot/projects/zcopybpf/src/sys/modules/wpi/Makefile#1 branch .. //depot/projects/zcopybpf/src/sys/modules/wpifw/Makefile#1 branch .. //depot/projects/zcopybpf/src/sys/net/if_bridge.c#8 integrate .. //depot/projects/zcopybpf/src/sys/net/if_bridgevar.h#4 integrate .. //depot/projects/zcopybpf/src/sys/net/if_ethersubr.c#10 integrate .. //depot/projects/zcopybpf/src/sys/net80211/ieee80211_ht.c#4 integrate .. //depot/projects/zcopybpf/src/sys/net80211/ieee80211_scan_sta.c#4 integrate .. //depot/projects/zcopybpf/src/sys/netinet/ip_dummynet.c#6 integrate .. //depot/projects/zcopybpf/src/sys/netinet/ip_dummynet.h#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/ip_fw_pfil.c#3 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctp_indata.c#11 integrate .. //depot/projects/zcopybpf/src/sys/netinet/sctputil.c#11 integrate .. //depot/projects/zcopybpf/src/sys/nfsserver/nfs.h#3 integrate .. //depot/projects/zcopybpf/src/sys/nfsserver/nfs_srvsubs.c#4 integrate .. //depot/projects/zcopybpf/src/sys/pc98/pc98/machdep.c#5 integrate .. //depot/projects/zcopybpf/src/sys/powerpc/powerpc/machdep.c#4 integrate .. //depot/projects/zcopybpf/src/sys/powerpc/powerpc/pmap_dispatch.c#2 integrate .. //depot/projects/zcopybpf/src/sys/sparc64/sparc64/machdep.c#5 integrate .. //depot/projects/zcopybpf/src/sys/sparc64/sparc64/pmap.c#5 integrate .. //depot/projects/zcopybpf/src/sys/sun4v/sun4v/machdep.c#3 integrate .. //depot/projects/zcopybpf/src/sys/sun4v/sun4v/pmap.c#3 integrate .. //depot/projects/zcopybpf/src/sys/sys/_rmlock.h#1 branch .. //depot/projects/zcopybpf/src/sys/sys/lock.h#4 integrate .. //depot/projects/zcopybpf/src/sys/sys/pcpu.h#4 integrate .. //depot/projects/zcopybpf/src/sys/sys/proc.h#9 integrate .. //depot/projects/zcopybpf/src/sys/sys/rmlock.h#1 branch .. //depot/projects/zcopybpf/src/sys/sys/signalvar.h#2 integrate .. //depot/projects/zcopybpf/src/sys/sys/smp.h#2 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ffs/ffs_alloc.c#5 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ffs/ffs_balloc.c#2 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ffs/ffs_inode.c#3 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ffs/ffs_snapshot.c#5 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ffs/ffs_softdep.c#8 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ffs/ffs_vnops.c#6 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ufs/ufs_bmap.c#3 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ufs/ufs_lookup.c#3 integrate .. //depot/projects/zcopybpf/src/sys/ufs/ufs/ufs_vnops.c#6 integrate .. //depot/projects/zcopybpf/src/sys/vm/pmap.h#2 integrate .. //depot/projects/zcopybpf/src/sys/vm/vm_extern.h#2 integrate .. //depot/projects/zcopybpf/src/sys/vm/vm_glue.c#4 integrate .. //depot/projects/zcopybpf/src/sys/vm/vm_kern.c#4 integrate .. //depot/projects/zcopybpf/src/sys/vm/vm_map.c#8 integrate .. //depot/projects/zcopybpf/src/sys/vm/vm_map.h#3 integrate .. //depot/projects/zcopybpf/src/sys/vm/vm_page.c#8 integrate Differences ... ==== //depot/projects/zcopybpf/src/sys/amd64/amd64/machdep.c#6 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.676 2007/10/28 21:23:48 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.677 2007/11/05 11:36:09 kib Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1137,7 +1137,7 @@ * This may be done better later if it gets more high level * components in it. If so just link td->td_proc here. */ - proc_linkup(&proc0, &thread0); + proc_linkup0(&proc0, &thread0); preload_metadata = (caddr_t)(uintptr_t)(modulep + KERNBASE); preload_bootstrap_relocate(KERNBASE); ==== //depot/projects/zcopybpf/src/sys/amd64/amd64/pmap.c#9 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.591 2007/11/03 05:15:25 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.593 2007/11/05 18:13:33 alc Exp $"); /* * Manages physical address maps. @@ -743,6 +743,22 @@ #ifdef SMP /* * For SMP, these functions have to use the IPI mechanism for coherence. + * + * N.B.: Before calling any of the following TLB invalidation functions, + * the calling processor must ensure that all stores updating a non- + * kernel page table are globally performed. Otherwise, another + * processor could cache an old, pre-update entry without being + * invalidated. This can happen one of two ways: (1) The pmap becomes + * active on another processor after its pm_active field is checked by + * one of the following functions but before a store updating the page + * table is globally performed. (2) The pmap becomes active on another + * processor before its pm_active field is checked but due to + * speculative loads one of the following functions stills reads the + * pmap as inactive on the other processor. + * + * The kernel page table is exempt because its pm_active field is + * immutable. The kernel page table is always active on every + * processor. */ void pmap_invalidate_page(pmap_t pmap, vm_offset_t va) @@ -1139,6 +1155,13 @@ } /* + * This is a release store so that the ordinary store unmapping + * the page table page is globally performed before TLB shoot- + * down is begun. + */ + atomic_subtract_rel_int(&cnt.v_wire_count, 1); + + /* * Do an invltlb to make the invalidated mapping * take effect immediately. */ @@ -1151,7 +1174,6 @@ m->right = *free; *free = m; - atomic_subtract_int(&cnt.v_wire_count, 1); return 1; } @@ -1186,7 +1208,7 @@ * Initialize a preallocated and zeroed pmap structure, * such as one in a vmspace structure. */ -void +int pmap_pinit(pmap_t pmap) { vm_page_t pml4pg; @@ -1216,6 +1238,8 @@ pmap->pm_active = 0; TAILQ_INIT(&pmap->pm_pvchunk); bzero(&pmap->pm_stats, sizeof pmap->pm_stats); + + return (1); } /* ==== //depot/projects/zcopybpf/src/sys/amd64/conf/NOTES#7 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.70 2007/10/29 22:19:08 peter Exp $ +# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.71 2007/11/08 22:09:37 benjsc Exp $ # # @@ -315,6 +315,7 @@ # nve: nVidia nForce MCP on-board Ethernet Networking # ral: Ralink Technology IEEE 802.11 wireless adapter # ural: Ralink Technology RT2500USB IEEE 802.11 wireless adapter +# wpi: Intel 3945ABG Wireless LAN controller device ed options ED_3C503 @@ -326,6 +327,7 @@ device nve # nVidia nForce MCP on-board Ethernet Networking device ral device ural +device wpi device ath device ath_hal # Atheros HAL (includes binary component) ==== //depot/projects/zcopybpf/src/sys/arm/arm/cpufunc.c#5 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.20 2007/10/31 07:27:31 kevlo Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.21 2007/11/08 13:19:08 cognet Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -333,6 +333,11 @@ armv5_ec_idcache_wbinv_all, /* idcache_wbinv_all */ armv5_ec_idcache_wbinv_range, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + (void *)cpufunc_nullop, /* l2cache_wbinv_range */ + (void *)cpufunc_nullop, /* l2cache_inv_range */ + (void *)cpufunc_nullop, /* l2cache_wb_range */ + /* Other functions */ cpufunc_nullop, /* flush_prefetchbuf */ ==== //depot/projects/zcopybpf/src/sys/arm/arm/pmap.c#7 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.87 2007/10/16 20:40:04 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.88 2007/11/05 11:36:10 kib Exp $"); #include <sys/param.h> #include <sys/systm.h> #include <sys/kernel.h> @@ -3813,7 +3813,7 @@ * such as one in a vmspace structure. */ -void +int pmap_pinit(pmap_t pmap) { PDEBUG(1, printf("pmap_pinit: pmap = %08x\n", (uint32_t) pmap)); @@ -3832,6 +3832,7 @@ pmap_enter(pmap, vector_page, PHYS_TO_VM_PAGE(systempage.pv_pa), VM_PROT_READ, 1); } + return (1); } ==== //depot/projects/zcopybpf/src/sys/arm/at91/kb920x_machdep.c#6 (text) ==== @@ -48,7 +48,7 @@ #include "opt_at91.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.26 2007/10/25 22:43:17 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/kb920x_machdep.c,v 1.27 2007/11/05 11:36:10 kib Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include <sys/param.h> @@ -449,7 +449,7 @@ undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup(&proc0, &thread0); + proc_linkup0(&proc0, &thread0); thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/zcopybpf/src/sys/arm/sa11x0/assabet_machdep.c#2 (text+ko) ==== @@ -47,7 +47,7 @@ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.21 2006/12/06 06:34:54 julian Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/sa11x0/assabet_machdep.c,v 1.22 2007/11/05 11:36:10 kib Exp $"); #include "opt_md.h" @@ -422,7 +422,7 @@ /* Set stack for exception handlers */ - proc_linkup(&proc0, &thread0); + proc_linkup0(&proc0, &thread0); thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/zcopybpf/src/sys/arm/xscale/i80321/ep80219_machdep.c#4 (text+ko) ==== @@ -49,7 +49,7 @@ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/ep80219_machdep.c,v 1.7 2007/05/23 13:20:50 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/ep80219_machdep.c,v 1.8 2007/11/05 11:36:10 kib Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include <sys/param.h> @@ -426,7 +426,7 @@ undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup(&proc0, &thread0); + proc_linkup0(&proc0, &thread0); thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/zcopybpf/src/sys/arm/xscale/i80321/iq31244_machdep.c#4 (text+ko) ==== @@ -49,7 +49,7 @@ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq31244_machdep.c,v 1.28 2007/05/23 13:20:50 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i80321/iq31244_machdep.c,v 1.29 2007/11/05 11:36:10 kib Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include <sys/param.h> @@ -424,7 +424,7 @@ undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup(&proc0, &thread0); + proc_linkup0(&proc0, &thread0); thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/zcopybpf/src/sys/arm/xscale/i8134x/crb_machdep.c#3 (text+ko) ==== @@ -49,7 +49,7 @@ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/crb_machdep.c,v 1.2 2007/09/22 16:25:43 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/i8134x/crb_machdep.c,v 1.3 2007/11/05 11:36:11 kib Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include <sys/param.h> @@ -409,7 +409,7 @@ #ifdef KSE proc_linkup(&proc0, &ksegrp0, &thread0); #else - proc_linkup(&proc0, &thread0); + proc_linkup0(&proc0, &thread0); #endif thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) ==== //depot/projects/zcopybpf/src/sys/arm/xscale/ixp425/avila_machdep.c#5 (text+ko) ==== @@ -49,7 +49,7 @@ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_machdep.c,v 1.5 2007/05/23 13:20:50 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/avila_machdep.c,v 1.6 2007/11/05 11:36:11 kib Exp $"); #define _ARM32_BUS_DMA_PRIVATE #include <sys/param.h> @@ -490,7 +490,7 @@ undefined_handler_address = (u_int)undefinedinstruction_bounce; undefined_init(); - proc_linkup(&proc0, &thread0); + proc_linkup0(&proc0, &thread0); thread0.td_kstack = kernelstack.pv_va; thread0.td_pcb = (struct pcb *) (thread0.td_kstack + KSTACK_PAGES * PAGE_SIZE) - 1; ==== //depot/projects/zcopybpf/src/sys/arm/xscale/ixp425/if_npe.c#4 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.6 2007/05/24 16:31:22 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.7 2007/11/04 21:54:52 cognet Exp $"); /* * Intel XScale NPE Ethernet driver. @@ -39,7 +39,6 @@ * in the Intel Access Library (IAL) and the OS-specific driver. * * XXX add vlan support - * XXX NPE-C port doesn't work yet */ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" ==== //depot/projects/zcopybpf/src/sys/boot/common/loader.8#4 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.93 2007/05/09 02:37:58 sepotvin Exp $ +.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.94 2007/11/08 11:59:38 ru Exp $ .\" -.Dd May 8, 2007 +.Dd November 8, 2007 .Dt LOADER 8 .Os .Sh NAME @@ -591,7 +591,8 @@ .It Va kern.maxbcache Limits the amount of KVM reserved for use by the buffer cache, specified in bytes. -The default maximum is 200MB. +The default maximum is 200MB on i386, +and 400MB on amd64, sparc64, and sun4v. This parameter is used to prevent the buffer cache from eating too much KVM in large-memory machine configurations. ==== //depot/projects/zcopybpf/src/sys/compat/linux/linux_ioctl.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.138 2007/04/07 19:40:58 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_ioctl.c,v 1.139 2007/11/07 16:42:52 kib Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -2323,6 +2323,7 @@ case LINUX_SIOCGIFCONF: case LINUX_SIOCGPGRP: case LINUX_SIOCSPGRP: + case LINUX_SIOCGIFCOUNT: /* these ioctls don't take an interface name */ #ifdef DEBUG printf("%s(): ioctl %d\n", __func__, @@ -2344,6 +2345,7 @@ case LINUX_SIOCSIFHWADDR: case LINUX_SIOCDEVPRIVATE: case LINUX_SIOCDEVPRIVATE+1: + case LINUX_SIOCGIFINDEX: /* copy in the interface name and translate it. */ error = copyin((void *)args->arg, lifname, LINUX_IFNAMSIZ); if (error != 0) @@ -2478,6 +2480,15 @@ error = ioctl(td, (struct ioctl_args *)args); break; + case LINUX_SIOCGIFINDEX: + args->cmd = SIOCGIFINDEX; + error = ioctl(td, (struct ioctl_args *)args); + break; + + case LINUX_SIOCGIFCOUNT: + error = 0; + break; + /* * XXX This is slightly bogus, but these ioctls are currently * XXX only used by the aironet (if_an) network driver. ==== //depot/projects/zcopybpf/src/sys/compat/linux/linux_ioctl.h#3 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/linux/linux_ioctl.h,v 1.26 2007/04/10 21:37:37 scottl Exp $ + * $FreeBSD: src/sys/compat/linux/linux_ioctl.h,v 1.27 2007/11/07 16:42:52 kib Exp $ */ #ifndef _LINUX_IOCTL_H_ @@ -230,9 +230,12 @@ #define LINUX_SIOCGIFHWADDR 0x8927 #define LINUX_SIOCADDMULTI 0x8931 #define LINUX_SIOCDELMULTI 0x8932 +#define LINUX_SIOCGIFINDEX 0x8933 +#define LINUX_SIOGIFINDEX LINUX_SIOCGIFINDEX +#define LINUX_SIOCGIFCOUNT 0x8938 #define LINUX_IOCTL_SOCKET_MIN LINUX_FIOSETOWN -#define LINUX_IOCTL_SOCKET_MAX LINUX_SIOCDELMULTI +#define LINUX_IOCTL_SOCKET_MAX LINUX_SIOCGIFCOUNT /* * Device private ioctl calls ==== //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/kcondvar.h#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/opensolaris/sys/kcondvar.h,v 1.1 2007/04/06 01:09:06 pjd Exp $ + * $FreeBSD: src/sys/compat/opensolaris/sys/kcondvar.h,v 1.2 2007/11/05 18:40:55 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_CONDVAR_H_ @@ -45,8 +45,15 @@ } kcv_type_t; #define zfs_cv_init(cv, name, type, arg) do { \ + const char *_name; \ ASSERT((type) == CV_DEFAULT); \ - cv_init((cv), "zfs:" #cv); \ + for (_name = #cv; *_name != '\0'; _name++) { \ + if (*_name >= 'a' && *_name <= 'z') \ + break; \ + } \ + if (*_name == '\0') \ + _name = #cv; \ + cv_init((cv), _name); \ } while (0) #define cv_init(cv, name, type, arg) zfs_cv_init((cv), (name), (type), (arg)) ==== //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/mutex.h#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/opensolaris/sys/mutex.h,v 1.3 2007/05/26 21:37:14 pjd Exp $ + * $FreeBSD: src/sys/compat/opensolaris/sys/mutex.h,v 1.4 2007/11/05 18:40:55 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_MUTEX_H_ @@ -53,11 +53,18 @@ #endif #define mutex_init(lock, desc, type, arg) do { \ + const char *_name; \ ASSERT((type) == MUTEX_DEFAULT); \ KASSERT(((lock)->lock_object.lo_flags & LO_ALLMASK) != \ LO_EXPECTED, ("lock %s already initialized", #lock)); \ bzero((lock), sizeof(struct sx)); \ - sx_init_flags((lock), "zfs:" #lock, MUTEX_FLAGS); \ + for (_name = #lock; *_name != '\0'; _name++) { \ + if (*_name >= 'a' && *_name <= 'z') \ + break; \ + } \ + if (*_name == '\0') \ + _name = #lock; \ + sx_init_flags((lock), _name, MUTEX_FLAGS); \ } while (0) #define mutex_destroy(lock) sx_destroy(lock) #define mutex_enter(lock) sx_xlock(lock) ==== //depot/projects/zcopybpf/src/sys/compat/opensolaris/sys/rwlock.h#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/compat/opensolaris/sys/rwlock.h,v 1.3 2007/05/26 21:37:14 pjd Exp $ + * $FreeBSD: src/sys/compat/opensolaris/sys/rwlock.h,v 1.4 2007/11/05 18:40:55 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_RWLOCK_H_ @@ -60,10 +60,17 @@ #define RW_ISWRITER(x) (rw_iswriter(x)) #define rw_init(lock, desc, type, arg) do { \ + const char *_name; \ KASSERT(((lock)->lock_object.lo_flags & LO_ALLMASK) != \ LO_EXPECTED, ("lock %s already initialized", #lock)); \ bzero((lock), sizeof(struct sx)); \ - sx_init_flags((lock), "zfs:" #lock, RW_FLAGS); \ + for (_name = #lock; *_name != '\0'; _name++) { \ + if (*_name >= 'a' && *_name <= 'z') \ + break; \ + } \ + if (*_name == '\0') \ + _name = #lock; \ + sx_init_flags((lock), _name, RW_FLAGS); \ } while (0) #define rw_destroy(lock) sx_destroy(lock) #define rw_enter(lock, how) do { \ ==== //depot/projects/zcopybpf/src/sys/compat/pecoff/imgact_pecoff.c#3 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/pecoff/imgact_pecoff.c,v 1.40 2007/07/05 07:38:17 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/pecoff/imgact_pecoff.c,v 1.41 2007/11/05 11:36:11 kib Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -416,7 +416,11 @@ wp = (void *) ((char *) ap + sizeof(struct coff_aouthdr)); error = pecoff_read_from(FIRST_THREAD_IN_PROC(imgp->proc), imgp->vp, peofs + PECOFF_HDR_SIZE, (caddr_t) sh, scnsiz); - exec_new_vmspace(imgp, &pecoff_sysvec); + if (error) + return (error); + error = exec_new_vmspace(imgp, &pecoff_sysvec); + if (error) + return (error); vmspace = imgp->proc->p_vmspace; for (i = 0; i < fp->f_nscns; i++) { prot = VM_PROT_WRITE; /* XXX for relocation? */ ==== //depot/projects/zcopybpf/src/sys/compat/svr4/imgact_svr4.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/compat/svr4/imgact_svr4.c,v 1.25 2005/04/01 20:00:10 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/imgact_svr4.c,v 1.26 2007/11/05 11:36:11 kib Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -120,7 +120,9 @@ /* * Destroy old process VM and create a new one (with a new stack) */ - exec_new_vmspace(imgp, &svr4_sysvec); + error = exec_new_vmspace(imgp, &svr4_sysvec); + if (error) + goto fail; vmspace = imgp->proc->p_vmspace; /* ==== //depot/projects/zcopybpf/src/sys/conf/NOTES#11 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1454 2007/09/26 21:14:17 marius Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1455 2007/11/06 02:42:00 grog Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -604,7 +604,7 @@ # broken or changes with CPU throttling then you must also have the ALTQ_NOPCC # option. options ALTQ -options ALTQ_CBQ # Class Bases Queueing +options ALTQ_CBQ # Class Based Queueing options ALTQ_RED # Random Early Detection options ALTQ_RIO # RED In/Out options ALTQ_HFSC # Hierarchical Packet Scheduler ==== //depot/projects/zcopybpf/src/sys/conf/files#13 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1249 2007/10/28 15:55:20 rwatson Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1250 2007/11/08 14:47:54 ups Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1445,6 +1445,7 @@ kern/kern_proc.c standard kern/kern_prot.c standard kern/kern_resource.c standard +kern/kern_rmlock.c standard kern/kern_rwlock.c standard kern/kern_sema.c standard kern/kern_shutdown.c standard ==== //depot/projects/zcopybpf/src/sys/conf/files.amd64#6 (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.amd64,v 1.111 2007/10/26 03:23:52 peter Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.113 2007/11/08 22:09:36 benjsc Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -139,6 +139,7 @@ crypto/des/des_enc.c optional crypto | ipsec | netsmb dev/acpica/acpi_if.m standard dev/arcmsr/arcmsr.c optional arcmsr pci +dev/asmc/asmc.c optional asmc isa dev/atkbdc/atkbd.c optional atkbd atkbdc dev/atkbdc/atkbd_atkbdc.c optional atkbd atkbdc dev/atkbdc/atkbdc.c optional atkbdc @@ -200,6 +201,7 @@ dev/syscons/scvgarndr.c optional sc vga dev/syscons/scvtb.c optional sc dev/uart/uart_cpu_amd64.c optional uart +dev/wpi/if_wpi.c optional wpi isa/syscons_isa.c optional sc isa/vga_isa.c optional vga kern/link_elf_obj.c standard ==== //depot/projects/zcopybpf/src/sys/conf/files.i386#6 (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.584 2007/10/26 03:23:52 peter Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.586 2007/11/08 22:09:36 benjsc Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -148,6 +148,7 @@ dev/ar/if_ar_pci.c optional ar pci dev/arl/if_arl.c optional arl dev/arl/if_arl_isa.c optional arl isa +dev/asmc/asmc.c optional asmc isa dev/atkbdc/atkbd.c optional atkbd atkbdc dev/atkbdc/atkbd_atkbdc.c optional atkbd atkbdc dev/atkbdc/atkbdc.c optional atkbdc @@ -234,6 +235,7 @@ dev/syscons/scvtb.c optional sc dev/uart/uart_cpu_i386.c optional uart dev/acpica/acpi_if.m standard +dev/wpi/if_wpi.c optional wpi i386/acpica/OsdEnvironment.c optional acpi i386/acpica/acpi_machdep.c optional acpi i386/acpica/acpi_wakeup.c optional acpi ==== //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/arc.c#5 (text+ko) ==== @@ -2804,12 +2804,12 @@ if (((uint64_t)physmem * PAGESIZE) < (256 + 128 + 64) * (1 << 20)) { printf("ZFS WARNING: Recommended minimum RAM size is 512MB; " "expect unstable behavior.\n"); - } else if (kmem_size() < 256 * (1 << 20)) { - printf("ZFS WARNING: Recommended minimum kmem_size is 256MB; " + } else if (kmem_size() < 512 * (1 << 20)) { + printf("ZFS WARNING: Recommended minimum kmem_size is 512MB; " "expect unstable behavior.\n"); - printf(" Consider tuning vm.kmem_size or " - "vm.kmem_size_min\n"); - printf(" in /boot/loader.conf.\n"); + printf(" Consider tuning vm.kmem_size and " + "vm.kmem_size_max\n"); + printf(" in /boot/loader.conf.\n"); } #endif } ==== //depot/projects/zcopybpf/src/sys/contrib/opensolaris/uts/common/fs/zfs/vdev.c#3 (text+ko) ==== @@ -1846,6 +1846,17 @@ vd->vdev_state = state; vd->vdev_stat.vs_aux = aux; + /* + * If we are setting the vdev state to anything but an open state, then + * always close the underlying device. Otherwise, we keep accessible + * but invalid devices open forever. We don't call vdev_close() itself, + * because that implies some extra checks (offline, etc) that we don't + * want here. This is limited to leaf devices, because otherwise + * closing the device will affect other children. + */ + if (vdev_is_dead(vd) && vd->vdev_ops->vdev_op_leaf) + vd->vdev_ops->vdev_op_close(vd); + if (state == VDEV_STATE_CANT_OPEN) { /* * If we fail to open a vdev during an import, we mark it as ==== //depot/projects/zcopybpf/src/sys/dev/acpica/acpi_ec.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.79 2007/10/25 20:02:38 takawata Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_ec.c,v 1.80 2007/11/08 21:20:34 njl Exp $"); #include "opt_acpi.h" #include <sys/param.h> @@ -556,7 +556,6 @@ sc = device_get_softc(dev); sc->ec_suspending = TRUE; return (0); - } static int @@ -567,7 +566,6 @@ sc = device_get_softc(dev); sc->ec_suspending = FALSE; return (0); - } static int ==== //depot/projects/zcopybpf/src/sys/dev/ciss/ciss.c#7 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ciss/ciss.c,v 1.84 2007/10/20 23:23:14 julian Exp $ + * $FreeBSD: src/sys/dev/ciss/ciss.c,v 1.85 2007/11/05 13:54:23 iwasaki Exp $ */ /* @@ -183,6 +183,7 @@ /* periodic status monitoring */ static void ciss_periodic(void *arg); +static void ciss_nop_complete(struct ciss_request *cr); static void ciss_disable_adapter(struct ciss_softc *sc); static void ciss_notify_event(struct ciss_softc *sc); static void ciss_notify_complete(struct ciss_request *cr); @@ -3100,6 +3101,7 @@ */ if ((error = ciss_get_request(sc, &cr)) == 0) { cc = CISS_FIND_COMMAND(cr); + cr->cr_complete = ciss_nop_complete; cc->cdb.cdb_length = 1; cc->cdb.type = CISS_CDB_TYPE_MESSAGE; cc->cdb.attribute = CISS_CDB_ATTRIBUTE_SIMPLE; @@ -3107,11 +3109,9 @@ cc->cdb.timeout = 0; cc->cdb.cdb[0] = CISS_OPCODE_MESSAGE_NOP; - if ((error = ciss_synch_request(cr, 10 * 1000)) != 0) { + if ((error = ciss_start(cr)) != 0) { ciss_printf(sc, "SENDING NOP MESSAGE FAILED\n"); } - - ciss_release_request(cr); } /* @@ -3129,6 +3129,19 @@ callout_reset(&sc->ciss_periodic, CISS_HEARTBEAT_RATE * hz, ciss_periodic, sc); } +static void +ciss_nop_complete(struct ciss_request *cr) +{ + struct ciss_softc *sc; + + sc = cr->cr_sc; + if (ciss_report_request(cr, NULL, NULL) != 0) { + ciss_printf(sc, "SENDING NOP MESSAGE FAILED\n"); + } + + ciss_release_request(cr); +} + /************************************************************************ * Disable the adapter. * ==== //depot/projects/zcopybpf/src/sys/dev/isp/isp_sbus.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/isp/isp_sbus.c,v 1.35 2007/05/11 13:47:28 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/isp/isp_sbus.c,v 1.36 2007/11/05 11:22:18 scottl Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -327,21 +327,26 @@ /* * Make sure we're in reset state. */ + ISP_LOCK(isp); isp_reset(isp); if (isp->isp_state != ISP_RESETSTATE) { isp_uninit(isp); + ISP_UNLOCK(isp); goto bad; } isp_init(isp); if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state != ISP_INITSTATE) { isp_uninit(isp); + ISP_UNLOCK(isp); goto bad; } isp_attach(isp); if (isp->isp_role != ISP_ROLE_NONE && isp->isp_state != ISP_RUNSTATE) { isp_uninit(isp); + ISP_UNLOCK(isp); goto bad; } + ISP_UNLOCK(isp); return (0); bad: ==== //depot/projects/zcopybpf/src/sys/dev/md/md.c#4 (text+ko) ==== @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $FreeBSD: src/sys/dev/md/md.c,v 1.170 2007/10/20 23:23:16 julian Exp $ + * $FreeBSD: src/sys/dev/md/md.c,v 1.171 2007/11/07 22:47:41 sobomax Exp $ * */ @@ -60,6 +60,7 @@ #include <sys/systm.h> #include <sys/bio.h> #include <sys/conf.h> +#include <sys/devicestat.h> #include <sys/fcntl.h> #include <sys/kernel.h> #include <sys/kthread.h> @@ -181,6 +182,7 @@ struct g_geom *gp; struct g_provider *pp; int (*start)(struct md_s *sc, struct bio *bp); + struct devstat *devstat; /* MD_MALLOC related fields */ struct indir *indir; @@ -392,6 +394,8 @@ struct md_s *sc; sc = bp->bio_to->geom->softc; + if ((bp->bio_cmd == BIO_READ) || (bp->bio_cmd == BIO_WRITE)) + devstat_start_transaction_bio(sc->devstat, bp); mtx_lock(&sc->queue_mtx); bioq_disksort(&sc->bio_queue, bp); mtx_unlock(&sc->queue_mtx); @@ -725,6 +729,8 @@ if (error != -1) { bp->bio_completed = bp->bio_length; g_io_deliver(bp, error); + if ((bp->bio_cmd == BIO_READ) || (bp->bio_cmd == BIO_WRITE)) + devstat_end_transaction_bio(sc->devstat, bp); } } } @@ -792,6 +798,8 @@ >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711101633.lAAGXu1O069146>