PERFORCE change 128904 for review
Robert Watson
rwatson at FreeBSD.org
Sat Nov 10 08:33:59 PST 2007
http://perforce.freebsd.org/chv.cgi?CH=128904
Change 128904 by rwatson at 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) <<<
More information about the p4-projects
mailing list