From owner-p4-projects@FreeBSD.ORG Fri Oct 31 22:50:01 2014 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 03F32AAB; Fri, 31 Oct 2014 22:50:01 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B97B3AA9 for ; Fri, 31 Oct 2014 22:50:00 +0000 (UTC) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:1900:2254:2068::682:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 8DF0EEF2 for ; Fri, 31 Oct 2014 22:50:00 +0000 (UTC) Received: from skunkworks.freebsd.org ([127.0.1.74]) by skunkworks.freebsd.org (8.14.9/8.14.9) with ESMTP id s9VMo0LI065869 for ; Fri, 31 Oct 2014 22:50:00 GMT (envelope-from jmg@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.9/8.14.9/Submit) id s9VMo0le065866 for perforce@freebsd.org; Fri, 31 Oct 2014 22:50:00 GMT (envelope-from jmg@freebsd.org) Date: Fri, 31 Oct 2014 22:50:00 GMT Message-Id: <201410312250.s9VMo0le065866@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jmg@freebsd.org using -f From: John-Mark Gurney Subject: PERFORCE change 1202334 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.18-1 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Oct 2014 22:50:01 -0000 http://p4web.freebsd.org/@@1202334?ac=10 Change 1202334 by jmg@jmg_carbon2 on 2014/10/31 22:49:23 local NO_ROOT for kernels.. This will probably class w/ installkernel, and I'll need to figure that out... Affected files ... .. //depot/projects/opencrypto/sys/conf/kern.post.mk#3 edit Differences ... ==== //depot/projects/opencrypto/sys/conf/kern.post.mk#3 (text+ko) ==== @@ -23,6 +23,11 @@ MKMODULESENV+= WITH_CTF="${WITH_CTF}" .endif +.if defined(NO_ROOT) +METALOG?= ${DESTDIR}/${DISTDIR}/METALOG +INSTALLFLAGS+= -U -M ${METALOG} -D ${DESTDIR} +.endif + .MAIN: all .for target in all clean cleandepend cleandir clobber depend install \ @@ -32,6 +37,7 @@ ${target}: modules-${target} modules-${target}: cd $S/modules; ${MKMODULESENV} ${MAKE} \ + INSTALLFLAGS="${INSTALLFLAGS}" \ ${target:S/^reinstall$/install/:S/^clobber$/cleandir/} .endif .endfor @@ -262,21 +268,21 @@ fi .endif mkdir -p ${DESTDIR}${KODIR} - ${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO} ${DESTDIR}${KODIR} + ${INSTALL} ${INSTALLFLAGS} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO} ${DESTDIR}${KODIR} .if defined(DEBUG) && !defined(INSTALL_NODEBUG) && ${MK_KERNEL_SYMBOLS} != "no" - ${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO}.symbols ${DESTDIR}${KODIR} + ${INSTALL} ${INSTALLFLAGS} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO}.symbols ${DESTDIR}${KODIR} .endif .if defined(KERNEL_EXTRA_INSTALL) - ${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_EXTRA_INSTALL} ${DESTDIR}${KODIR} + ${INSTALL} ${INSTALLFLAGS} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_EXTRA_INSTALL} ${DESTDIR}${KODIR} .endif kernel-reinstall: @-chflags -R noschg ${DESTDIR}${KODIR} - ${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO} ${DESTDIR}${KODIR} + ${INSTALL} ${INSTALLFLAGS} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO} ${DESTDIR}${KODIR} .if defined(DEBUG) && !defined(INSTALL_NODEBUG) && ${MK_KERNEL_SYMBOLS} != "no" - ${INSTALL} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO}.symbols ${DESTDIR}${KODIR} + ${INSTALL} ${INSTALLFLAGS} -p -m 555 -o ${KMODOWN} -g ${KMODGRP} ${KERNEL_KO}.symbols ${DESTDIR}${KODIR} .endif config.o env.o hints.o vers.o vnode_if.o: From owner-p4-projects@FreeBSD.ORG Fri Oct 31 22:55:06 2014 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C01B9DCD; Fri, 31 Oct 2014 22:55:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 67C4DDCB for ; Fri, 31 Oct 2014 22:55:06 +0000 (UTC) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:1900:2254:2068::682:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 51D9BFAF for ; Fri, 31 Oct 2014 22:55:06 +0000 (UTC) Received: from skunkworks.freebsd.org ([127.0.1.74]) by skunkworks.freebsd.org (8.14.9/8.14.9) with ESMTP id s9VMt6oZ067925 for ; Fri, 31 Oct 2014 22:55:06 GMT (envelope-from jmg@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.9/8.14.9/Submit) id s9VMt5XI067922 for perforce@freebsd.org; Fri, 31 Oct 2014 22:55:05 GMT (envelope-from jmg@freebsd.org) Date: Fri, 31 Oct 2014 22:55:05 GMT Message-Id: <201410312255.s9VMt5XI067922@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jmg@freebsd.org using -f From: John-Mark Gurney Subject: PERFORCE change 1202335 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.18-1 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 31 Oct 2014 22:55:07 -0000 http://p4web.freebsd.org/@@1202335?ac=10 Change 1202335 by jmg@jmg_carbon2 on 2014/10/31 22:54:23 IFC @ 1202232 Affected files ... .. //depot/projects/opencrypto/share/man/man3/pthread_cleanup_pop.3#2 integrate .. //depot/projects/opencrypto/share/man/man3/pthread_cleanup_push.3#2 integrate .. //depot/projects/opencrypto/share/man/man4/Makefile#5 integrate .. //depot/projects/opencrypto/share/man/man4/ada.4#3 integrate .. //depot/projects/opencrypto/share/man/man4/ctl.4#2 integrate .. //depot/projects/opencrypto/share/man/man4/da.4#2 integrate .. //depot/projects/opencrypto/share/man/man4/urtwn.4#4 integrate .. //depot/projects/opencrypto/share/man/man4/virtio.4#2 integrate .. //depot/projects/opencrypto/share/man/man4/virtio_console.4#1 branch .. //depot/projects/opencrypto/share/man/man5/src.conf.5#5 integrate .. //depot/projects/opencrypto/share/man/man8/Makefile#3 integrate .. //depot/projects/opencrypto/share/man/man8/hv_kvp_daemon.8#2 delete .. //depot/projects/opencrypto/share/man/man9/Makefile#5 integrate .. //depot/projects/opencrypto/share/man/man9/casuword.9#1 branch .. //depot/projects/opencrypto/share/man/man9/fetch.9#2 integrate .. //depot/projects/opencrypto/share/man/man9/fpu_kern.9#2 integrate .. //depot/projects/opencrypto/share/man/man9/mbuf.9#3 integrate .. //depot/projects/opencrypto/sys/amd64/amd64/pmap.c#6 integrate .. //depot/projects/opencrypto/sys/amd64/amd64/support.S#3 integrate .. //depot/projects/opencrypto/sys/amd64/amd64/uio_machdep.c#2 integrate .. //depot/projects/opencrypto/sys/amd64/conf/GENERIC#4 integrate .. //depot/projects/opencrypto/sys/amd64/ia32/ia32_syscall.c#2 integrate .. //depot/projects/opencrypto/sys/amd64/include/md_var.h#4 integrate .. //depot/projects/opencrypto/sys/amd64/include/pmap.h#3 integrate .. //depot/projects/opencrypto/sys/amd64/include/vmm.h#5 integrate .. //depot/projects/opencrypto/sys/amd64/include/vmparam.h#3 integrate .. //depot/projects/opencrypto/sys/amd64/include/xen/hypercall.h#2 integrate .. //depot/projects/opencrypto/sys/amd64/vmm/amd/svm.c#2 integrate .. //depot/projects/opencrypto/sys/amd64/vmm/amd/vmcb.c#2 integrate .. //depot/projects/opencrypto/sys/amd64/vmm/io/vatpic.c#5 integrate .. //depot/projects/opencrypto/sys/amd64/vmm/io/vatpic.h#2 integrate .. //depot/projects/opencrypto/sys/amd64/vmm/io/vatpit.c#2 integrate .. //depot/projects/opencrypto/sys/amd64/vmm/io/vatpit.h#2 integrate .. //depot/projects/opencrypto/sys/amd64/vmm/io/vpmtmr.c#1 branch .. //depot/projects/opencrypto/sys/amd64/vmm/io/vpmtmr.h#1 branch .. //depot/projects/opencrypto/sys/amd64/vmm/vmm.c#5 integrate .. //depot/projects/opencrypto/sys/amd64/vmm/vmm_ioport.c#2 integrate .. //depot/projects/opencrypto/sys/amd64/vmm/vmm_ioport.h#2 integrate .. //depot/projects/opencrypto/sys/arm/allwinner/a10_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/arm/altera/socfpga/files.socfpga#4 integrate .. //depot/projects/opencrypto/sys/arm/arm/busdma_machdep-v6.c#3 integrate .. //depot/projects/opencrypto/sys/arm/arm/nexus.c#6 integrate .. //depot/projects/opencrypto/sys/arm/arm/pl310.c#3 integrate .. //depot/projects/opencrypto/sys/arm/arm/pmap-v6.c#4 integrate .. //depot/projects/opencrypto/sys/arm/at91/std.atmel#3 integrate .. //depot/projects/opencrypto/sys/arm/broadcom/bcm2835/bcm2835_bsc.c#3 integrate .. //depot/projects/opencrypto/sys/arm/broadcom/bcm2835/bcm2835_bscvar.h#2 integrate .. //depot/projects/opencrypto/sys/arm/broadcom/bcm2835/bcm2835_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/arm/conf/ATMEL#2 integrate .. //depot/projects/opencrypto/sys/arm/conf/SOCKIT-BERI#2 integrate .. //depot/projects/opencrypto/sys/arm/freescale/imx/imx6_ccm.c#4 integrate .. //depot/projects/opencrypto/sys/arm/freescale/imx/imx6_machdep.c#4 integrate .. //depot/projects/opencrypto/sys/arm/freescale/imx/imx_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/arm/freescale/vybrid/vf_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/arm/include/param.h#3 integrate .. //depot/projects/opencrypto/sys/arm/lpc/lpc_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/arm/rockchip/rk30xx_gpio.c#3 integrate .. //depot/projects/opencrypto/sys/arm/samsung/exynos/exynos5_pad.c#3 integrate .. //depot/projects/opencrypto/sys/arm/ti/cpsw/if_cpsw.c#3 integrate .. //depot/projects/opencrypto/sys/arm/ti/ti_gpio.c#4 integrate .. //depot/projects/opencrypto/sys/arm/xilinx/zy7_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/arm/xscale/ixp425/avila_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/arm/xscale/ixp425/cambria_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/boot/fdt/dts/arm/socfpga-sockit-beri.dts#2 integrate .. //depot/projects/opencrypto/sys/cam/ata/ata_da.c#5 integrate .. //depot/projects/opencrypto/sys/cam/ctl/ctl.c#6 integrate .. //depot/projects/opencrypto/sys/cam/ctl/ctl.h#4 integrate .. //depot/projects/opencrypto/sys/cam/ctl/ctl_cmd_table.c#4 integrate .. //depot/projects/opencrypto/sys/cam/ctl/ctl_private.h#6 integrate .. //depot/projects/opencrypto/sys/cddl/compat/opensolaris/kern/opensolaris_lookup.c#2 integrate .. //depot/projects/opencrypto/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c#2 integrate .. //depot/projects/opencrypto/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#2 integrate .. //depot/projects/opencrypto/sys/cddl/contrib/opensolaris/uts/common/sys/gfs.h#2 integrate .. //depot/projects/opencrypto/sys/cddl/dev/fbt/powerpc/fbt_isa.c#3 integrate .. //depot/projects/opencrypto/sys/compat/freebsd32/freebsd32_misc.c#4 integrate .. //depot/projects/opencrypto/sys/compat/freebsd32/freebsd32_util.h#2 integrate .. //depot/projects/opencrypto/sys/conf/NOTES#5 integrate .. //depot/projects/opencrypto/sys/conf/files#10 integrate .. //depot/projects/opencrypto/sys/conf/options#6 integrate .. //depot/projects/opencrypto/sys/conf/options.arm#3 integrate .. //depot/projects/opencrypto/sys/contrib/rdma/krping/krping.c#4 integrate .. //depot/projects/opencrypto/sys/dev/acpi_support/acpi_ibm.c#3 integrate .. //depot/projects/opencrypto/sys/dev/acpica/acpi.c#5 integrate .. //depot/projects/opencrypto/sys/dev/acpica/acpi_hpet.c#3 integrate .. //depot/projects/opencrypto/sys/dev/asmc/asmc.c#4 integrate .. //depot/projects/opencrypto/sys/dev/beri/beri_mem.c#1 branch .. //depot/projects/opencrypto/sys/dev/cxgbe/firmware/t4fw_cfg.txt#2 integrate .. //depot/projects/opencrypto/sys/dev/cxgbe/firmware/t5fw_cfg.txt#2 integrate .. //depot/projects/opencrypto/sys/dev/cxgbe/iw_cxgbe/cm.c#3 integrate .. //depot/projects/opencrypto/sys/dev/cxgbe/iw_cxgbe/qp.c#3 integrate .. //depot/projects/opencrypto/sys/dev/cxgbe/tom/t4_cpl_io.c#2 integrate .. //depot/projects/opencrypto/sys/dev/gpio/gpiobus.c#2 integrate .. //depot/projects/opencrypto/sys/dev/gpio/gpiobusvar.h#2 integrate .. //depot/projects/opencrypto/sys/dev/gpio/ofw_gpiobus.c#3 integrate .. //depot/projects/opencrypto/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c#4 integrate .. //depot/projects/opencrypto/sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c#2 integrate .. //depot/projects/opencrypto/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c#2 integrate .. //depot/projects/opencrypto/sys/dev/hyperv/utilities/hv_util.c#3 integrate .. //depot/projects/opencrypto/sys/dev/iicbus/iicbus.h#2 integrate .. //depot/projects/opencrypto/sys/dev/iicbus/iiconf.c#2 integrate .. //depot/projects/opencrypto/sys/dev/ixl/i40e_register_x710_int.h#2 delete .. //depot/projects/opencrypto/sys/dev/puc/pucdata.c#2 integrate .. //depot/projects/opencrypto/sys/dev/uart/uart_subr.c#3 integrate .. //depot/projects/opencrypto/sys/dev/usb/net/if_smsc.c#3 integrate .. //depot/projects/opencrypto/sys/dev/usb/usb.h#2 integrate .. //depot/projects/opencrypto/sys/dev/usb/usbdevs#6 integrate .. //depot/projects/opencrypto/sys/dev/usb/wlan/if_run.c#4 integrate .. //depot/projects/opencrypto/sys/dev/usb/wlan/if_urtwn.c#4 integrate .. //depot/projects/opencrypto/sys/dev/virtio/console/virtio_console.c#1 branch .. //depot/projects/opencrypto/sys/dev/virtio/console/virtio_console.h#1 branch .. //depot/projects/opencrypto/sys/dev/vt/vt_core.c#6 integrate .. //depot/projects/opencrypto/sys/dev/xen/evtchn/evtchn_dev.c#1 branch .. //depot/projects/opencrypto/sys/dev/xen/netback/netback.c#4 integrate .. //depot/projects/opencrypto/sys/dev/xen/privcmd/privcmd.c#1 branch .. //depot/projects/opencrypto/sys/fs/nfsclient/nfs_clvfsops.c#3 integrate .. //depot/projects/opencrypto/sys/fs/nfsserver/nfs_nfsdkrpc.c#2 integrate .. //depot/projects/opencrypto/sys/fs/tmpfs/tmpfs_vfsops.c#3 integrate .. //depot/projects/opencrypto/sys/geom/eli/g_eli.c#3 integrate .. //depot/projects/opencrypto/sys/geom/geom_disk.c#2 integrate .. //depot/projects/opencrypto/sys/i386/conf/GENERIC#3 integrate .. //depot/projects/opencrypto/sys/i386/conf/XEN#2 integrate .. //depot/projects/opencrypto/sys/i386/i386/machdep.c#5 integrate .. //depot/projects/opencrypto/sys/i386/i386/pmap.c#5 integrate .. //depot/projects/opencrypto/sys/i386/i386/support.s#3 integrate .. //depot/projects/opencrypto/sys/i386/i386/trap.c#3 integrate .. //depot/projects/opencrypto/sys/i386/ibcs2/ibcs2_misc.c#2 integrate .. //depot/projects/opencrypto/sys/i386/include/md_var.h#4 integrate .. //depot/projects/opencrypto/sys/i386/include/xen/hypercall.h#2 integrate .. //depot/projects/opencrypto/sys/kern/kern_descrip.c#5 integrate .. //depot/projects/opencrypto/sys/kern/kern_environment.c#3 integrate .. //depot/projects/opencrypto/sys/kern/kern_exec.c#5 integrate .. //depot/projects/opencrypto/sys/kern/kern_ffclock.c#2 integrate .. //depot/projects/opencrypto/sys/kern/kern_linker.c#3 integrate .. //depot/projects/opencrypto/sys/kern/kern_loginclass.c#2 integrate .. //depot/projects/opencrypto/sys/kern/kern_prot.c#4 integrate .. //depot/projects/opencrypto/sys/kern/kern_resource.c#2 integrate .. //depot/projects/opencrypto/sys/kern/kern_syscalls.c#2 integrate .. //depot/projects/opencrypto/sys/kern/kern_sysctl.c#3 integrate .. //depot/projects/opencrypto/sys/kern/kern_umtx.c#3 integrate .. //depot/projects/opencrypto/sys/kern/subr_param.c#3 integrate .. //depot/projects/opencrypto/sys/kern/subr_uio.c#3 integrate .. //depot/projects/opencrypto/sys/kern/sys_generic.c#2 integrate .. //depot/projects/opencrypto/sys/kern/sys_process.c#4 integrate .. //depot/projects/opencrypto/sys/kern/sysv_msg.c#2 integrate .. //depot/projects/opencrypto/sys/kern/sysv_sem.c#2 integrate .. //depot/projects/opencrypto/sys/kern/sysv_shm.c#3 integrate .. //depot/projects/opencrypto/sys/kern/uipc_mqueue.c#3 integrate .. //depot/projects/opencrypto/sys/kern/uipc_sem.c#3 integrate .. //depot/projects/opencrypto/sys/kern/vfs_acl.c#2 integrate .. //depot/projects/opencrypto/sys/kern/vfs_aio.c#2 integrate .. //depot/projects/opencrypto/sys/kern/vfs_bio.c#6 integrate .. //depot/projects/opencrypto/sys/kern/vfs_init.c#3 integrate .. //depot/projects/opencrypto/sys/kern/vfs_syscalls.c#3 integrate .. //depot/projects/opencrypto/sys/kgssapi/gss_impl.c#2 integrate .. //depot/projects/opencrypto/sys/mips/atheros/ar71xx_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/mips/cavium/octeon_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/mips/include/param.h#2 integrate .. //depot/projects/opencrypto/sys/mips/rt305x/rt305x_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/modules/dtrace/dtraceall/dtraceall.c#2 integrate .. //depot/projects/opencrypto/sys/modules/linux/Makefile#5 integrate .. //depot/projects/opencrypto/sys/modules/virtio/Makefile#2 integrate .. //depot/projects/opencrypto/sys/modules/virtio/console/Makefile#1 branch .. //depot/projects/opencrypto/sys/modules/vmm/Makefile#4 integrate .. //depot/projects/opencrypto/sys/net/bpf.c#2 integrate .. //depot/projects/opencrypto/sys/net/if.c#4 integrate .. //depot/projects/opencrypto/sys/net/if_gif.c#3 integrate .. //depot/projects/opencrypto/sys/net/if_spppsubr.c#3 integrate .. //depot/projects/opencrypto/sys/net/radix.c#3 integrate .. //depot/projects/opencrypto/sys/netinet/cc/cc.c#3 integrate .. //depot/projects/opencrypto/sys/netinet/in_gif.c#5 integrate .. //depot/projects/opencrypto/sys/netinet/sctp_output.c#6 integrate .. //depot/projects/opencrypto/sys/netinet/sctp_syscalls.c#2 integrate .. //depot/projects/opencrypto/sys/netinet/sctp_sysctl.c#4 integrate .. //depot/projects/opencrypto/sys/netinet/siftr.c#2 integrate .. //depot/projects/opencrypto/sys/netinet6/in6.c#4 integrate .. //depot/projects/opencrypto/sys/netinet6/in6_gif.c#5 integrate .. //depot/projects/opencrypto/sys/netinet6/in6_var.h#4 integrate .. //depot/projects/opencrypto/sys/netipsec/key.c#2 integrate .. //depot/projects/opencrypto/sys/netipsec/key.h#2 integrate .. //depot/projects/opencrypto/sys/netpfil/ipfw/ip_dn_io.c#3 integrate .. //depot/projects/opencrypto/sys/netpfil/ipfw/ip_fw_dynamic.c#3 integrate .. //depot/projects/opencrypto/sys/netpfil/ipfw/ip_fw_private.h#4 integrate .. //depot/projects/opencrypto/sys/netpfil/ipfw/ip_fw_sockopt.c#5 integrate .. //depot/projects/opencrypto/sys/netpfil/ipfw/ip_fw_table_algo.c#2 integrate .. //depot/projects/opencrypto/sys/nfs/nfs_nfssvc.c#2 integrate .. //depot/projects/opencrypto/sys/nlm/nlm_prot_impl.c#2 integrate .. //depot/projects/opencrypto/sys/ofed/drivers/net/mlx4/en_netdev.c#5 integrate .. //depot/projects/opencrypto/sys/pc98/conf/GENERIC#3 integrate .. //depot/projects/opencrypto/sys/powerpc/conf/GENERIC#3 integrate .. //depot/projects/opencrypto/sys/powerpc/conf/GENERIC64#2 integrate .. //depot/projects/opencrypto/sys/powerpc/powerpc/busdma_machdep.c#2 integrate .. //depot/projects/opencrypto/sys/powerpc/powerpc/copyinout.c#2 integrate .. //depot/projects/opencrypto/sys/powerpc/wii/wii_gpio.c#2 integrate .. //depot/projects/opencrypto/sys/sparc64/conf/GENERIC#2 integrate .. //depot/projects/opencrypto/sys/sparc64/include/param.h#2 integrate .. //depot/projects/opencrypto/sys/sparc64/sparc64/mem.c#2 integrate .. //depot/projects/opencrypto/sys/sys/_umtx.h#2 integrate .. //depot/projects/opencrypto/sys/sys/ata.h#3 integrate .. //depot/projects/opencrypto/sys/sys/consio.h#2 integrate .. //depot/projects/opencrypto/sys/sys/filedesc.h#3 integrate .. //depot/projects/opencrypto/sys/sys/mbuf.h#4 integrate .. //depot/projects/opencrypto/sys/sys/param.h#5 integrate .. //depot/projects/opencrypto/sys/sys/syscallsubr.h#5 integrate .. //depot/projects/opencrypto/sys/sys/sysctl.h#3 integrate .. //depot/projects/opencrypto/sys/sys/sysent.h#2 integrate .. //depot/projects/opencrypto/sys/sys/systm.h#5 integrate .. //depot/projects/opencrypto/sys/sys/umtx.h#2 integrate .. //depot/projects/opencrypto/sys/x86/include/vmware.h#1 branch .. //depot/projects/opencrypto/sys/x86/isa/orm.c#2 integrate .. //depot/projects/opencrypto/sys/x86/x86/identcpu.c#3 integrate .. //depot/projects/opencrypto/sys/x86/x86/tsc.c#4 integrate .. //depot/projects/opencrypto/sys/x86/xen/hvm.c#2 integrate .. //depot/projects/opencrypto/sys/x86/xen/pv.c#4 integrate .. //depot/projects/opencrypto/sys/x86/xen/xen_intr.c#4 integrate .. //depot/projects/opencrypto/sys/xen/error.h#1 branch .. //depot/projects/opencrypto/sys/xen/evtchn/evtchn_dev.c#2 delete .. //depot/projects/opencrypto/sys/xen/interface/memory.h#2 integrate .. //depot/projects/opencrypto/sys/xen/interface/xen.h#2 integrate .. //depot/projects/opencrypto/sys/xen/privcmd.h#1 branch .. //depot/projects/opencrypto/sys/xen/xen_intr.h#4 integrate Differences ... ==== //depot/projects/opencrypto/share/man/man3/pthread_cleanup_pop.3#2 (text+ko) ==== @@ -25,9 +25,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: head/share/man/man3/pthread_cleanup_pop.3 172880 2007-10-22 10:08:01Z ru $ +.\" $FreeBSD: head/share/man/man3/pthread_cleanup_pop.3 273738 2014-10-27 15:45:37Z jhb $ .\" -.Dd July 30, 1998 +.Dd October 25, 2014 .Dt PTHREAD_CLEANUP_POP 3 .Os .Sh NAME @@ -50,6 +50,14 @@ then .Fn pthread_cleanup_pop does nothing. +.Pp +The +.Fn pthread_cleanup_pop +function is implemented as a macro that closes a block. +Invocations of this function must appear as standalone statements that are +paired with an earlier call of +.Xr pthread_cleanup_push 3 +in the same lexical scope. .Sh RETURN VALUES The .Fn pthread_cleanup_pop ==== //depot/projects/opencrypto/share/man/man3/pthread_cleanup_push.3#2 (text+ko) ==== @@ -25,9 +25,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: head/share/man/man3/pthread_cleanup_push.3 172880 2007-10-22 10:08:01Z ru $ +.\" $FreeBSD: head/share/man/man3/pthread_cleanup_push.3 273644 2014-10-25 19:31:34Z jhb $ .\" -.Dd July 30, 1998 +.Dd October 25, 2014 .Dt PTHREAD_CLEANUP_PUSH 3 .Os .Sh NAME @@ -52,6 +52,14 @@ is called, it is passed .Fa arg as its only argument. +.Pp +The +.Fn pthread_cleanup_push +function is implemented as a macro that opens a new block. +Invocations of this function must appear as standalone statements that are +paired with a later call of +.Xr pthread_cleanup_pop 3 +in the same lexical scope. .Sh RETURN VALUES The .Fn pthread_cleanup_push ==== //depot/projects/opencrypto/share/man/man4/Makefile#5 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.1 (Berkeley) 6/18/93 -# $FreeBSD: head/share/man/man4/Makefile 273331 2014-10-20 14:42:42Z bryanv $ +# $FreeBSD: head/share/man/man4/Makefile 273515 2014-10-23 04:47:32Z bryanv $ .include @@ -563,6 +563,7 @@ ${_virtio.4} \ ${_virtio_balloon.4} \ ${_virtio_blk.4} \ + ${_virtio_console.4} \ ${_virtio_random.4} \ ${_virtio_scsi.4} \ vkbd.4 \ @@ -814,6 +815,7 @@ _virtio.4= virtio.4 _virtio_balloon.4=virtio_balloon.4 _virtio_blk.4= virtio_blk.4 +_virtio_console.4=virtio_console.4 _virtio_random.4= virtio_random.4 _virtio_scsi.4= virtio_scsi.4 _vmx.4= vmx.4 ==== //depot/projects/opencrypto/share/man/man4/ada.4#3 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: head/share/man/man4/ada.4 271926 2014-09-21 10:05:27Z mav $ +.\" $FreeBSD: head/share/man/man4/ada.4 273457 2014-10-22 08:54:10Z mav $ .\" -.Dd September 21, 2014 +.Dd October 22, 2014 .Dt ADA 4 .Os .Sh NAME @@ -123,6 +123,13 @@ This variable determines whether to spin-down disks when shutting down. Set to 1 to enable spin-down, 0 to disable. The default is currently enabled. +.It Va kern.cam.sort_io_queue +.It Va kern.cam.ada. Ns Ar X Ns Va .sort_io_queue +.Pp +These variables determine whether request queue should be sorted trying +to optimize head seeks. +Set to 1 to enable sorting, 0 to disable, -1 to leave it as-is. +The default is sorting enabled for HDDs and disabled SSDs. .It Va kern.cam.ada.read_ahead .It Va kern.cam.ada. Ns Ar X Ns Va .read_ahead .It Va kern.cam.ada.write_cache ==== //depot/projects/opencrypto/share/man/man4/ctl.4#2 (text+ko) ==== @@ -22,8 +22,8 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: head/share/man/man4/ctl.4 267938 2014-06-26 21:46:14Z bapt $ -.Dd April 2, 2013 +.\" $FreeBSD: head/share/man/man4/ctl.4 273690 2014-10-26 13:30:53Z trasz $ +.Dd October 23, 2014 .Dt CTL 4 .Os .Sh NAME @@ -57,7 +57,7 @@ .It SCSI task attribute support (ordered, head of queue, simple tags) .It -SCSI implicit command ordering support. +SCSI implicit command ordering support .It Full task management support (abort, LUN reset, target reset, etc.) .It @@ -67,6 +67,12 @@ .It Support for multiple simultaneous backing stores .It +Support for VMWare VAAI: COMPARE AND WRITE, XCOPY, WRITE SAME, +and UNMAP commands +.It +Support for Microsoft ODX: POPULATE TOKEN/WRITE USING TOKEN, +WRITE SAME, and UNMAP commands +.It Persistent reservation support .It Mode sense/select support ==== //depot/projects/opencrypto/share/man/man4/da.4#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: head/share/man/man4/da.4 231244 2012-02-09 04:37:30Z gjb $ +.\" $FreeBSD: head/share/man/man4/da.4 273457 2014-10-22 08:54:10Z mav $ .\" -.Dd February 8, 2012 +.Dd October 22, 2014 .Dt DA 4 .Os .Sh NAME @@ -150,6 +150,13 @@ driver will wait before timing out an outstanding command. The units for this value are seconds, and the default is currently 60 seconds. +.It Va kern.cam.sort_io_queue +.It Va kern.cam.da. Ns Ar X Ns Va .sort_io_queue +.Pp +These variables determine whether request queue should be sorted trying +to optimize head seeks. +Set to 1 to enable sorting, 0 to disable, -1 to leave it as-is. +The default is sorting enabled for HDDs and disabled for SSDs. .It kern.cam.da.%d.minimum_cmd_size .Pp This variable determines what the minimum READ/WRITE CDB size is for a ==== //depot/projects/opencrypto/share/man/man4/urtwn.4#4 (text+ko) ==== @@ -12,9 +12,9 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.\" $FreeBSD: head/share/man/man4/urtwn.4 272410 2014-10-02 12:27:41Z hselasky $ +.\" $FreeBSD: head/share/man/man4/urtwn.4 273589 2014-10-24 15:36:30Z kevlo $ .\" -.Dd May 3, 2014 +.Dd October 24, 2014 .Dt URTWN 4 .Os .Sh NAME @@ -89,9 +89,11 @@ .It Alfa AWUS036NHR v2 .It ASUS USB-N10 NANO .It Belkin F7D1102 Surf Wireless Micro +.It D-Link DWA-123 rev D1 .It D-Link DWA-125 rev D1 .It D-Link DWA-131 .It Edimax EW-7811Un +.It Elecom WDC-150SU2M .It Netgear WNA1000M .It Realtek RTL8192CU .It Realtek RTL8188CUS ==== //depot/projects/opencrypto/share/man/man4/virtio.4#2 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: head/share/man/man4/virtio.4 267938 2014-06-26 21:46:14Z bapt $ +.\" $FreeBSD: head/share/man/man4/virtio.4 273515 2014-10-23 04:47:32Z bryanv $ .\" .Dd January 22, 2012 .Dt VIRTIO 4 @@ -85,6 +85,7 @@ .Sh SEE ALSO .Xr virtio_balloon 4 , .Xr virtio_blk 4 , +.Xr virtio_console 4 , .Xr virtio_scsi 4 , .Xr vtnet 4 .Sh HISTORY ==== //depot/projects/opencrypto/share/man/man5/src.conf.5#5 (text) ==== @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 255964 2013-10-01 07:22:04Z des -.\" $FreeBSD: head/share/man/man5/src.conf.5 273173 2014-10-16 15:59:00Z brooks $ -.Dd October 16, 2014 +.\" $FreeBSD: head/share/man/man5/src.conf.5 273420 2014-10-21 20:41:19Z emaste $ +.Dd October 21, 2014 .Dt SRC.CONF 5 .Os .Sh NAME @@ -211,10 +211,10 @@ It is a default setting on amd64/amd64, arm/arm, arm/armv6, arm/armv6hf, i386/i386, pc98/i386, powerpc/powerpc and powerpc/powerpc64. .It Va WITHOUT_CLANG_BOOTSTRAP -.\" from FreeBSD: head/tools/build/options/WITHOUT_CLANG_BOOTSTRAP 264660 2014-04-18 17:03:58Z imp +.\" from FreeBSD: head/tools/build/options/WITHOUT_CLANG_BOOTSTRAP 273177 2014-10-16 18:28:11Z skreuzer Set to not build the Clang C/C++ compiler during the bootstrap phase of the build. -You must enable wither gcc or clang bootstrap to be able to build the system, -unless an alternative compiiler is provided via +You must enable either gcc or clang bootstrap to be able to build the system, +unless an alternative compiler is provided via XCC. .Pp It is a default setting on @@ -404,6 +404,12 @@ .\" from FreeBSD: head/tools/build/options/WITHOUT_FMTREE 261299 2014-01-30 21:37:43Z brooks Set to not build and install .Pa /usr/sbin/fmtree . +.It Va WITHOUT_FORMAT_EXTENSIONS +.\" from FreeBSD: head/tools/build/options/WITHOUT_FORMAT_EXTENSIONS 250658 2013-05-15 13:04:10Z brooks +Set to not enable +.Fl fformat-extensions +when compiling the kernel. +Also disables all format checking. .It Va WITHOUT_FORTH .\" from FreeBSD: head/tools/build/options/WITHOUT_FORTH 156932 2006-03-21 07:50:50Z ru Set to build bootloaders without Forth support. @@ -432,10 +438,10 @@ It is a default setting on arm/armeb, mips/mipsel, mips/mips, mips/mips64el, mips/mips64, mips/mipsn32, powerpc/powerpc, powerpc/powerpc64 and sparc64/sparc64. .It Va WITHOUT_GCC_BOOTSTRAP -.\" from FreeBSD: head/tools/build/options/WITHOUT_GCC_BOOTSTRAP 264660 2014-04-18 17:03:58Z imp +.\" from FreeBSD: head/tools/build/options/WITHOUT_GCC_BOOTSTRAP 273177 2014-10-16 18:28:11Z skreuzer Set to not build gcc and g++ as part of the bootstrap process. -You must enable wither gcc or clang bootstrap to be able to build the system, -unless an alternative compiiler is provided via +You must enable either gcc or clang bootstrap to be able to build the system, +unless an alternative compiler is provided via XCC. .Pp It is a default setting on @@ -613,6 +619,12 @@ .Xr sshd 8 , and .Xr telnetd 8 . +.It Va WITHOUT_KERNEL_SYMBOLS +.\" from FreeBSD: head/tools/build/options/WITHOUT_KERNEL_SYMBOLS 222189 2011-05-22 18:23:17Z imp +Set to not install kernel symbol files. +.Bf -symbolic +This option is recommended for those people who have small root partitions. +.Ef .It Va WITHOUT_KVM .\" from FreeBSD: head/tools/build/options/WITHOUT_KVM 174550 2007-12-12 16:43:17Z ru Set to not build the @@ -1077,9 +1089,6 @@ .It Va WITHOUT_USB .\" from FreeBSD: head/tools/build/options/WITHOUT_USB 156932 2006-03-21 07:50:50Z ru Set to not build USB-related programs and libraries. -.It Va WITH_USB_GADGET_EXAMPLES -.\" from FreeBSD: head/tools/build/options/WITH_USB_GADGET_EXAMPLES 254919 2013-08-26 17:15:56Z antoine -Set to build USB gadget kernel modules. .It Va WITHOUT_UTMPX .\" from FreeBSD: head/tools/build/options/WITHOUT_UTMPX 231530 2012-02-11 20:28:42Z ed Set to not build user accounting tools such as ==== //depot/projects/opencrypto/share/man/man8/Makefile#3 (text+ko) ==== @@ -1,9 +1,8 @@ # @(#)Makefile 8.1 (Berkeley) 6/5/93 -# $FreeBSD: head/share/man/man8/Makefile 273235 2014-10-17 18:16:40Z emaste $ +# $FreeBSD: head/share/man/man8/Makefile 273747 2014-10-27 21:29:42Z delphij $ MAN= crash.8 \ diskless.8 \ - hv_kvp_daemon.8 \ intro.8 \ nanobsd.8 \ picobsd.8 \ ==== //depot/projects/opencrypto/share/man/man9/Makefile#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: head/share/man/man9/Makefile 273377 2014-10-21 07:31:21Z hselasky $ +# $FreeBSD: head/share/man/man9/Makefile 273788 2014-10-28 16:19:02Z jkim $ MAN= accept_filter.9 \ accf_data.9 \ @@ -46,6 +46,7 @@ BUS_SETUP_INTR.9 \ bus_space.9 \ byteorder.9 \ + casuword.9 \ cd.9 \ condvar.9 \ config_intrhook.9 \ @@ -581,6 +582,9 @@ MLINKS+=config_intrhook.9 config_intrhook_disestablish.9 \ config_intrhook.9 config_intrhook_establish.9 MLINKS+=contigmalloc.9 contigfree.9 +MLINKS+=casuword.9 casueword.9 \ + casuword.9 casueword32.9 \ + casuword.9 casuword32.9 MLINKS+=copy.9 copyin.9 \ copy.9 copyin_nofault.9 \ copy.9 copyinstr.9 \ @@ -688,7 +692,10 @@ fetch.9 fuword.9 \ fetch.9 fuword16.9 \ fetch.9 fuword32.9 \ - fetch.9 fuword64.9 + fetch.9 fuword64.9 \ + fetch.9 fueword.9 \ + fetch.9 fueword32.9 \ + fetch.9 fueword64.9 MLINKS+=firmware.9 firmware_get.9 \ firmware.9 firmware_put.9 \ firmware.9 firmware_register.9 \ ==== //depot/projects/opencrypto/share/man/man9/fetch.9#2 (text+ko) ==== @@ -32,9 +32,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: head/share/man/man9/fetch.9 197780 2009-10-05 15:16:28Z trasz $ +.\" $FreeBSD: head/share/man/man9/fetch.9 273783 2014-10-28 15:22:13Z kib $ .\" -.Dd October 5, 2009 +.Dd October 21, 2014 .Dt FETCH 9 .Os .Sh NAME @@ -44,11 +44,13 @@ .Nm fuword , .Nm fuword16 , .Nm fuword32 , -.Nm fuword64 +.Nm fuword64 , +.Nm fueword , +.Nm fueword32 , +.Nm fueword64 .Nd fetch data from user-space .Sh SYNOPSIS .In sys/types.h -.In sys/time.h .In sys/systm.h .Ft int .Fn fubyte "const void *base" @@ -60,27 +62,38 @@ .Fn fuword32 "const void *base" .Ft int64_t .Fn fuword64 "const void *base" +.Ft long +.Fn fueword "const void *base" "long *val" +.Ft int32_t +.Fn fueword32 "const void *base" "int32_t *val" +.Ft int64_t +.Fn fueword64 "const void *base" "int64_t *val" .In sys/resourcevar.h .Ft int .Fn fuswintr "void *base" .Sh DESCRIPTION The .Nm -functions are designed to copy small amounts of data from user-space. +functions are designed to copy small amounts of data from user-space +of the current process. +If read is successful, it is performed atomically. +The data read must be naturally aligned. .Pp The .Nm routines provide the following functionality: -.Bl -tag -width "fuswintr()" +.Bl -tag -width "fueword32()" .It Fn fubyte Fetches a byte of data from the user-space address .Pa base . +The byte read is zero-extended into the results variable. .It Fn fuword -Fetches a word of data from the user-space address +Fetches a word of data (long) from the user-space address .Pa base . .It Fn fuword16 Fetches 16 bits of data from the user-space address .Pa base . +The half-word read is zero-extended into the results variable. .It Fn fuword32 Fetches 32 bits of data from the user-space address .Pa base . @@ -91,11 +104,46 @@ Fetches a short word of data from the user-space address .Pa base . This function is safe to call during an interrupt context. +.It Fn fueword +Fetches a word of data (long) from the user-space address +.Pa base +and stores the result in the variable pointed by +.Pa val . +.It Fn fueword32 +Fetches 32 bits of data from the user-space address +.Pa base +and stores the result in the variable pointed by +.Pa val . +.It Fn fueword64 +Fetches 64 bits of data from the user-space address +.Pa base +and stores the result in the variable pointed by +.Pa val . .El +.Pp +The callers of +.Fn fuword , +.Fn fuword32 +and +.Fn fuword64 +functions cannot distinguish between -1 read from +userspace and function failure. .Sh RETURN VALUES The -.Nm +.Fn fubyte , +.Fn fuword , +.Fn fuword16 , +.Fn fuword32 , +.Fn fuword64 , +and +.Fn fuswintr functions return the data fetched or -1 on failure. +The +.Fn fueword , +.Fn fueword32 +and +.Fn fueword64 +functions return 0 on success and -1 on failure. .Sh SEE ALSO .Xr copy 9 , .Xr store 9 ==== //depot/projects/opencrypto/share/man/man9/fpu_kern.9#2 (text+ko) ==== @@ -21,9 +21,9 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: head/share/man/man9/fpu_kern.9 267785 2014-06-23 12:43:30Z brueffer $ +.\" $FreeBSD: head/share/man/man9/fpu_kern.9 273550 2014-10-23 17:24:50Z jmg $ .\" -.Dd June 23, 2014 +.Dd October 23, 2014 .Dt FPU_KERN 9 .Os .Sh NAME @@ -157,12 +157,17 @@ .Pp The .Fn fpu_kern_thread -function provides an optimization for threads which never leave to +function enables an optimization for threads which never leave to the usermode. -Such thread can reuse the usermode save area for the FPU state, -which is allowed by the function call. -There is no flags defined for the function, and no error states +The current thread will reuse the usermode save area for the kernel FPU state +instead of requiring an explicitly allocated context. +There are no flags defined for the function, and no error states that the function returns. +Once this function has been called, neither +.Fn fpu_kern_enter +nor +.Fn fpu_kern_leave +is required to be called and the fpu is available for use in the calling thread. .Pp The .Fn is_fpu_kern_thread ==== //depot/projects/opencrypto/share/man/man9/mbuf.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: head/share/man/man9/mbuf.9 273388 2014-10-21 17:17:40Z jmg $ +.\" $FreeBSD: head/share/man/man9/mbuf.9 273392 2014-10-21 17:59:27Z jmg $ .\" .Dd October 21, 2014 .Dt MBUF 9 @@ -355,7 +355,7 @@ Convert an .Fa mbuf pointer to a data pointer. -The macro expands to the data pointer cast to the pointer of the specified +The macro expands to the data pointer cast to the specified .Fa type . .Sy Note : It is advisable to ensure that there is enough contiguous data in ==== //depot/projects/opencrypto/sys/amd64/amd64/pmap.c#6 (text+ko) ==== @@ -79,7 +79,7 @@ #define AMD64_NPT_AWARE #include -__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 273356 2014-10-21 01:06:58Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 273701 2014-10-26 17:56:47Z alc $"); /* * Manages physical address maps. @@ -115,6 +115,7 @@ #include #include #include +#include #include #include #include @@ -130,6 +131,7 @@ #include #include #include +#include #include #include #include @@ -402,11 +404,6 @@ CTLFLAG_MPSAFE, NULL, 0, pmap_pcid_save_cnt_proc, "QU", "Count of saved TLB context on switch"); -/* pmap_copy_pages() over non-DMAP */ -static struct mtx cpage_lock; -static vm_offset_t cpage_a; -static vm_offset_t cpage_b; - /* * Crashdump maps. */ @@ -1060,8 +1057,7 @@ /* * Calculate the size of the pv head table for superpages. */ - for (i = 0; phys_avail[i + 1]; i += 2); - pv_npg = round_2mpage(phys_avail[(i - 2) + 1]) / NBPDR; + pv_npg = howmany(vm_phys_segs[vm_phys_nsegs - 1].end, NBPDR); /* * Allocate memory for the pv head table for superpages. @@ -1072,10 +1068,6 @@ M_WAITOK | M_ZERO); for (i = 0; i < pv_npg; i++) TAILQ_INIT(&pv_table[i].pv_list); - - mtx_init(&cpage_lock, "cpage", NULL, MTX_DEF); - cpage_a = kva_alloc(PAGE_SIZE); - cpage_b = kva_alloc(PAGE_SIZE); } static SYSCTL_NODE(_vm_pmap, OID_AUTO, pde, CTLFLAG_RD, 0, @@ -5056,66 +5048,24 @@ vm_offset_t b_offset, int xfersize) { void *a_cp, *b_cp; - vm_page_t m_a, m_b; - vm_paddr_t p_a, p_b; - pt_entry_t *pte; - vm_offset_t a_pg_offset, b_pg_offset; + vm_page_t pages[2]; + vm_offset_t vaddr[2], a_pg_offset, b_pg_offset; int cnt; - boolean_t pinned; + boolean_t mapped; - /* - * NB: The sequence of updating a page table followed by accesses - * to the corresponding pages used in the !DMAP case is subject to - * the situation described in the "AMD64 Architecture Programmer's - * Manual Volume 2: System Programming" rev. 3.23, "7.3.1 Special - * Coherency Considerations". Therefore, issuing the INVLPG right - * after modifying the PTE bits is crucial. - */ - pinned = FALSE; while (xfersize > 0) { a_pg_offset = a_offset & PAGE_MASK; - m_a = ma[a_offset >> PAGE_SHIFT]; - p_a = m_a->phys_addr; + pages[0] = ma[a_offset >> PAGE_SHIFT]; b_pg_offset = b_offset & PAGE_MASK; - m_b = mb[b_offset >> PAGE_SHIFT]; - p_b = m_b->phys_addr; + pages[1] = mb[b_offset >> PAGE_SHIFT]; cnt = min(xfersize, PAGE_SIZE - a_pg_offset); cnt = min(cnt, PAGE_SIZE - b_pg_offset); - if (__predict_false(p_a < DMAP_MIN_ADDRESS || - p_a > DMAP_MIN_ADDRESS + dmaplimit)) { - mtx_lock(&cpage_lock); - sched_pin(); - pinned = TRUE; - pte = vtopte(cpage_a); - *pte = p_a | X86_PG_A | X86_PG_V | - pmap_cache_bits(kernel_pmap, m_a->md.pat_mode, 0); - invlpg(cpage_a); - a_cp = (char *)cpage_a + a_pg_offset; - } else { - a_cp = (char *)PHYS_TO_DMAP(p_a) + a_pg_offset; - } - if (__predict_false(p_b < DMAP_MIN_ADDRESS || - p_b > DMAP_MIN_ADDRESS + dmaplimit)) { - if (!pinned) { - mtx_lock(&cpage_lock); - sched_pin(); - pinned = TRUE; - } - pte = vtopte(cpage_b); - *pte = p_b | X86_PG_A | X86_PG_M | X86_PG_RW | - X86_PG_V | pmap_cache_bits(kernel_pmap, - m_b->md.pat_mode, 0); - invlpg(cpage_b); - b_cp = (char *)cpage_b + b_pg_offset; - } else { - b_cp = (char *)PHYS_TO_DMAP(p_b) + b_pg_offset; - } + mapped = pmap_map_io_transient(pages, vaddr, 2, FALSE); + a_cp = (char *)vaddr[0] + a_pg_offset; + b_cp = (char *)vaddr[1] + b_pg_offset; bcopy(a_cp, b_cp, cnt); - if (__predict_false(pinned)) { - sched_unpin(); - mtx_unlock(&cpage_lock); - pinned = FALSE; - } + if (__predict_false(mapped)) + pmap_unmap_io_transient(pages, vaddr, 2, FALSE); a_offset += cnt; b_offset += cnt; xfersize -= cnt; @@ -6901,6 +6851,107 @@ *num = idx; } +/** + * Get the kernel virtual address of a set of physical pages. If there are + * physical addresses not covered by the DMAP perform a transient mapping + * that will be removed when calling pmap_unmap_io_transient. + * + * \param page The pages the caller wishes to obtain the virtual + * address on the kernel memory map. + * \param vaddr On return contains the kernel virtual memory address + * of the pages passed in the page parameter. + * \param count Number of pages passed in. + * \param can_fault TRUE if the thread using the mapped pages can take + * page faults, FALSE otherwise. + * + * \returns TRUE if the caller must call pmap_unmap_io_transient when + * finished or FALSE otherwise. + * + */ +boolean_t +pmap_map_io_transient(vm_page_t page[], vm_offset_t vaddr[], int count, + boolean_t can_fault) +{ + vm_paddr_t paddr; + boolean_t needs_mapping; + pt_entry_t *pte; + int cache_bits, error, i; + + /* + * Allocate any KVA space that we need, this is done in a separate + * loop to prevent calling vmem_alloc while pinned. + */ + needs_mapping = FALSE; + for (i = 0; i < count; i++) { + paddr = VM_PAGE_TO_PHYS(page[i]); + if (__predict_false(paddr >= dmaplimit)) { + error = vmem_alloc(kernel_arena, PAGE_SIZE, + M_BESTFIT | M_WAITOK, &vaddr[i]); + KASSERT(error == 0, ("vmem_alloc failed: %d", error)); + needs_mapping = TRUE; + } else { + vaddr[i] = PHYS_TO_DMAP(paddr); + } + } + + /* Exit early if everything is covered by the DMAP */ + if (!needs_mapping) + return (FALSE); + + /* + * NB: The sequence of updating a page table followed by accesses + * to the corresponding pages used in the !DMAP case is subject to + * the situation described in the "AMD64 Architecture Programmer's + * Manual Volume 2: System Programming" rev. 3.23, "7.3.1 Special + * Coherency Considerations". Therefore, issuing the INVLPG right + * after modifying the PTE bits is crucial. + */ + if (!can_fault) + sched_pin(); + for (i = 0; i < count; i++) { + paddr = VM_PAGE_TO_PHYS(page[i]); + if (paddr >= dmaplimit) { + if (can_fault) { + /* + * Slow path, since we can get page faults + * while mappings are active don't pin the + * thread to the CPU and instead add a global + * mapping visible to all CPUs. + */ + pmap_qenter(vaddr[i], &page[i], 1); + } else { + pte = vtopte(vaddr[i]); + cache_bits = pmap_cache_bits(kernel_pmap, + page[i]->md.pat_mode, 0); + pte_store(pte, paddr | X86_PG_RW | X86_PG_V | + cache_bits); + invlpg(vaddr[i]); + } + } + } + + return (needs_mapping); +} + +void +pmap_unmap_io_transient(vm_page_t page[], vm_offset_t vaddr[], int count, + boolean_t can_fault) +{ + vm_paddr_t paddr; + int i; + + if (!can_fault) + sched_unpin(); + for (i = 0; i < count; i++) { + paddr = VM_PAGE_TO_PHYS(page[i]); + if (paddr >= dmaplimit) { >>> TRUNCATED FOR MAIL (1000 lines) <<<