From owner-p4-projects@FreeBSD.ORG Tue May 18 13:43:09 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9C94E1065675; Tue, 18 May 2010 13:43:09 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5FE031065672 for ; Tue, 18 May 2010 13:43:09 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (unknown [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4ABA68FC14 for ; Tue, 18 May 2010 13:43:09 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IDh9Eo039104 for ; Tue, 18 May 2010 13:43:09 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o4IDh8ZG039100 for perforce@freebsd.org; Tue, 18 May 2010 13:43:08 GMT (envelope-from anchie@FreeBSD.org) Date: Tue, 18 May 2010 13:43:08 GMT Message-Id: <201005181343.o4IDh8ZG039100@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 178442 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 13:43:09 -0000 http://p4web.freebsd.org/@@178442?ac=10 Change 178442 by anchie@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 -__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 -__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 -__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 #include #include @@ -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 -__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 #include #include @@ -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 -__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@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@FreeBSD.org . ==== //depot/projects/soc2009/anchie_send/src/sys/cam/scsi/scsi_sg.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__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 #include @@ -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 -__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 #include @@ -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 #include #include @@ -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 #include #include @@ -35,510 +33,88 @@ #include #include #include -#include +#include -#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) <<<