PERFORCE change 213248 for review
John Baldwin
jhb at FreeBSD.org
Thu Jun 21 18:43:10 UTC 2012
http://p4web.freebsd.org/@@213248?ac=10
Change 213248 by jhb at jhb_jhbbsd on 2012/06/21 18:42:37
IFC @213247
Affected files ...
.. //depot/projects/smpng/share/man/man9/rmlock.9#6 integrate
.. //depot/projects/smpng/share/man/man9/rwlock.9#3 integrate
.. //depot/projects/smpng/sys/amd64/acpica/acpi_switch.S#7 delete
.. //depot/projects/smpng/sys/amd64/acpica/acpi_wakecode.S#10 integrate
.. //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#23 delete
.. //depot/projects/smpng/sys/amd64/amd64/cpu_switch.S#33 integrate
.. //depot/projects/smpng/sys/amd64/amd64/genassym.c#37 integrate
.. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#82 integrate
.. //depot/projects/smpng/sys/amd64/amd64/pmap.c#122 integrate
.. //depot/projects/smpng/sys/amd64/amd64/trap.c#87 integrate
.. //depot/projects/smpng/sys/amd64/conf/GENERIC#101 integrate
.. //depot/projects/smpng/sys/amd64/include/pcb.h#24 integrate
.. //depot/projects/smpng/sys/amd64/include/pmap.h#42 integrate
.. //depot/projects/smpng/sys/amd64/include/smp.h#28 integrate
.. //depot/projects/smpng/sys/arm/arm/bcopyinout_xscale.S#7 integrate
.. //depot/projects/smpng/sys/arm/arm/bootconfig.c#3 integrate
.. //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#37 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc.c#24 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm.S#5 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_arm10.S#3 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_arm11.S#2 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_arm7tdmi.S#4 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_arm8.S#4 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_arm9.S#6 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_armv4.S#4 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_armv5.S#2 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_sa1.S#4 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_xscale.S#5 integrate
.. //depot/projects/smpng/sys/arm/arm/cpufunc_asm_xscale_c3.S#2 integrate
.. //depot/projects/smpng/sys/arm/arm/db_disasm.c#3 integrate
.. //depot/projects/smpng/sys/arm/arm/db_interface.c#9 integrate
.. //depot/projects/smpng/sys/arm/arm/db_trace.c#20 integrate
.. //depot/projects/smpng/sys/arm/arm/disassem.c#3 integrate
.. //depot/projects/smpng/sys/arm/arm/dump_machdep.c#10 integrate
.. //depot/projects/smpng/sys/arm/arm/elf_trampoline.c#27 integrate
.. //depot/projects/smpng/sys/arm/arm/exception.S#7 integrate
.. //depot/projects/smpng/sys/arm/arm/gdb_machdep.c#4 integrate
.. //depot/projects/smpng/sys/arm/arm/in_cksum.c#8 integrate
.. //depot/projects/smpng/sys/arm/arm/intr.c#23 integrate
.. //depot/projects/smpng/sys/arm/arm/irq_dispatch.S#8 integrate
.. //depot/projects/smpng/sys/arm/arm/machdep.c#39 integrate
.. //depot/projects/smpng/sys/arm/arm/mem.c#9 integrate
.. //depot/projects/smpng/sys/arm/arm/nexus.c#17 integrate
.. //depot/projects/smpng/sys/arm/arm/pmap.c#68 integrate
.. //depot/projects/smpng/sys/arm/arm/support.S#15 integrate
.. //depot/projects/smpng/sys/arm/arm/swtch.S#20 integrate
.. //depot/projects/smpng/sys/arm/arm/sys_machdep.c#9 integrate
.. //depot/projects/smpng/sys/arm/arm/trap.c#34 integrate
.. //depot/projects/smpng/sys/arm/arm/undefined.c#18 integrate
.. //depot/projects/smpng/sys/arm/arm/vectors.S#3 integrate
.. //depot/projects/smpng/sys/arm/arm/vm_machdep.c#38 integrate
.. //depot/projects/smpng/sys/arm/at91/at91.c#24 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_machdep.c#10 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_mci.c#17 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_pio.c#11 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_pio_rm9200.h#3 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_pit.c#4 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_pitreg.h#2 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_pmc.c#13 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_pmcvar.h#4 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_reset.S#3 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_rst.c#3 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_spi.c#12 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_ssc.c#8 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_st.c#13 integrate
.. //depot/projects/smpng/sys/arm/at91/at91_wdtreg.h#2 integrate
.. //depot/projects/smpng/sys/arm/at91/at91reg.h#3 integrate
.. //depot/projects/smpng/sys/arm/at91/at91rm9200.c#3 integrate
.. //depot/projects/smpng/sys/arm/at91/at91rm92reg.h#10 integrate
.. //depot/projects/smpng/sys/arm/at91/at91sam9260.c#3 integrate
.. //depot/projects/smpng/sys/arm/at91/at91sam9260reg.h#3 integrate
.. //depot/projects/smpng/sys/arm/at91/at91sam9g20.c#2 integrate
.. //depot/projects/smpng/sys/arm/at91/at91sam9g20reg.h#4 integrate
.. //depot/projects/smpng/sys/arm/at91/at91var.h#6 integrate
.. //depot/projects/smpng/sys/arm/at91/board_qila9g20.c#2 integrate
.. //depot/projects/smpng/sys/arm/at91/board_sam9g20ek.c#3 integrate
.. //depot/projects/smpng/sys/arm/at91/files.at91#11 integrate
.. //depot/projects/smpng/sys/arm/at91/files.at91sam9#4 delete
.. //depot/projects/smpng/sys/arm/at91/if_macb.c#4 integrate
.. //depot/projects/smpng/sys/arm/at91/std.at91#6 integrate
.. //depot/projects/smpng/sys/arm/at91/std.at91sam9#4 integrate
.. //depot/projects/smpng/sys/arm/at91/uart_cpu_at91rm9200usart.c#9 integrate
.. //depot/projects/smpng/sys/arm/conf/AVILA#26 integrate
.. //depot/projects/smpng/sys/arm/conf/BWCT#13 integrate
.. //depot/projects/smpng/sys/arm/conf/CAMBRIA#18 integrate
.. //depot/projects/smpng/sys/arm/conf/CNS11XXNAS#4 integrate
.. //depot/projects/smpng/sys/arm/conf/CRB#11 integrate
.. //depot/projects/smpng/sys/arm/conf/EP80219#15 integrate
.. //depot/projects/smpng/sys/arm/conf/GUMSTIX#9 integrate
.. //depot/projects/smpng/sys/arm/conf/GUMSTIX-QEMU#2 integrate
.. //depot/projects/smpng/sys/arm/conf/HL200#15 integrate
.. //depot/projects/smpng/sys/arm/conf/HL201#4 integrate
.. //depot/projects/smpng/sys/arm/conf/IQ31244#24 integrate
.. //depot/projects/smpng/sys/arm/conf/KB920X#23 integrate
.. //depot/projects/smpng/sys/arm/conf/LN2410SBC#5 integrate
.. //depot/projects/smpng/sys/arm/conf/NSLU#11 integrate
.. //depot/projects/smpng/sys/arm/conf/QILA9G20#4 integrate
.. //depot/projects/smpng/sys/arm/conf/QILA9G20.hints#2 integrate
.. //depot/projects/smpng/sys/arm/conf/SAM9G20EK#4 integrate
.. //depot/projects/smpng/sys/arm/conf/SAM9G20EK.hints#2 integrate
.. //depot/projects/smpng/sys/arm/conf/SIMICS#20 integrate
.. //depot/projects/smpng/sys/arm/econa/econa_machdep.c#4 integrate
.. //depot/projects/smpng/sys/arm/include/armreg.h#11 integrate
.. //depot/projects/smpng/sys/arm/include/asmacros.h#9 integrate
.. //depot/projects/smpng/sys/arm/include/atags.h#1 branch
.. //depot/projects/smpng/sys/arm/include/atomic.h#33 integrate
.. //depot/projects/smpng/sys/arm/include/blockio.h#2 integrate
.. //depot/projects/smpng/sys/arm/include/cpufunc.h#18 integrate
.. //depot/projects/smpng/sys/arm/include/elf.h#12 integrate
.. //depot/projects/smpng/sys/arm/include/endian.h#16 integrate
.. //depot/projects/smpng/sys/arm/include/fdt.h#5 integrate
.. //depot/projects/smpng/sys/arm/include/fp.h#3 integrate
.. //depot/projects/smpng/sys/arm/include/frame.h#5 integrate
.. //depot/projects/smpng/sys/arm/include/ieee.h#4 integrate
.. //depot/projects/smpng/sys/arm/include/in_cksum.h#6 integrate
.. //depot/projects/smpng/sys/arm/include/intr.h#13 integrate
.. //depot/projects/smpng/sys/arm/include/katelib.h#3 integrate
.. //depot/projects/smpng/sys/arm/include/machdep.h#4 integrate
.. //depot/projects/smpng/sys/arm/include/param.h#17 integrate
.. //depot/projects/smpng/sys/arm/include/pmap.h#36 integrate
.. //depot/projects/smpng/sys/arm/include/pmc_mdep.h#6 integrate
.. //depot/projects/smpng/sys/arm/include/profile.h#8 integrate
.. //depot/projects/smpng/sys/arm/include/pte.h#5 integrate
.. //depot/projects/smpng/sys/arm/include/resource.h#4 integrate
.. //depot/projects/smpng/sys/arm/include/stack.h#2 integrate
.. //depot/projects/smpng/sys/arm/include/vmparam.h#17 integrate
.. //depot/projects/smpng/sys/arm/mv/mv_machdep.c#17 integrate
.. //depot/projects/smpng/sys/arm/mv/mvwin.h#5 integrate
.. //depot/projects/smpng/sys/arm/mv/std.mv#2 integrate
.. //depot/projects/smpng/sys/arm/s3c2xx0/s3c2410reg.h#2 integrate
.. //depot/projects/smpng/sys/arm/s3c2xx0/s3c2440reg.h#2 integrate
.. //depot/projects/smpng/sys/arm/s3c2xx0/s3c24x0.c#3 integrate
.. //depot/projects/smpng/sys/arm/s3c2xx0/s3c24x0_machdep.c#5 integrate
.. //depot/projects/smpng/sys/arm/s3c2xx0/s3c24x0reg.h#3 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/assabet_machdep.c#26 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/sa11x0.c#12 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_gpioreg.h#3 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_io_asm.S#3 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_irq.S#7 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_ost.c#10 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_ostreg.h#3 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/sa11x0_var.h#5 integrate
.. //depot/projects/smpng/sys/arm/sa11x0/uart_dev_sa1110.c#8 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/ep80219_machdep.c#13 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321.c#9 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_aau.c#5 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_dma.c#4 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_intr.h#4 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_pci.c#14 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_space.c#7 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_timer.c#14 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/i80321reg.h#4 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/iq31244_7seg.c#4 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/iq31244_machdep.c#32 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/iq80321.c#16 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/obio.c#6 integrate
.. //depot/projects/smpng/sys/arm/xscale/i8134x/crb_machdep.c#11 integrate
.. //depot/projects/smpng/sys/arm/xscale/i8134x/i81342.c#4 integrate
.. //depot/projects/smpng/sys/arm/xscale/i8134x/i81342_mcu.c#3 integrate
.. //depot/projects/smpng/sys/arm/xscale/i8134x/i81342_pci.c#4 integrate
.. //depot/projects/smpng/sys/arm/xscale/i8134x/i81342_space.c#2 integrate
.. //depot/projects/smpng/sys/arm/xscale/i8134x/i81342reg.h#2 integrate
.. //depot/projects/smpng/sys/arm/xscale/i8134x/iq81342_7seg.c#3 integrate
.. //depot/projects/smpng/sys/arm/xscale/i8134x/obio.c#2 integrate
.. //depot/projects/smpng/sys/arm/xscale/i8134x/uart_cpu_i81342.c#2 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/avila_ata.c#9 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/avila_gpio.c#4 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/avila_machdep.c#17 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/cambria_exp_space.c#2 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/if_npe.c#19 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/if_npereg.h#3 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425.c#17 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425_iic.c#7 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425_npe.c#9 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425_npereg.h#3 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425_pci.c#10 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425_pci_space.c#2 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425_qmgr.c#8 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425_qmgr.h#3 integrate
.. //depot/projects/smpng/sys/arm/xscale/ixp425/ixp425reg.h#9 integrate
.. //depot/projects/smpng/sys/arm/xscale/pxa/if_smc_smi.c#2 integrate
.. //depot/projects/smpng/sys/arm/xscale/pxa/pxa_machdep.c#6 integrate
.. //depot/projects/smpng/sys/arm/xscale/pxa/pxareg.h#2 integrate
.. //depot/projects/smpng/sys/boot/common/load_elf.c#22 integrate
.. //depot/projects/smpng/sys/boot/common/load_elf_obj.c#6 integrate
.. //depot/projects/smpng/sys/boot/ofw/libofw/ofw_disk.c#14 integrate
.. //depot/projects/smpng/sys/boot/sparc64/loader/main.c#36 integrate
.. //depot/projects/smpng/sys/boot/zfs/zfsimpl.c#16 integrate
.. //depot/projects/smpng/sys/cam/ata/ata_da.c#18 integrate
.. //depot/projects/smpng/sys/cam/ata/ata_pmp.c#8 integrate
.. //depot/projects/smpng/sys/cam/ata/ata_xpt.c#17 integrate
.. //depot/projects/smpng/sys/cam/cam.h#9 integrate
.. //depot/projects/smpng/sys/cam/cam_debug.h#5 integrate
.. //depot/projects/smpng/sys/cam/cam_periph.c#47 integrate
.. //depot/projects/smpng/sys/cam/cam_periph.h#13 integrate
.. //depot/projects/smpng/sys/cam/cam_xpt.c#81 integrate
.. //depot/projects/smpng/sys/cam/cam_xpt.h#12 integrate
.. //depot/projects/smpng/sys/cam/cam_xpt_periph.h#7 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_all.c#37 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_all.h#23 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_cd.c#52 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#104 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_enc.c#2 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_pass.c#30 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_pt.c#21 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#41 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_target.c#33 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_xpt.c#12 integrate
.. //depot/projects/smpng/sys/cddl/boot/zfs/zfsimpl.h#11 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c#1 branch
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c#1 branch
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h#1 branch
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/common/zfs/zpool_prop.c#5 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/Makefile.files#5 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#21 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c#1 branch
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#10 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c#2 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#13 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c#12 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c#6 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c#7 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c#11 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c#6 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#11 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c#5 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#8 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c#3 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c#3 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c#11 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c#7 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#9 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/bptree.h#1 branch
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#11 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h#5 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#8 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#8 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_scan.h#2 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#9 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h#9 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h#8 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h#8 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h#5 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h#1 branch
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h#11 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c#11 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c#6 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c#5 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c#7 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c#1 branch
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#22 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#21 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#16 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h#9 integrate
.. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/sys/nvpair.h#4 integrate
.. //depot/projects/smpng/sys/conf/NOTES#198 integrate
.. //depot/projects/smpng/sys/conf/files#278 integrate
.. //depot/projects/smpng/sys/conf/files.amd64#90 integrate
.. //depot/projects/smpng/sys/conf/files.i386#149 integrate
.. //depot/projects/smpng/sys/conf/kern.post.mk#72 integrate
.. //depot/projects/smpng/sys/conf/options#195 integrate
.. //depot/projects/smpng/sys/conf/options.arm#28 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf.c#48 integrate
.. //depot/projects/smpng/sys/contrib/rdma/krping/krping.c#3 integrate
.. //depot/projects/smpng/sys/contrib/rdma/krping/krping.h#2 integrate
.. //depot/projects/smpng/sys/contrib/rdma/krping/krping_dev.c#2 integrate
.. //depot/projects/smpng/sys/contrib/rdma/rdma_addr.c#4 integrate
.. //depot/projects/smpng/sys/contrib/rdma/rdma_cache.c#2 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_video.c#19 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpivar.h#85 integrate
.. //depot/projects/smpng/sys/dev/ae/if_ae.c#15 integrate
.. //depot/projects/smpng/sys/dev/ahci/ahci.c#24 integrate
.. //depot/projects/smpng/sys/dev/aic7xxx/aicasm/Makefile#19 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.c#114 integrate
.. //depot/projects/smpng/sys/dev/ata/chipsets/ata-ite.c#7 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ah_desc.h#8 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ah_internal.h#19 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c#7 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_hal/ar9002/ar9287_reset.c#2 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath.c#101 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath_debug.c#5 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath_misc.h#4 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath_rx.c#2 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath_sysctl.c#8 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath_tx.c#6 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath_tx.h#4 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath_tx_ht.c#7 integrate
.. //depot/projects/smpng/sys/dev/ath/if_athioctl.h#27 integrate
.. //depot/projects/smpng/sys/dev/ath/if_athvar.h#59 integrate
.. //depot/projects/smpng/sys/dev/bge/if_bgereg.h#71 integrate
.. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_ctl_defs.h#4 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_adapter.h#26 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_main.c#41 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_offload.c#6 delete
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_offload.h#7 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_osdep.h#14 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_sge.c#35 integrate
.. //depot/projects/smpng/sys/dev/cxgb/sys/mvec.h#10 integrate
.. //depot/projects/smpng/sys/dev/cxgb/t3cdev.h#4 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#12 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.h#2 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c#7 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.h#2 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cq.c#3 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_dbg.c#3 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ev.c#3 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.c#3 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_hal.h#2 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_ib_intfc.h#1 branch
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_mem.c#3 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.c#3 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_provider.h#2 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_qp.c#4 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_resource.c#4 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_user.h#2 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_wr.h#2 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/toecore/cxgb_toedev.h#4 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/toecore/toedev.c#4 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#21 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#12 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_ddp.c#9 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_defs.h#6 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_l2t.c#5 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_l2t.h#4 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_listen.c#6 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_t3_ddp.h#5 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_tcp.h#3 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.c#4 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_tcp_offload.h#3 delete
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_toepcb.h#5 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_tom.c#9 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_tom.h#4 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c#8 delete
.. //depot/projects/smpng/sys/dev/cxgbe/adapter.h#6 integrate
.. //depot/projects/smpng/sys/dev/cxgbe/common/t4_hw.c#4 integrate
.. //depot/projects/smpng/sys/dev/cxgbe/offload.h#5 integrate
.. //depot/projects/smpng/sys/dev/cxgbe/t4_l2t.c#3 integrate
.. //depot/projects/smpng/sys/dev/cxgbe/t4_l2t.h#3 integrate
.. //depot/projects/smpng/sys/dev/cxgbe/t4_main.c#7 integrate
.. //depot/projects/smpng/sys/dev/cxgbe/t4_sge.c#6 integrate
.. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_connect.c#1 branch
.. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_cpl_io.c#1 branch
.. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_listen.c#1 branch
.. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_tom.c#1 branch
.. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_tom.h#1 branch
.. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_tom_l2t.c#1 branch
.. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_tom_l2t.h#1 branch
.. //depot/projects/smpng/sys/dev/drm2/i915/i915_gem.c#2 integrate
.. //depot/projects/smpng/sys/dev/fb/fbreg.h#19 integrate
.. //depot/projects/smpng/sys/dev/filemon/filemon.c#1 branch
.. //depot/projects/smpng/sys/dev/filemon/filemon.h#1 branch
.. //depot/projects/smpng/sys/dev/filemon/filemon_lock.c#1 branch
.. //depot/projects/smpng/sys/dev/filemon/filemon_wrapper.c#1 branch
.. //depot/projects/smpng/sys/dev/flash/at45d.c#5 integrate
.. //depot/projects/smpng/sys/dev/hptrr/hptrr_osm_bsd.c#9 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_arm.c#6 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_intel.c#10 integrate
.. //depot/projects/smpng/sys/dev/isp/isp.c#69 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_freebsd.h#52 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_pci.c#68 integrate
.. //depot/projects/smpng/sys/dev/isp/ispmbox.h#31 integrate
.. //depot/projects/smpng/sys/dev/isp/ispreg.h#14 integrate
.. //depot/projects/smpng/sys/dev/isp/ispvar.h#46 integrate
.. //depot/projects/smpng/sys/dev/ispfw/asm_2400.h#4 integrate
.. //depot/projects/smpng/sys/dev/ispfw/asm_2500.h#3 integrate
.. //depot/projects/smpng/sys/dev/ixgbe/ixgbe.c#30 integrate
.. //depot/projects/smpng/sys/dev/jme/if_jme.c#14 integrate
.. //depot/projects/smpng/sys/dev/mvs/mvs.c#10 integrate
.. //depot/projects/smpng/sys/dev/mvs/mvs.h#4 integrate
.. //depot/projects/smpng/sys/dev/mvs/mvs_soc.c#6 integrate
.. //depot/projects/smpng/sys/dev/pci/pci_pci.c#49 integrate
.. //depot/projects/smpng/sys/dev/puc/puc_cfg.h#2 integrate
.. //depot/projects/smpng/sys/dev/puc/pucdata.c#59 integrate
.. //depot/projects/smpng/sys/dev/siis/siis.c#19 integrate
.. //depot/projects/smpng/sys/dev/sym/sym_conf.h#5 integrate
.. //depot/projects/smpng/sys/dev/sym/sym_hipd.c#40 integrate
.. //depot/projects/smpng/sys/dev/usb/quirk/usb_quirk.c#24 integrate
.. //depot/projects/smpng/sys/dev/usb/serial/uftdi.c#24 integrate
.. //depot/projects/smpng/sys/dev/usb/serial/uftdi_reg.h#2 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#173 integrate
.. //depot/projects/smpng/sys/dev/viawd/viawd.c#2 integrate
.. //depot/projects/smpng/sys/dev/xen/balloon/balloon.c#9 integrate
.. //depot/projects/smpng/sys/fs/nfsclient/nfs_clbio.c#16 integrate
.. //depot/projects/smpng/sys/fs/nfsclient/nfs_clnode.c#15 integrate
.. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvfsops.c#19 integrate
.. //depot/projects/smpng/sys/geom/multipath/g_multipath.c#13 integrate
.. //depot/projects/smpng/sys/geom/part/g_part_gpt.c#24 integrate
.. //depot/projects/smpng/sys/i386/acpica/acpi_wakecode.S#12 integrate
.. //depot/projects/smpng/sys/i386/acpica/acpi_wakeup.c#45 delete
.. //depot/projects/smpng/sys/i386/conf/GENERIC#131 integrate
.. //depot/projects/smpng/sys/i386/conf/XEN#14 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#142 integrate
.. //depot/projects/smpng/sys/i386/i386/swtch.s#36 integrate
.. //depot/projects/smpng/sys/i386/include/pcb.h#19 integrate
.. //depot/projects/smpng/sys/i386/include/pmap.h#59 integrate
.. //depot/projects/smpng/sys/i386/include/smp.h#36 integrate
.. //depot/projects/smpng/sys/ia64/include/pmap.h#34 integrate
.. //depot/projects/smpng/sys/kern/kern_descrip.c#141 integrate
.. //depot/projects/smpng/sys/kern/kern_event.c#67 integrate
.. //depot/projects/smpng/sys/kern/kern_fork.c#137 integrate
.. //depot/projects/smpng/sys/kern/subr_smp.c#73 integrate
.. //depot/projects/smpng/sys/kern/subr_trap.c#104 integrate
.. //depot/projects/smpng/sys/kern/sys_capability.c#6 integrate
.. //depot/projects/smpng/sys/kern/sys_generic.c#71 integrate
.. //depot/projects/smpng/sys/kern/sys_procdesc.c#2 integrate
.. //depot/projects/smpng/sys/kern/tty.c#109 integrate
.. //depot/projects/smpng/sys/kern/uipc_syscalls.c#139 integrate
.. //depot/projects/smpng/sys/kern/uipc_usrreq.c#99 integrate
.. //depot/projects/smpng/sys/kern/vfs_default.c#75 integrate
.. //depot/projects/smpng/sys/kern/vfs_syscalls.c#168 integrate
.. //depot/projects/smpng/sys/kern/vfs_vnops.c#112 integrate
.. //depot/projects/smpng/sys/libkern/iconv.c#17 integrate
.. //depot/projects/smpng/sys/mips/include/pmap.h#24 integrate
.. //depot/projects/smpng/sys/mips/rmi/rootfs_list.txt#2 integrate
.. //depot/projects/smpng/sys/modules/Makefile#189 integrate
.. //depot/projects/smpng/sys/modules/cxgb/Makefile#9 integrate
.. //depot/projects/smpng/sys/modules/cxgb/cxgb/Makefile#12 integrate
.. //depot/projects/smpng/sys/modules/cxgb/iw_cxgb/Makefile#6 integrate
.. //depot/projects/smpng/sys/modules/cxgb/toecore/Makefile#4 delete
.. //depot/projects/smpng/sys/modules/cxgb/tom/Makefile#6 integrate
.. //depot/projects/smpng/sys/modules/cxgbe/Makefile#4 integrate
.. //depot/projects/smpng/sys/modules/cxgbe/tom/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/filemon/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/rdma/krping/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/toecore/Makefile#1 branch
.. //depot/projects/smpng/sys/modules/zfs/Makefile#19 integrate
.. //depot/projects/smpng/sys/net/bpf.c#103 integrate
.. //depot/projects/smpng/sys/net/if.h#53 integrate
.. //depot/projects/smpng/sys/net/if_bridge.c#72 integrate
.. //depot/projects/smpng/sys/net/if_gif.c#61 integrate
.. //depot/projects/smpng/sys/net/if_tap.c#58 integrate
.. //depot/projects/smpng/sys/net/if_var.h#81 integrate
.. //depot/projects/smpng/sys/net/if_vlan.c#80 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_radiotap.c#4 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_var.h#54 integrate
.. //depot/projects/smpng/sys/netgraph/netflow/netflow.c#25 integrate
.. //depot/projects/smpng/sys/netgraph/netflow/netflow_v9.c#3 integrate
.. //depot/projects/smpng/sys/netgraph/netflow/ng_netflow.c#21 integrate
.. //depot/projects/smpng/sys/netgraph/netflow/ng_netflow.h#13 integrate
.. //depot/projects/smpng/sys/netinet/icmp_var.h#14 integrate
.. //depot/projects/smpng/sys/netinet/if_ether.c#95 integrate
.. //depot/projects/smpng/sys/netinet/if_ether.h#15 integrate
.. //depot/projects/smpng/sys/netinet/in.c#79 integrate
.. //depot/projects/smpng/sys/netinet/in.h#56 integrate
.. //depot/projects/smpng/sys/netinet/in_pcb.c#113 integrate
.. //depot/projects/smpng/sys/netinet/in_pcb.h#75 integrate
.. //depot/projects/smpng/sys/netinet/ip_icmp.c#62 integrate
.. //depot/projects/smpng/sys/netinet/ip_input.c#120 integrate
.. //depot/projects/smpng/sys/netinet/ip_output.c#125 integrate
.. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_table.c#9 integrate
.. //depot/projects/smpng/sys/netinet/libalias/libalias.3#8 integrate
.. //depot/projects/smpng/sys/netinet/sctp_indata.c#43 integrate
.. //depot/projects/smpng/sys/netinet/sctp_indata.h#15 integrate
.. //depot/projects/smpng/sys/netinet/sctp_input.c#43 integrate
.. //depot/projects/smpng/sys/netinet/sctp_input.h#10 integrate
.. //depot/projects/smpng/sys/netinet/sctp_output.c#51 integrate
.. //depot/projects/smpng/sys/netinet/sctp_output.h#20 integrate
.. //depot/projects/smpng/sys/netinet/sctp_usrreq.c#45 integrate
.. //depot/projects/smpng/sys/netinet/sctputil.c#52 integrate
.. //depot/projects/smpng/sys/netinet/sctputil.h#26 integrate
.. //depot/projects/smpng/sys/netinet/tcp_input.c#146 integrate
.. //depot/projects/smpng/sys/netinet/tcp_offload.c#10 integrate
.. //depot/projects/smpng/sys/netinet/tcp_offload.h#5 integrate
.. //depot/projects/smpng/sys/netinet/tcp_output.c#78 integrate
.. //depot/projects/smpng/sys/netinet/tcp_subr.c#135 integrate
.. //depot/projects/smpng/sys/netinet/tcp_syncache.c#88 integrate
.. //depot/projects/smpng/sys/netinet/tcp_syncache.h#10 integrate
.. //depot/projects/smpng/sys/netinet/tcp_timer.c#59 integrate
.. //depot/projects/smpng/sys/netinet/tcp_usrreq.c#94 integrate
.. //depot/projects/smpng/sys/netinet/tcp_var.h#87 integrate
.. //depot/projects/smpng/sys/netinet/toecore.c#1 branch
.. //depot/projects/smpng/sys/netinet/toecore.h#1 branch
.. //depot/projects/smpng/sys/netinet/toedev.h#4 delete
.. //depot/projects/smpng/sys/netinet/udp_usrreq.c#107 integrate
.. //depot/projects/smpng/sys/netinet6/in6.c#80 integrate
.. //depot/projects/smpng/sys/netinet6/ip6_input.c#82 integrate
.. //depot/projects/smpng/sys/netinet6/sctp6_usrreq.c#27 integrate
.. //depot/projects/smpng/sys/netsmb/smb_dev.c#29 integrate
.. //depot/projects/smpng/sys/ofed/drivers/infiniband/core/cma.c#4 integrate
.. //depot/projects/smpng/sys/ofed/drivers/infiniband/core/iwcm.c#2 integrate
.. //depot/projects/smpng/sys/ofed/include/linux/net.h#2 integrate
.. //depot/projects/smpng/sys/ofed/include/net/netevent.h#2 integrate
.. //depot/projects/smpng/sys/ofed/include/rdma/iw_cm.h#2 integrate
.. //depot/projects/smpng/sys/powerpc/include/pmap.h#38 integrate
.. //depot/projects/smpng/sys/sparc64/include/pmap.h#44 integrate
.. //depot/projects/smpng/sys/sys/cdefs.h#51 integrate
.. //depot/projects/smpng/sys/sys/file.h#37 integrate
.. //depot/projects/smpng/sys/sys/filedesc.h#37 integrate
.. //depot/projects/smpng/sys/sys/kernel.h#51 integrate
.. //depot/projects/smpng/sys/sys/smp.h#29 integrate
.. //depot/projects/smpng/sys/sys/vnode.h#121 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#94 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_vnops.c#74 integrate
.. //depot/projects/smpng/sys/vm/pmap.h#41 integrate
.. //depot/projects/smpng/sys/vm/swap_pager.c#93 integrate
.. //depot/projects/smpng/sys/vm/vm_map.c#119 integrate
.. //depot/projects/smpng/sys/vm/vm_page.c#127 integrate
.. //depot/projects/smpng/sys/vm/vm_page.h#60 integrate
.. //depot/projects/smpng/sys/vm/vm_pageout.c#89 integrate
.. //depot/projects/smpng/sys/vm/vnode_pager.c#85 integrate
.. //depot/projects/smpng/sys/x86/acpica/acpi_wakeup.c#1 branch
Differences ...
==== //depot/projects/smpng/share/man/man9/rmlock.9#6 (text+ko) ====
@@ -23,10 +23,10 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man9/rmlock.9,v 1.8 2012/03/29 05:02:12 eadler Exp $
+.\" $FreeBSD: src/share/man/man9/rmlock.9,v 1.9 2012/06/08 21:30:35 jhb Exp $
.\"
.\" Based on rwlock.9 man page
-.Dd November 16, 2011
+.Dd June 8, 2012
.Dt RMLOCK 9
.Os
.Sh NAME
@@ -41,7 +41,7 @@
.Nm rm_wunlock ,
.Nm rm_wowned ,
.Nm RM_SYSINIT
-.Nd kernel reader/writer lock optimized for mostly read access patterns
+.Nd kernel reader/writer lock optimized for read-mostly access patterns
.Sh SYNOPSIS
.In sys/param.h
.In sys/lock.h
@@ -67,7 +67,7 @@
.In sys/kernel.h
.Fn RM_SYSINIT "name" "struct rmlock *rm" "const char *desc" "int opts"
.Sh DESCRIPTION
-Mostly reader locks allow shared access to protected data by multiple threads,
+Read-mostly locks allow shared access to protected data by multiple threads,
or exclusive access by a single thread.
The threads with shared access are known as
.Em readers
@@ -76,83 +76,82 @@
.Em writer
since it can modify protected data.
.Pp
-Read mostly locks are designed to be efficient for locks almost exclusively
+Read-mostly locks are designed to be efficient for locks almost exclusively
used as reader locks and as such should be used for protecting data that
rarely changes.
-Acquiring an exclusive lock after the lock had been locked for shared access
+Acquiring an exclusive lock after the lock has been locked for shared access
is an expensive operation.
.Pp
-Although reader/writer locks look very similar to
-.Xr sx 9
-locks, their usage pattern is different.
-Reader/writer locks can be treated as mutexes (see
-.Xr mutex 9 )
-with shared/exclusive semantics unless initialized with
-.Dv RM_SLEEPABLE .
+Normal read-mostly locks are similar to
+.Xr rwlock 9
+locks and follow the same lock ordering rules as
+.Xr rwlock 9
+locks.
+Read-mostly locks have full priority propagation like mutexes.
Unlike
-.Xr sx 9 ,
-an
-.Nm
-can be locked while holding a non-spin mutex, and an
-.Nm
-cannot be held while sleeping, again unless initialized with
-.Dv RM_SLEEPABLE .
-The
-.Nm
-locks have full priority propagation like mutexes.
-The
+.Xr rwlock 9 ,
+read-mostly locks propagate priority to both readers and writers.
+This is implemented via the
.Va rm_priotracker
-structure argument supplied in
+structure argument supplied to
.Fn rm_rlock
and
-.Fn rm_runlock
-is used to keep track of the read owner(s).
-Another important property is that shared holders of
-.Nm
-can recurse if the lock has been initialized with the
-.Dv LO_RECURSABLE
-option, however exclusive locks are not allowed to recurse.
+.Fn rm_runlock .
+Readers can recurse if the lock is initialized with the
+.Dv RM_RECURSE
+option;
+however, writers are never allowed to recurse.
+.Pp
+Sleepable read-mostly locks are created by passing
+.Dv RM_SLEEPABLE
+to
+.Fn rm_init_flags .
+Unlike normal read-mostly locks,
+sleepable read-mostly locks follow the same lock ordering rules as
+.Xr sx 9
+locks.
+Sleepable read-mostly locks do not propagate priority to writers,
+but they do propagate priority to readers.
+Writers are permitted to sleep while holding a read-mostly lock,
+but readers are not.
+Unlike other sleepable locks such as
+.Xr sx 9
+locks,
+readers must use try operations on other sleepable locks to avoid sleeping.
.Ss Macros and Functions
.Bl -tag -width indent
.It Fn rm_init "struct rmlock *rm" "const char *name"
-Initialize structure located at
-.Fa rm
-as mostly reader lock, described by
-.Fa name .
-The name description is used solely for debugging purposes.
+Initialize the read-mostly lock
+.Fa rm .
+The
+.Fa name
+description is used solely for debugging purposes.
This function must be called before any other operations
on the lock.
.It Fn rm_init_flags "struct rmlock *rm" "const char *name" "int opts"
-Initialize the rm lock just like the
-.Fn rm_init
-function, but specifying a set of optional flags to alter the
-behaviour of
-.Fa rm ,
-through the
+Similar to
+.Fn rm_init ,
+initialize the read-mostly lock
+.Fa rm
+with a set of optional flags.
+The
.Fa opts
-argument.
-It contains one or more of the following flags:
+arguments contains one or more of the following flags:
.Bl -tag -width ".Dv RM_NOWITNESS"
.It Dv RM_NOWITNESS
Instruct
.Xr witness 4
to ignore this lock.
.It Dv RM_RECURSE
-Allow threads to recursively acquire exclusive locks for
+Allow threads to recursively acquire shared locks for
.Fa rm .
.It Dv RM_SLEEPABLE
-Allow writers to sleep while holding the lock.
-Readers must not sleep while holding the lock and can avoid to sleep on
-taking the lock by using
-.Fn rm_try_rlock
-instead of
-.Fn rm_rlock .
+Create a sleepable read-mostly lock.
.El
.It Fn rm_rlock "struct rmlock *rm" "struct rm_priotracker* tracker"
Lock
.Fa rm
-as a reader.
-Using
+as a reader using
.Fa tracker
to track read owners of a lock for priority propagation.
This data structure is only used internally by
@@ -161,28 +160,32 @@
.Fn rm_runlock
has been called.
This data structure can be allocated on the stack since
-rmlocks cannot be held while sleeping.
+readers cannot sleep.
If any thread holds this lock exclusively, the current thread blocks,
and its priority is propagated to the exclusive holder.
If the lock was initialized with the
-.Dv LO_RECURSABLE
+.Dv RM_RECURSE
option the
.Fn rm_rlock
-function can be called when the thread has already acquired reader
+function can be called when the current thread has already acquired reader
access on
.Fa rm .
-This is called
-.Dq "recursing on a lock" .
.It Fn rm_try_rlock "struct rmlock *rm" "struct rm_priotracker* tracker"
Try to lock
.Fa rm
as a reader.
.Fn rm_try_rlock
will return 0 if the lock cannot be acquired immediately;
-otherwise the lock will be acquired and a non-zero value will be returned.
+otherwise,
+the lock will be acquired and a non-zero value will be returned.
Note that
.Fn rm_try_rlock
may fail even while the lock is not currently held by a writer.
+If the lock was initialized with the
+.Dv RM_RECURSE
+option,
+.Fn rm_try_rlock
+will succeed if the current thread has already acquired reader access.
.It Fn rm_wlock "struct rmlock *rm"
Lock
.Fa rm
==== //depot/projects/smpng/share/man/man9/rwlock.9#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/share/man/man9/rwlock.9,v 1.16 2011/11/16 21:51:17 pjd Exp $
+.\" $FreeBSD: src/share/man/man9/rwlock.9,v 1.17 2012/06/06 13:35:30 jhb Exp $
.\"
.Dd November 16, 2011
.Dt RWLOCK 9
@@ -114,12 +114,10 @@
The
.Nm
locks have priority propagation like mutexes, but priority
-can be propagated only to an exclusive holder.
-This limitation comes from the fact that shared owners
+can be propagated only to writers.
+This limitation comes from the fact that readers
are anonymous.
-Another important property is that shared holders of
-.Nm
-can recurse,
+Another important property is that readers can always recurse,
and exclusive locks can be made recursive selectively.
.Ss Macros and Functions
.Bl -tag -width indent
==== //depot/projects/smpng/sys/amd64/acpica/acpi_wakecode.S#10 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/acpica/acpi_wakecode.S,v 1.13 2012/02/15 22:10:33 jkim Exp $
+ * $FreeBSD: src/sys/amd64/acpica/acpi_wakecode.S,v 1.15 2012/06/13 22:53:56 jkim Exp $
*/
#include <machine/asmacros.h>
@@ -219,10 +219,14 @@
mov $bootdata64 - bootgdt, %eax
mov %ax, %ds
- /* Restore arguments and return. */
- movq wakeup_kpml4 - wakeup_start(%rbx), %rdi
- movq wakeup_ctx - wakeup_start(%rbx), %rsi
- movq wakeup_retaddr - wakeup_start(%rbx), %rax
+ /* Restore arguments. */
+ movq wakeup_pcb - wakeup_start(%rbx), %rdi
+ movq wakeup_ret - wakeup_start(%rbx), %rax
+
+ /* Restore GDT. */
+ lgdt wakeup_gdt - wakeup_start(%rbx)
+
+ /* Jump to return address. */
jmp *%rax
.data
@@ -268,34 +272,11 @@
.long bootgdt - wakeup_start /* Offset plus %ds << 4 */
ALIGN_DATA
-wakeup_retaddr:
- .quad 0
-wakeup_kpml4:
- .quad 0
-
-wakeup_ctx:
- .quad 0
wakeup_pcb:
.quad 0
-wakeup_fpusave:
+wakeup_ret:
.quad 0
wakeup_gdt:
.word 0
.quad 0
-
- ALIGN_DATA
-wakeup_efer:
- .quad 0
-wakeup_star:
- .quad 0
-wakeup_lstar:
- .quad 0
-wakeup_cstar:
- .quad 0
-wakeup_sfmask:
- .quad 0
-wakeup_xsmask:
- .quad 0
-wakeup_cpu:
- .long 0
dummy:
==== //depot/projects/smpng/sys/amd64/amd64/cpu_switch.S#33 (text+ko) ====
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.183 2012/02/27 17:28:22 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.186 2012/06/13 22:53:56 jkim Exp $
*/
#include <machine/asmacros.h>
@@ -357,6 +357,30 @@
rdmsr
movl %eax,PCB_KGSBASE(%rdi)
movl %edx,PCB_KGSBASE+4(%rdi)
+ movl $MSR_EFER,%ecx
+ rdmsr
+ movl %eax,PCB_EFER(%rdi)
+ movl %edx,PCB_EFER+4(%rdi)
+ movl $MSR_STAR,%ecx
+ rdmsr
+ movl %eax,PCB_STAR(%rdi)
+ movl %edx,PCB_STAR+4(%rdi)
+ movl $MSR_LSTAR,%ecx
+ rdmsr
+ movl %eax,PCB_LSTAR(%rdi)
+ movl %edx,PCB_LSTAR+4(%rdi)
+ movl $MSR_CSTAR,%ecx
+ rdmsr
+ movl %eax,PCB_CSTAR(%rdi)
+ movl %edx,PCB_CSTAR+4(%rdi)
+ movl $MSR_SF_MASK,%ecx
+ rdmsr
+ movl %eax,PCB_SFMASK(%rdi)
+ movl %edx,PCB_SFMASK+4(%rdi)
+ movl xsave_mask,%eax
+ movl %eax,PCB_XSMASK(%rdi)
+ movl xsave_mask+4,%eax
+ movl %eax,PCB_XSMASK+4(%rdi)
sgdt PCB_GDT(%rdi)
sidt PCB_IDT(%rdi)
@@ -370,6 +394,142 @@
END(savectx)
/*
+ * resumectx(pcb)
+ * Resuming processor state from pcb.
+ */
+ENTRY(resumectx)
+ /* Switch to KPML4phys. */
+ movq KPML4phys,%rax
+ movq %rax,%cr3
+
+ /* Force kernel segment registers. */
+ movl $KDSEL,%eax
+ movw %ax,%ds
+ movw %ax,%es
+ movw %ax,%ss
+ movl $KUF32SEL,%eax
+ movw %ax,%fs
+ movl $KUG32SEL,%eax
+ movw %ax,%gs
+
+ movl $MSR_FSBASE,%ecx
+ movl PCB_FSBASE(%rdi),%eax
+ movl 4 + PCB_FSBASE(%rdi),%edx
+ wrmsr
+ movl $MSR_GSBASE,%ecx
+ movl PCB_GSBASE(%rdi),%eax
+ movl 4 + PCB_GSBASE(%rdi),%edx
+ wrmsr
+ movl $MSR_KGSBASE,%ecx
+ movl PCB_KGSBASE(%rdi),%eax
+ movl 4 + PCB_KGSBASE(%rdi),%edx
+ wrmsr
+
+ /* Restore EFER. */
+ movl $MSR_EFER,%ecx
+ movl PCB_EFER(%rdi),%eax
+ wrmsr
+
+ /* Restore fast syscall stuff. */
+ movl $MSR_STAR,%ecx
+ movl PCB_STAR(%rdi),%eax
+ movl 4 + PCB_STAR(%rdi),%edx
+ wrmsr
+ movl $MSR_LSTAR,%ecx
+ movl PCB_LSTAR(%rdi),%eax
+ movl 4 + PCB_LSTAR(%rdi),%edx
+ wrmsr
+ movl $MSR_CSTAR,%ecx
+ movl PCB_CSTAR(%rdi),%eax
+ movl 4 + PCB_CSTAR(%rdi),%edx
+ wrmsr
+ movl $MSR_SF_MASK,%ecx
+ movl PCB_SFMASK(%rdi),%eax
+ wrmsr
+
+ /* Restore CR0 except for FPU mode. */
+ movq PCB_CR0(%rdi),%rax
+ andq $~(CR0_EM | CR0_TS),%rax
+ movq %rax,%cr0
+
+ /* Restore CR2, CR4 and CR3. */
+ movq PCB_CR2(%rdi),%rax
+ movq %rax,%cr2
+ movq PCB_CR4(%rdi),%rax
+ movq %rax,%cr4
+ movq PCB_CR3(%rdi),%rax
+ movq %rax,%cr3
+
+ /* Restore descriptor tables. */
+ lidt PCB_IDT(%rdi)
+ lldt PCB_LDT(%rdi)
+
+#define SDT_SYSTSS 9
+#define SDT_SYSBSY 11
+
+ /* Clear "task busy" bit and reload TR. */
+ movq PCPU(TSS),%rax
+ andb $(~SDT_SYSBSY | SDT_SYSTSS),5(%rax)
+ movw PCB_TR(%rdi),%ax
+ ltr %ax
+
+#undef SDT_SYSTSS
+#undef SDT_SYSBSY
+
+ /* Restore debug registers. */
+ movq PCB_DR0(%rdi),%rax
+ movq %rax,%dr0
+ movq PCB_DR1(%rdi),%rax
+ movq %rax,%dr1
+ movq PCB_DR2(%rdi),%rax
+ movq %rax,%dr2
+ movq PCB_DR3(%rdi),%rax
+ movq %rax,%dr3
+ movq PCB_DR6(%rdi),%rax
+ movq %rax,%dr6
+ movq PCB_DR7(%rdi),%rax
+ movq %rax,%dr7
+
+ /* Restore FPU state. */
+ fninit
+ movq PCB_FPUSUSPEND(%rdi),%rbx
+ movq PCB_XSMASK(%rdi),%rax
+ testq %rax,%rax
+ jz 1f
+ movq %rax,%rdx
+ shrq $32,%rdx
+ movl $XCR0,%ecx
+/* xsetbv */
+ .byte 0x0f, 0x01, 0xd1
+/* xrstor (%rbx) */
+ .byte 0x0f, 0xae, 0x2b
+ jmp 2f
+1:
+ fxrstor (%rbx)
+2:
+
+ /* Reload CR0. */
+ movq PCB_CR0(%rdi),%rax
+ movq %rax,%cr0
+
+ /* Restore other callee saved registers. */
+ movq PCB_R15(%rdi),%r15
+ movq PCB_R14(%rdi),%r14
+ movq PCB_R13(%rdi),%r13
+ movq PCB_R12(%rdi),%r12
+ movq PCB_RBP(%rdi),%rbp
+ movq PCB_RSP(%rdi),%rsp
+ movq PCB_RBX(%rdi),%rbx
+
+ /* Restore return address. */
+ movq PCB_RIP(%rdi),%rax
+ movq %rax,(%rsp)
+
+ xorl %eax,%eax
+ ret
+END(resumectx)
+
+/*
* Wrapper around fpusave to care about TS0_CR.
*/
ENTRY(ctx_fpusave)
==== //depot/projects/smpng/sys/amd64/amd64/genassym.c#37 (text+ko) ====
@@ -33,7 +33,7 @@
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list