PERFORCE change 178442 for review
Ana Kukec
anchie at FreeBSD.org
Tue May 18 13:43:09 UTC 2010
http://p4web.freebsd.org/@@178442?ac=10
Change 178442 by anchie at anchie_malimis on 2010/05/18 13:42:28
IFC @178439
Affected files ...
.. //depot/projects/soc2009/anchie_send/src/sys/amd64/amd64/apic_vector.S#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/amd64/amd64/exception.S#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/amd64/amd64/pmap.c#9 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/amd64/amd64/trap.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/arm/arm/identcpu.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/arm/arm/pmap.c#10 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/arm/include/disassem.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/arm/include/md_var.h#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/boot/common/module.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/boot/forth/loader.conf.5#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cam/scsi/scsi_sg.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/boot/zfs/zfsimpl.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/compat/opensolaris/sys/dnlc.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/compat/opensolaris/sys/sysmacros.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/conf/files#11 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/conf/files.powerpc#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/conf/options#9 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/contrib/dev/run/rt2870.fw.uu#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/ddb/db_output.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/ddb/ddb.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/ata/chipsets/ata-serverworks.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/bwn/if_bwn.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/e1000/if_em.c#9 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/e1000/if_igb.c#9 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/e1000/if_lem.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/esp/esp_sbus.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/fxp/if_fxp.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/ipw/if_ipw.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/isp/isp_freebsd.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/isp/ispvar.h#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/ixgbe/ixgbe.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/ofw/ofw_if.m#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/ofw/ofw_standard.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/ofw/openfirm.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/ofw/openfirm.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/pci/pci.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/sge/if_sge.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/sge/if_sgereg.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/controller/ehci.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/controller/usb_controller.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/input/ums.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/net/uhso.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/quirk/usb_quirk.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/serial/u3g.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/serial/uftdi.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/usb_dev.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/usb_device.c#8 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/usb_device.h#8 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/usb_generic.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/usb_hid.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/usb_hub.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/usb_request.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/usbdevs#8 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/usbhid.h#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/wlan/if_run.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/wlan/if_runreg.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/dev/usb/wlan/if_runvar.h#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/fs/nfsclient/nfs_clsubs.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/fs/nfsclient/nfs_clvfsops.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/fs/nullfs/null_vnops.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/geom/multipath/g_multipath.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/geom/part/g_part_apm.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/geom/vinum/geom_vinum.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/geom/vinum/geom_vinum.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/geom/vinum/geom_vinum_events.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/geom/vinum/geom_vinum_var.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/geom/zero/g_zero.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/i386/i386/geode.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/i386/i386/pmap.c#9 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/i386/xen/pmap.c#9 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/ia64/ia64/pmap.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/kern/kern_mutex.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/kern/sched_ule.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/kern/subr_pcpu.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/kern/subr_smp.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/kern/subr_witness.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/kern/vfs_default.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/kern/vfs_subr.c#8 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/kern/vnode_if.src#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/adm5120/if_admsw.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/conf/XLR#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/include/hwfunc.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/include/locore.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/include/param.h#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/include/smp.h#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/mips/cpu.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/mips/elf_machdep.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/mips/machdep.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/mips/mp_machdep.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/mips/mpboot.S#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/mips/pmap.c#8 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/dev/xlr/rge.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/files.xlr#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/interrupt.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/intr_machdep.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/iodi.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/mpwait.S#1 branch
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/on_chip.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/pic.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/xlr_machdep.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/xlr_pci.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/rmi/xlrconfig.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/mips/sibyte/sb_machdep.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/modules/Makefile#14 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/modules/cas/Makefile#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/modules/mvs/Makefile#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/modules/zfs/Makefile#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/net/flowtable.c#8 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/net/flowtable.h#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/net/if_vlan.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/net/vnet.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netgraph/ng_base.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_bsd_addr.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_bsd_addr.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_constants.h#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_indata.c#9 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_input.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_lock_bsd.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_output.c#8 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_pcb.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_pcb.h#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_structs.h#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_timer.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctp_usrreq.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet/sctputil.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet6/ip6_input.c#8 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/netinet6/ip6_output.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/aim/mmu_oea.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/aim/mmu_oea64.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/aim/ofw_machdep.c#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/booke/pmap.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/cpufreq/pcr.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/include/intr_machdep.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/ofw/ofw_pcibus.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/ofw/ofw_real.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/powermac/ata_kauai.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/powermac/cpcht.c#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/powermac/cpchtvar.h#2 delete
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/powermac/smu.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/powermac/uninorth.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/powermac/uninorthpci.c#1 branch
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/powermac/uninorthvar.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/powerpc/powerpc/openpic.c#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/sparc64/pci/schizo.c#5 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/sparc64/pci/schizoreg.h#2 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/sparc64/pci/schizovar.h#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/sparc64/sparc64/pmap.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/sun4v/sun4v/pmap.c#6 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/sys/eventhandler.h#3 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/sys/lock.h#4 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/sys/vnode.h#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/vm/vm_object.c#7 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/vm/vm_page.c#8 integrate
.. //depot/projects/soc2009/anchie_send/src/sys/vm/vm_page.h#4 integrate
Differences ...
==== //depot/projects/soc2009/anchie_send/src/sys/amd64/amd64/apic_vector.S#3 (text+ko) ====
@@ -28,7 +28,7 @@
* SUCH DAMAGE.
*
* from: vector.s, 386BSD 0.1 unknown origin
- * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.113 2010/03/29 19:13:34 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.115 2010/05/13 09:59:10 kib Exp $
*/
/*
@@ -81,7 +81,7 @@
/* No EOI cycle used here */
- iretq
+ jmp doreti_iret
ISR_VEC(1, apic_isr1)
ISR_VEC(2, apic_isr2)
@@ -135,7 +135,7 @@
incl smp_tlb_wait
popq %rax
- iretq
+ jmp doreti_iret
/*
* Single page TLB shootdown
@@ -155,7 +155,7 @@
incl smp_tlb_wait
popq %rax
- iretq
+ jmp doreti_iret
/*
* Page range TLB shootdown.
@@ -181,7 +181,7 @@
popq %rdx
popq %rax
- iretq
+ jmp doreti_iret
/*
* Invalidate cache.
@@ -200,7 +200,7 @@
incl smp_tlb_wait
popq %rax
- iretq
+ jmp doreti_iret
/*
* Handler for IPIs sent via the per-cpu IPI bitmap.
@@ -247,7 +247,7 @@
call cpususpend_handler
POP_FRAME
- iretq
+ jmp doreti_iret
/*
* Executed by a CPU when it receives a RENDEZVOUS IPI from another CPU.
==== //depot/projects/soc2009/anchie_send/src/sys/amd64/amd64/exception.S#6 (text+ko) ====
@@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.145 2010/05/03 14:30:49 kib Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.146 2010/05/12 10:29:35 kib Exp $
*/
#include "opt_atpic.h"
@@ -553,7 +553,7 @@
movq TF_R14(%rsp),%r14
movq TF_R15(%rsp),%r15
addq $TF_RIP,%rsp
- iretq
+ jmp doreti_iret
ENTRY(fork_trampoline)
movq %r12,%rdi /* function */
==== //depot/projects/soc2009/anchie_send/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.696 2010/05/08 20:34:01 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.697 2010/05/16 23:45:10 alc Exp $");
/*
* Manages physical address maps.
@@ -3139,7 +3139,10 @@
va = trunc_page(va);
KASSERT(va <= VM_MAX_KERNEL_ADDRESS, ("pmap_enter: toobig"));
KASSERT(va < UPT_MIN_ADDRESS || va >= UPT_MAX_ADDRESS,
- ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%lx)", va));
+ ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%lx)",
+ va));
+ KASSERT((m->oflags & VPO_BUSY) != 0,
+ ("pmap_enter: page %p is not busy", m));
mpte = NULL;
@@ -4240,7 +4243,16 @@
pt_entry_t oldpte, *pte;
vm_offset_t va;
- if ((m->flags & PG_FICTITIOUS) != 0 ||
+ KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0,
+ ("pmap_remove_write: page %p is not managed", m));
+
+ /*
+ * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by
+ * another thread while the object is locked. Thus, if PG_WRITEABLE
+ * is clear, no page table entries need updating.
+ */
+ VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ if ((m->oflags & VPO_BUSY) == 0 &&
(m->flags & PG_WRITEABLE) == 0)
return;
vm_page_lock_queues();
==== //depot/projects/soc2009/anchie_send/src/sys/amd64/amd64/trap.c#6 (text+ko) ====
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.342 2010/05/01 13:15:35 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.343 2010/05/12 10:29:06 kib Exp $");
/*
* AMD64 Trap and System call handling
@@ -488,22 +488,18 @@
}
if (frame->tf_rip == (long)ld_ds) {
frame->tf_rip = (long)ds_load_fault;
- frame->tf_ds = _udatasel;
goto out;
}
if (frame->tf_rip == (long)ld_es) {
frame->tf_rip = (long)es_load_fault;
- frame->tf_es = _udatasel;
goto out;
}
if (frame->tf_rip == (long)ld_fs) {
frame->tf_rip = (long)fs_load_fault;
- frame->tf_fs = _ufssel;
goto out;
}
if (frame->tf_rip == (long)ld_gs) {
frame->tf_rip = (long)gs_load_fault;
- frame->tf_gs = _ugssel;
goto out;
}
if (frame->tf_rip == (long)ld_gsbase) {
==== //depot/projects/soc2009/anchie_send/src/sys/arm/arm/identcpu.c#5 (text+ko) ====
@@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.19 2010/05/04 10:14:05 kevlo Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.20 2010/05/12 05:50:56 kevlo Exp $");
#include <sys/systm.h>
#include <sys/param.h>
#include <sys/malloc.h>
@@ -220,7 +220,7 @@
generic_steppings },
{ CPU_ID_ARM966ESR1, CPU_CLASS_ARM9ES, "ARM966E-S",
generic_steppings },
- { CPU_ID_FA526, CPU_CLASS_ARM9, "FA526",
+ { CPU_ID_FA526, CPU_CLASS_ARM9TDMI, "FA526",
generic_steppings },
{ CPU_ID_FA626TE, CPU_CLASS_ARM9ES, "FA626TE",
generic_steppings },
@@ -322,7 +322,6 @@
{ "ARM7", "CPU_ARM7" }, /* CPU_CLASS_ARM7 */
{ "ARM7TDMI", "CPU_ARM7TDMI" }, /* CPU_CLASS_ARM7TDMI */
{ "ARM8", "CPU_ARM8" }, /* CPU_CLASS_ARM8 */
- { "ARM9", "CPU_ARM9" }, /* CPU_CLASS_ARM9 */
{ "ARM9TDMI", "CPU_ARM9TDMI" }, /* CPU_CLASS_ARM9TDMI */
{ "ARM9E-S", "CPU_ARM9E" }, /* CPU_CLASS_ARM9ES */
{ "ARM9EJ-S", "CPU_ARM9E" }, /* CPU_CLASS_ARM9EJS */
==== //depot/projects/soc2009/anchie_send/src/sys/arm/arm/pmap.c#10 (text+ko) ====
@@ -140,7 +140,7 @@
#include "opt_vm.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.122 2010/05/08 20:34:01 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.123 2010/05/16 23:45:10 alc Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -3318,6 +3318,8 @@
u_int oflags;
vm_paddr_t pa;
+ KASSERT((m->oflags & VPO_BUSY) != 0 || (flags & M_NOWAIT) != 0,
+ ("pmap_enter_locked: page %p is not busy", m));
PMAP_ASSERT_LOCKED(pmap);
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
if (va == vector_page) {
@@ -4527,7 +4529,17 @@
pmap_remove_write(vm_page_t m)
{
- if (m->flags & PG_WRITEABLE) {
+ KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0,
+ ("pmap_remove_write: page %p is not managed", m));
+
+ /*
+ * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by
+ * another thread while the object is locked. Thus, if PG_WRITEABLE
+ * is clear, no page table entries need updating.
+ */
+ VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED);
+ if ((m->oflags & VPO_BUSY) != 0 ||
+ (m->flags & PG_WRITEABLE) != 0) {
vm_page_lock_queues();
pmap_clearbit(m, PVF_WRITE);
vm_page_unlock_queues();
==== //depot/projects/soc2009/anchie_send/src/sys/arm/include/disassem.h#2 (text+ko) ====
@@ -35,7 +35,7 @@
*
* Define the interface structure required by the disassembler.
*
- * $FreeBSD: src/sys/arm/include/disassem.h,v 1.2 2005/01/05 21:58:48 imp Exp $
+ * $FreeBSD: src/sys/arm/include/disassem.h,v 1.3 2010/05/14 00:00:19 cognet Exp $
*/
#ifndef _MACHINE_DISASSEM_H_
@@ -43,7 +43,7 @@
typedef struct {
u_int (*di_readword)(u_int);
void (*di_printaddr)(u_int);
- void (*di_printf)(const char *, ...) __printflike(1, 2);
+ int (*di_printf)(const char *, ...) __printflike(1, 2);
} disasm_interface_t;
/* Prototypes for callable functions */
==== //depot/projects/soc2009/anchie_send/src/sys/arm/include/md_var.h#4 (text+ko) ====
@@ -27,7 +27,7 @@
* SUCH DAMAGE.
*
* from: FreeBSD: src/sys/i386/include/md_var.h,v 1.40 2001/07/12
- * $FreeBSD: src/sys/arm/include/md_var.h,v 1.7 2010/02/20 14:54:11 kevlo Exp $
+ * $FreeBSD: src/sys/arm/include/md_var.h,v 1.8 2010/05/12 05:50:56 kevlo Exp $
*/
#ifndef _MACHINE_MD_VAR_H_
@@ -57,7 +57,6 @@
CPU_CLASS_ARM7,
CPU_CLASS_ARM7TDMI,
CPU_CLASS_ARM8,
- CPU_CLASS_ARM9,
CPU_CLASS_ARM9TDMI,
CPU_CLASS_ARM9ES,
CPU_CLASS_ARM9EJS,
==== //depot/projects/soc2009/anchie_send/src/sys/boot/common/module.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/common/module.c,v 1.29 2009/12/31 12:17:38 nyan Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/common/module.c,v 1.30 2010/05/10 18:23:00 imp Exp $");
/*
* file/module function dispatcher, support, etc.
@@ -295,7 +295,8 @@
}
static int
-file_load_dependencies(struct preloaded_file *base_file) {
+file_load_dependencies(struct preloaded_file *base_file)
+{
struct file_metadata *md;
struct preloaded_file *fp;
struct mod_depend *verinfo;
==== //depot/projects/soc2009/anchie_send/src/sys/boot/forth/loader.conf.5#3 (text+ko) ====
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/sys/boot/forth/loader.conf.5,v 1.29 2009/11/27 03:55:42 sobomax Exp $
+.\" $FreeBSD: src/sys/boot/forth/loader.conf.5,v 1.30 2010/05/13 12:07:55 uqs Exp $
.Dd January 16, 2008
.Dt LOADER.CONF 5
.Os
@@ -243,6 +243,14 @@
.Xr boot 8 ,
.Xr loader 8 ,
.Xr loader.4th 8
+.Sh HISTORY
+The file
+.Nm
+first appeared in
+.Fx 3.2 .
+.Sh AUTHORS
+This manual page was written by
+.An Daniel C. Sobral Aq dcs at FreeBSD.org .
.Sh BUGS
The
.Xr loader 8
@@ -253,11 +261,3 @@
.Dq Va hw.ata.ata_dma Ns "=0" )
should precede any experimental additions to
.Nm .
-.Sh HISTORY
-The file
-.Nm
-first appeared in
-.Fx 3.2 .
-.Sh AUTHORS
-This manual page was written by
-.An Daniel C. Sobral Aq dcs at FreeBSD.org .
==== //depot/projects/soc2009/anchie_send/src/sys/cam/scsi/scsi_sg.c#5 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sg.c,v 1.17 2010/03/17 18:53:58 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sg.c,v 1.19 2010/05/11 22:51:13 mjacob Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -303,7 +303,14 @@
softc->dev = make_dev(&sg_cdevsw, periph->unit_number,
UID_ROOT, GID_OPERATOR, 0600, "%s%d",
periph->periph_name, periph->unit_number);
- (void)make_dev_alias(softc->dev, "sg%c", 'a' + periph->unit_number);
+ if (periph->unit_number < 26) {
+ (void)make_dev_alias(softc->dev, "sg%c",
+ periph->unit_number + 'a');
+ } else {
+ (void)make_dev_alias(softc->dev, "sg%c%c",
+ ((periph->unit_number / 26) - 1) + 'a',
+ (periph->unit_number % 26) + 'a');
+ }
cam_periph_lock(periph);
softc->dev->si_drv1 = periph;
==== //depot/projects/soc2009/anchie_send/src/sys/cddl/boot/zfs/zfsimpl.h#3 (text+ko) ====
@@ -66,7 +66,7 @@
#define P2ROUNDUP(x, align) (-(-(x) & -(align)))
#define P2END(x, align) (-(~(x) & -(align)))
#define P2PHASEUP(x, align, phase) ((phase) - (((phase) - (x)) & -(align)))
-#define P2CROSS(x, y, align) (((x) ^ (y)) > (align) - 1)
+#define P2BOUNDARY(off, len, align) (((off) ^ ((off) + (len) - 1)) > (align) - 1)
/*
* General-purpose 32-bit and 64-bit bitfield encodings.
==== //depot/projects/soc2009/anchie_send/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c,v 1.2 2010/04/19 09:03:36 delphij Exp $");
+__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c,v 1.3 2010/05/16 15:12:34 pjd Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -40,12 +40,6 @@
static uma_zone_t taskq_zone;
-struct ostask {
- struct task ost_task;
- task_func_t *ost_func;
- void *ost_arg;
-};
-
taskq_t *system_taskq = NULL;
static void
@@ -140,3 +134,32 @@
return ((taskqid_t)(void *)task);
}
+
+#define TASKQ_MAGIC 0x74541c
+
+static void
+taskq_run_safe(void *arg, int pending __unused)
+{
+ struct ostask *task = arg;
+
+ ASSERT(task->ost_magic == TASKQ_MAGIC);
+ task->ost_func(task->ost_arg);
+ task->ost_magic = 0;
+}
+
+taskqid_t
+taskq_dispatch_safe(taskq_t *tq, task_func_t func, void *arg,
+ struct ostask *task)
+{
+
+ ASSERT(task->ost_magic != TASKQ_MAGIC);
+
+ task->ost_magic = TASKQ_MAGIC;
+ task->ost_func = func;
+ task->ost_arg = arg;
+
+ TASK_INIT(&task->ost_task, 0, taskq_run_safe, task);
+ taskqueue_enqueue(tq->tq_queue, &task->ost_task);
+
+ return ((taskqid_t)(void *)task);
+}
==== //depot/projects/soc2009/anchie_send/src/sys/cddl/compat/opensolaris/sys/dnlc.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/cddl/compat/opensolaris/sys/dnlc.h,v 1.4 2008/11/17 20:49:29 pjd Exp $
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/dnlc.h,v 1.5 2010/05/11 22:46:36 pjd Exp $
*/
#ifndef _OPENSOLARIS_SYS_DNLC_H_
@@ -35,6 +35,6 @@
#define dnlc_update(dvp, name, vp) do { } while (0)
#define dnlc_remove(dvp, name) do { } while (0)
#define dnlc_purge_vfsp(vfsp, count) (0)
-#define dnlc_reduce_cache(percent) EVENTHANDLER_INVOKE(vfs_lowvnodes, (int)(intptr_t)(percent))
+#define dnlc_reduce_cache(percent) do { } while (0)
#endif /* !_OPENSOLARIS_SYS_DNLC_H_ */
==== //depot/projects/soc2009/anchie_send/src/sys/cddl/compat/opensolaris/sys/sysmacros.h#2 (text+ko) ====
@@ -19,7 +19,7 @@
*
* CDDL HEADER END
*
- * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/sysmacros.h,v 1.5 2009/02/28 16:21:25 ed Exp $
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/sysmacros.h,v 1.6 2010/05/13 20:32:56 mm Exp $
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
/* All Rights Reserved */
@@ -43,6 +43,10 @@
#define ABS(a) ((a) < 0 ? -(a) : (a))
#endif
+#ifndef SIGNOF
+#define SIGNOF(a) ((a) < 0 ? -1 : (a) > 0)
+#endif
+
/*
* Macro for checking power of 2 address alignment.
*/
@@ -63,7 +67,7 @@
#define P2ROUNDUP(x, align) (-(-(x) & -(align)))
#define P2END(x, align) (-(~(x) & -(align)))
#define P2PHASEUP(x, align, phase) ((phase) - (((phase) - (x)) & -(align)))
-#define P2CROSS(x, y, align) (((x) ^ (y)) > (align) - 1)
+#define P2BOUNDARY(off, len, align) (((off) ^ ((off) + (len) - 1)) > (align) - 1)
/*
* Determine whether two numbers have the same high-order bit.
*/
==== //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#4 (text+ko) ====
@@ -308,20 +308,18 @@
ASSERT3U(db->db.db_offset, ==, db->db_blkid * db->db.db_size);
}
- if (db->db_level == 0) {
- /* we can be momentarily larger in dnode_set_blksz() */
- if (db->db_blkid != DB_BONUS_BLKID && dn) {
- ASSERT3U(db->db.db_size, >=, dn->dn_datablksz);
- }
- if (db->db.db_object == DMU_META_DNODE_OBJECT) {
- dbuf_dirty_record_t *dr = db->db_data_pending;
- /*
- * it should only be modified in syncing
- * context, so make sure we only have
- * one copy of the data.
- */
- ASSERT(dr == NULL || dr->dt.dl.dr_data == db->db_buf);
- }
+ /*
+ * We can't assert that db_size matches dn_datablksz because it
+ * can be momentarily different when another thread is doing
+ * dnode_set_blksz().
+ */
+ if (db->db_level == 0 && db->db.db_object == DMU_META_DNODE_OBJECT) {
+ dbuf_dirty_record_t *dr = db->db_data_pending;
+ /*
+ * It should only be modified in syncing context, so
+ * make sure we only have one copy of the data.
+ */
+ ASSERT(dr == NULL || dr->dt.dl.dr_data == db->db_buf);
}
/* verify db->db_blkptr */
@@ -1917,7 +1915,6 @@
dnode_t *dn = db->db_dnode;
objset_impl_t *os = dn->dn_objset;
uint64_t txg = tx->tx_txg;
- int blksz;
ASSERT(dmu_tx_is_syncing(tx));
@@ -2027,23 +2024,24 @@
return;
}
- blksz = arc_buf_size(*datap);
-
- if (dn->dn_object != DMU_META_DNODE_OBJECT) {
+ if (dn->dn_object != DMU_META_DNODE_OBJECT &&
+ refcount_count(&db->db_holds) > 1 &&
+ *datap == db->db_buf) {
/*
- * If this buffer is currently "in use" (i.e., there are
- * active holds and db_data still references it), then make
- * a copy before we start the write so that any modifications
- * from the open txg will not leak into this write.
+ * If this buffer is currently "in use" (i.e., there
+ * are active holds and db_data still references it),
+ * then make a copy before we start the write so that
+ * any modifications from the open txg will not leak
+ * into this write.
*
- * NOTE: this copy does not need to be made for objects only
- * modified in the syncing context (e.g. DNONE_DNODE blocks).
+ * NOTE: this copy does not need to be made for
+ * objects only modified in the syncing context (e.g.
+ * DNONE_DNODE blocks).
*/
- if (refcount_count(&db->db_holds) > 1 && *datap == db->db_buf) {
- arc_buf_contents_t type = DBUF_GET_BUFC_TYPE(db);
- *datap = arc_buf_alloc(os->os_spa, blksz, db, type);
- bcopy(db->db.db_data, (*datap)->b_data, blksz);
- }
+ int blksz = arc_buf_size(*datap);
+ arc_buf_contents_t type = DBUF_GET_BUFC_TYPE(db);
+ *datap = arc_buf_alloc(os->os_spa, blksz, db, type);
+ bcopy(db->db.db_data, (*datap)->b_data, blksz);
}
ASSERT(*datap != NULL);
==== //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#5 (text+ko) ====
@@ -1192,6 +1192,7 @@
{
dbuf_init();
dnode_init();
+ zfetch_init();
arc_init();
l2arc_init();
}
@@ -1200,6 +1201,7 @@
dmu_fini(void)
{
arc_fini();
+ zfetch_fini();
dnode_fini();
dbuf_fini();
l2arc_fini();
==== //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c#4 (text+ko) ====
@@ -23,8 +23,6 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/dmu.h>
#include <sys/dmu_impl.h>
#include <sys/dmu_tx.h>
@@ -172,66 +170,59 @@
(level) * (dnp->dn_indblkshift - SPA_BLKPTRSHIFT)))
static int
-backup_cb(traverse_blk_cache_t *bc, spa_t *spa, void *arg)
+backup_cb(spa_t *spa, blkptr_t *bp, const zbookmark_t *zb,
+ const dnode_phys_t *dnp, void *arg)
{
struct backuparg *ba = arg;
- uint64_t object = bc->bc_bookmark.zb_object;
- int level = bc->bc_bookmark.zb_level;
- uint64_t blkid = bc->bc_bookmark.zb_blkid;
- blkptr_t *bp = bc->bc_blkptr.blk_birth ? &bc->bc_blkptr : NULL;
dmu_object_type_t type = bp ? BP_GET_TYPE(bp) : DMU_OT_NONE;
- void *data = bc->bc_data;
int err = 0;
if (issig(JUSTLOOKING) && issig(FORREAL))
return (EINTR);
- ASSERT(data || bp == NULL);
-
- if (bp == NULL && object == 0) {
- uint64_t span = BP_SPAN(bc->bc_dnode, level);
- uint64_t dnobj = (blkid * span) >> DNODE_SHIFT;
+ if (bp == NULL && zb->zb_object == 0) {
+ uint64_t span = BP_SPAN(dnp, zb->zb_level);
+ uint64_t dnobj = (zb->zb_blkid * span) >> DNODE_SHIFT;
err = dump_freeobjects(ba, dnobj, span >> DNODE_SHIFT);
} else if (bp == NULL) {
- uint64_t span = BP_SPAN(bc->bc_dnode, level);
- err = dump_free(ba, object, blkid * span, span);
- } else if (data && level == 0 && type == DMU_OT_DNODE) {
- dnode_phys_t *blk = data;
+ uint64_t span = BP_SPAN(dnp, zb->zb_level);
+ err = dump_free(ba, zb->zb_object, zb->zb_blkid * span, span);
+ } else if (zb->zb_level > 0 || type == DMU_OT_OBJSET) {
+ return (0);
+ } else if (type == DMU_OT_DNODE) {
+ dnode_phys_t *blk;
int i;
int blksz = BP_GET_LSIZE(bp);
+ uint32_t aflags = ARC_WAIT;
+ arc_buf_t *abuf;
+ if (arc_read_nolock(NULL, spa, bp,
+ arc_getbuf_func, &abuf, ZIO_PRIORITY_ASYNC_READ,
+ ZIO_FLAG_CANFAIL, &aflags, zb) != 0)
+ return (EIO);
+
+ blk = abuf->b_data;
for (i = 0; i < blksz >> DNODE_SHIFT; i++) {
- uint64_t dnobj =
- (blkid << (DNODE_BLOCK_SHIFT - DNODE_SHIFT)) + i;
+ uint64_t dnobj = (zb->zb_blkid <<
+ (DNODE_BLOCK_SHIFT - DNODE_SHIFT)) + i;
err = dump_dnode(ba, dnobj, blk+i);
if (err)
break;
}
- } else if (level == 0 &&
- type != DMU_OT_DNODE && type != DMU_OT_OBJSET) {
+ (void) arc_buf_remove_ref(abuf, &abuf);
+ } else { /* it's a level-0 block of a regular object */
+ uint32_t aflags = ARC_WAIT;
+ arc_buf_t *abuf;
int blksz = BP_GET_LSIZE(bp);
- if (data == NULL) {
- uint32_t aflags = ARC_WAIT;
- arc_buf_t *abuf;
- zbookmark_t zb;
- zb.zb_objset = ba->os->os->os_dsl_dataset->ds_object;
- zb.zb_object = object;
- zb.zb_level = level;
- zb.zb_blkid = blkid;
- (void) arc_read_nolock(NULL, spa, bp,
- arc_getbuf_func, &abuf, ZIO_PRIORITY_ASYNC_READ,
- ZIO_FLAG_MUSTSUCCEED, &aflags, &zb);
+ if (arc_read_nolock(NULL, spa, bp,
+ arc_getbuf_func, &abuf, ZIO_PRIORITY_ASYNC_READ,
+ ZIO_FLAG_CANFAIL, &aflags, zb) != 0)
+ return (EIO);
- if (abuf) {
- err = dump_data(ba, type, object, blkid * blksz,
- blksz, abuf->b_data);
- (void) arc_buf_remove_ref(abuf, &abuf);
- }
- } else {
- err = dump_data(ba, type, object, blkid * blksz,
- blksz, data);
- }
+ err = dump_data(ba, type, zb->zb_object, zb->zb_blkid * blksz,
+ blksz, abuf->b_data);
+ (void) arc_buf_remove_ref(abuf, &abuf);
}
ASSERT(err == 0 || err == EINTR);
@@ -311,8 +302,7 @@
return (ba.err);
}
- err = traverse_dsl_dataset(ds, fromtxg,
- ADVANCE_PRE | ADVANCE_HOLES | ADVANCE_DATA | ADVANCE_NOLOCK,
+ err = traverse_dataset(ds, fromtxg, TRAVERSE_PRE | TRAVERSE_PREFETCH,
backup_cb, &ba);
if (err) {
==== //depot/projects/soc2009/anchie_send/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c#2 (text+ko) ====
@@ -19,12 +19,10 @@
* CDDL HEADER END
*/
/*
- * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
#include <sys/zfs_context.h>
#include <sys/dmu_objset.h>
#include <sys/dmu_traverse.h>
@@ -35,510 +33,88 @@
#include <sys/spa.h>
#include <sys/zio.h>
#include <sys/dmu_impl.h>
-#include <sys/zvol.h>
+#include <sys/callb.h>
-#define BP_SPAN_SHIFT(level, width) ((level) * (width))
-
-#define BP_EQUAL(b1, b2) \
- (DVA_EQUAL(BP_IDENTITY(b1), BP_IDENTITY(b2)) && \
- (b1)->blk_birth == (b2)->blk_birth)
-
-/*
- * Compare two bookmarks.
- *
- * For ADVANCE_PRE, the visitation order is:
- *
- * objset 0, 1, 2, ..., ZB_MAXOBJSET.
- * object 0, 1, 2, ..., ZB_MAXOBJECT.
- * blkoff 0, 1, 2, ...
- * level ZB_MAXLEVEL, ..., 2, 1, 0.
- *
- * where blkoff = blkid << BP_SPAN_SHIFT(level, width), and thus a valid
- * ordering vector is:
- *
- * < objset, object, blkoff, -level >
- *
- * For ADVANCE_POST, the starting offsets aren't sequential but ending
- * offsets [blkoff = (blkid + 1) << BP_SPAN_SHIFT(level, width)] are.
- * The visitation order is:
- *
- * objset 1, 2, ..., ZB_MAXOBJSET, 0.
- * object 1, 2, ..., ZB_MAXOBJECT, 0.
- * blkoff 1, 2, ...
- * level 0, 1, 2, ..., ZB_MAXLEVEL.
- *
- * and thus a valid ordering vector is:
- *
- * < objset - 1, object - 1, blkoff, level >
- *
- * Both orderings can be expressed as:
- *
- * < objset + bias, object + bias, blkoff, level ^ bias >
- *
- * where 'bias' is either 0 or -1 (for ADVANCE_PRE or ADVANCE_POST)
- * and 'blkoff' is (blkid - bias) << BP_SPAN_SHIFT(level, wshift).
- *
- * Special case: an objset's osphys is represented as level -1 of object 0.
- * It is always either the very first or very last block we visit in an objset.
- * Therefore, if either bookmark's level is -1, level alone determines order.
- */
-static int
-compare_bookmark(zbookmark_t *szb, zbookmark_t *ezb, dnode_phys_t *dnp,
- int advance)
-{
- int bias = (advance & ADVANCE_PRE) ? 0 : -1;
- uint64_t sblkoff, eblkoff;
- int slevel, elevel, wshift;
-
- if (szb->zb_objset + bias < ezb->zb_objset + bias)
- return (-1);
-
- if (szb->zb_objset + bias > ezb->zb_objset + bias)
- return (1);
-
- slevel = szb->zb_level;
- elevel = ezb->zb_level;
-
- if ((slevel | elevel) < 0)
- return ((slevel ^ bias) - (elevel ^ bias));
-
- if (szb->zb_object + bias < ezb->zb_object + bias)
- return (-1);
-
- if (szb->zb_object + bias > ezb->zb_object + bias)
- return (1);
-
- if (dnp == NULL)
- return (0);
-
- wshift = dnp->dn_indblkshift - SPA_BLKPTRSHIFT;
-
- sblkoff = (szb->zb_blkid - bias) << BP_SPAN_SHIFT(slevel, wshift);
- eblkoff = (ezb->zb_blkid - bias) << BP_SPAN_SHIFT(elevel, wshift);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list