Date: Fri, 10 Jan 2014 19:36:31 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 1189939 for review Message-ID: <201401101936.s0AJaVX4068473@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@1189939?ac=10 Change 1189939 by jhb@jhb_jhbbsd on 2014/01/10 19:36:13 IFC @1189938 Affected files ... .. //depot/projects/pci/sys/Makefile#6 integrate .. //depot/projects/pci/sys/amd64/amd64/pmap.c#13 integrate .. //depot/projects/pci/sys/amd64/conf/NOTES#11 integrate .. //depot/projects/pci/sys/amd64/include/vmm.h#7 integrate .. //depot/projects/pci/sys/amd64/vmm/amd/amdv.c#4 integrate .. //depot/projects/pci/sys/amd64/vmm/intel/ept.c#5 integrate .. //depot/projects/pci/sys/amd64/vmm/intel/ept.h#3 integrate .. //depot/projects/pci/sys/amd64/vmm/intel/vmcs.c#6 integrate .. //depot/projects/pci/sys/amd64/vmm/intel/vmcs.h#6 integrate .. //depot/projects/pci/sys/amd64/vmm/intel/vmx.c#8 integrate .. //depot/projects/pci/sys/amd64/vmm/intel/vmx.h#5 integrate .. //depot/projects/pci/sys/amd64/vmm/intel/vmx_controls.h#4 integrate .. //depot/projects/pci/sys/amd64/vmm/intel/vmx_genassym.c#5 integrate .. //depot/projects/pci/sys/amd64/vmm/intel/vmx_support.S#3 integrate .. //depot/projects/pci/sys/amd64/vmm/io/vhpet.c#3 integrate .. //depot/projects/pci/sys/amd64/vmm/io/vlapic.c#5 integrate .. //depot/projects/pci/sys/amd64/vmm/io/vlapic.h#4 integrate .. //depot/projects/pci/sys/amd64/vmm/io/vlapic_priv.h#2 integrate .. //depot/projects/pci/sys/amd64/vmm/vmm.c#7 integrate .. //depot/projects/pci/sys/amd64/vmm/vmm_ipi.c#2 integrate .. //depot/projects/pci/sys/amd64/vmm/vmm_ipi.h#2 integrate .. //depot/projects/pci/sys/amd64/vmm/vmm_lapic.c#4 integrate .. //depot/projects/pci/sys/arm/allwinner/a10_machdep.c#4 integrate .. //depot/projects/pci/sys/arm/arm/bus_space_generic.c#6 integrate .. //depot/projects/pci/sys/arm/arm/devmap.c#2 integrate .. //depot/projects/pci/sys/arm/arm/gic.c#6 integrate .. //depot/projects/pci/sys/arm/arm/intr.c#4 integrate .. //depot/projects/pci/sys/arm/arm/machdep.c#9 integrate .. //depot/projects/pci/sys/arm/arm/nexus.c#6 integrate .. //depot/projects/pci/sys/arm/arm/trap.c#7 integrate .. //depot/projects/pci/sys/arm/at91/at91.c#6 integrate .. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_fbd.c#2 integrate .. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_machdep.c#3 integrate .. //depot/projects/pci/sys/arm/conf/AC100#4 integrate .. //depot/projects/pci/sys/arm/conf/ARMADAXP#5 integrate .. //depot/projects/pci/sys/arm/conf/ARNDALE#3 integrate .. //depot/projects/pci/sys/arm/conf/ATMEL#4 integrate .. //depot/projects/pci/sys/arm/conf/AVILA#8 integrate .. //depot/projects/pci/sys/arm/conf/BWCT#5 integrate .. //depot/projects/pci/sys/arm/conf/CAMBRIA#9 integrate .. //depot/projects/pci/sys/arm/conf/CNS11XXNAS#5 integrate .. //depot/projects/pci/sys/arm/conf/COSMIC#2 integrate .. //depot/projects/pci/sys/arm/conf/CUBIEBOARD#4 integrate .. //depot/projects/pci/sys/arm/conf/CUBIEBOARD2#2 integrate .. //depot/projects/pci/sys/arm/conf/DB-78XXX#6 integrate .. //depot/projects/pci/sys/arm/conf/DB-88F5XXX#6 integrate .. //depot/projects/pci/sys/arm/conf/DB-88F6XXX#6 integrate .. //depot/projects/pci/sys/arm/conf/DIGI-CCWMX53#3 integrate .. //depot/projects/pci/sys/arm/conf/DOCKSTAR#6 integrate .. //depot/projects/pci/sys/arm/conf/EA3250#3 integrate .. //depot/projects/pci/sys/arm/conf/EB9200#3 integrate .. //depot/projects/pci/sys/arm/conf/EFIKA_MX#3 integrate .. //depot/projects/pci/sys/arm/conf/ETHERNUT5#3 integrate .. //depot/projects/pci/sys/arm/conf/HL200#5 integrate .. //depot/projects/pci/sys/arm/conf/HL201#5 integrate .. //depot/projects/pci/sys/arm/conf/IMX53-QSB#2 integrate .. //depot/projects/pci/sys/arm/conf/KB920X#5 integrate .. //depot/projects/pci/sys/arm/conf/LN2410SBC#5 integrate .. //depot/projects/pci/sys/arm/conf/NSLU#5 integrate .. //depot/projects/pci/sys/arm/conf/PANDABOARD#3 integrate .. //depot/projects/pci/sys/arm/conf/QILA9G20#5 integrate .. //depot/projects/pci/sys/arm/conf/RADXA#2 integrate .. //depot/projects/pci/sys/arm/conf/RPI-B#7 integrate .. //depot/projects/pci/sys/arm/conf/SAM9260EK#3 integrate .. //depot/projects/pci/sys/arm/conf/SAM9G20EK#5 integrate .. //depot/projects/pci/sys/arm/conf/SAM9X25EK#3 integrate .. //depot/projects/pci/sys/arm/conf/SHEEVAPLUG#6 integrate .. //depot/projects/pci/sys/arm/conf/SN9G45#3 integrate .. //depot/projects/pci/sys/arm/conf/TS7800#6 integrate .. //depot/projects/pci/sys/arm/conf/ZEDBOARD#3 integrate .. //depot/projects/pci/sys/arm/freescale/imx/imx51_ipuv3.c#3 integrate .. //depot/projects/pci/sys/arm/include/devmap.h#2 integrate .. //depot/projects/pci/sys/arm/include/fdt.h#4 integrate .. //depot/projects/pci/sys/arm/include/intr.h#5 integrate .. //depot/projects/pci/sys/arm/include/ofw_machdep.h#3 integrate .. //depot/projects/pci/sys/arm/include/psl.h#3 integrate .. //depot/projects/pci/sys/arm/lpc/lpc_gpio.c#3 integrate .. //depot/projects/pci/sys/arm/lpc/lpc_machdep.c#3 integrate .. //depot/projects/pci/sys/arm/lpc/lpc_mmc.c#3 integrate .. //depot/projects/pci/sys/arm/lpc/lpcreg.h#3 integrate .. //depot/projects/pci/sys/arm/mv/mv_machdep.c#8 integrate .. //depot/projects/pci/sys/arm/mv/mv_pci.c#6 integrate .. //depot/projects/pci/sys/arm/mv/mvvar.h#5 integrate .. //depot/projects/pci/sys/arm/tegra/bus_space.c#2 delete .. //depot/projects/pci/sys/arm/tegra/files.tegra2#2 integrate .. //depot/projects/pci/sys/arm/tegra/tegra2_machdep.c#3 integrate .. //depot/projects/pci/sys/arm/ti/am335x/am335x_dmtimer.c#5 integrate .. //depot/projects/pci/sys/arm/ti/ti_machdep.c#4 integrate .. //depot/projects/pci/sys/arm/versatile/sp804.c#4 integrate .. //depot/projects/pci/sys/boot/fdt/dts/cubieboard.dts#3 integrate .. //depot/projects/pci/sys/boot/fdt/dts/cubieboard2.dts#2 integrate .. //depot/projects/pci/sys/boot/fdt/dts/dockstar.dts#3 integrate .. //depot/projects/pci/sys/boot/i386/Makefile.inc#5 integrate .. //depot/projects/pci/sys/boot/i386/boot2/Makefile#10 integrate .. //depot/projects/pci/sys/boot/i386/gptboot/Makefile#6 integrate .. //depot/projects/pci/sys/boot/i386/gptzfsboot/Makefile#5 integrate .. //depot/projects/pci/sys/boot/i386/zfsboot/Makefile#9 integrate .. //depot/projects/pci/sys/boot/pc98/boot2/Makefile#5 integrate .. //depot/projects/pci/sys/boot/zfs/zfsimpl.c#4 integrate .. //depot/projects/pci/sys/cam/cam_debug.h#4 integrate .. //depot/projects/pci/sys/cam/cam_xpt.c#14 integrate .. //depot/projects/pci/sys/cam/scsi/scsi_da.c#12 integrate .. //depot/projects/pci/sys/cam/scsi/scsi_low.c#4 integrate .. //depot/projects/pci/sys/cddl/boot/zfs/zfsimpl.h#4 integrate .. //depot/projects/pci/sys/cddl/compat/opensolaris/sys/time.h#6 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S#4 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c#6 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h#6 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.c#2 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/common/zfs/zfs_deleg.h#2 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c#4 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c#2 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/common/zfs/zfs_namecheck.h#2 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c#9 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/Makefile.files#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#9 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#8 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c#3 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#10 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c#4 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#8 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c#3 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c#8 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#4 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c#7 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_bookmark.c#1 branch .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#10 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c#8 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c#8 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#10 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dbuf.h#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h#8 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_bookmark.h#1 branch .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#7 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_deleg.h#4 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h#8 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h#8 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h#7 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_disk.h#3 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h#7 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c#6 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c#6 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#5 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#11 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#8 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c#6 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#10 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#9 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace_impl.h#4 integrate .. //depot/projects/pci/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h#8 integrate .. //depot/projects/pci/sys/cddl/dev/dtrace/dtrace_load.c#6 integrate .. //depot/projects/pci/sys/cddl/dev/dtrace/dtrace_unload.c#6 integrate .. //depot/projects/pci/sys/compat/freebsd32/freebsd32_misc.c#13 integrate .. //depot/projects/pci/sys/conf/Makefile.arm#8 integrate .. //depot/projects/pci/sys/conf/files#19 integrate .. //depot/projects/pci/sys/conf/kern.pre.mk#11 integrate .. //depot/projects/pci/sys/conf/options#18 integrate .. //depot/projects/pci/sys/conf/options.arm#7 integrate .. //depot/projects/pci/sys/contrib/dev/iwn/iwlwifi-135-6-18.168.6.1.fw.uu#1 branch .. //depot/projects/pci/sys/dev/aac/aac.c#6 integrate .. //depot/projects/pci/sys/dev/aacraid/aacraid.c#3 integrate .. //depot/projects/pci/sys/dev/ahci/ahci.c#15 integrate .. //depot/projects/pci/sys/dev/aic7xxx/aic79xx_reg.h#1 branch .. //depot/projects/pci/sys/dev/aic7xxx/aic79xx_reg_print.c#1 branch .. //depot/projects/pci/sys/dev/aic7xxx/aic79xx_seq.h#1 branch .. //depot/projects/pci/sys/dev/aic7xxx/aic7xxx_reg.h#1 branch .. //depot/projects/pci/sys/dev/aic7xxx/aic7xxx_reg_print.c#1 branch .. //depot/projects/pci/sys/dev/aic7xxx/aic7xxx_seq.h#1 branch .. //depot/projects/pci/sys/dev/ale/if_ale.c#7 integrate .. //depot/projects/pci/sys/dev/ath/if_ath_rx_edma.c#5 integrate .. //depot/projects/pci/sys/dev/ath/if_ath_tx.c#10 integrate .. //depot/projects/pci/sys/dev/bge/if_bge.c#12 integrate .. //depot/projects/pci/sys/dev/bwi/if_bwi.c#5 integrate .. //depot/projects/pci/sys/dev/bwn/if_bwn.c#7 integrate .. //depot/projects/pci/sys/dev/bxe/bxe.c#5 integrate .. //depot/projects/pci/sys/dev/bxe/ecore_hsi.h#3 integrate .. //depot/projects/pci/sys/dev/bxe/ecore_sp.c#3 integrate .. //depot/projects/pci/sys/dev/cxgbe/adapter.h#13 integrate .. //depot/projects/pci/sys/dev/cxgbe/t4_main.c#14 integrate .. //depot/projects/pci/sys/dev/cxgbe/t4_sge.c#14 integrate .. //depot/projects/pci/sys/dev/e1000/if_em.c#11 integrate .. //depot/projects/pci/sys/dev/e1000/if_igb.c#16 integrate .. //depot/projects/pci/sys/dev/e1000/if_lem.c#10 integrate .. //depot/projects/pci/sys/dev/ed/if_ed.c#5 integrate .. //depot/projects/pci/sys/dev/ed/if_ed_3c503.c#4 integrate .. //depot/projects/pci/sys/dev/ed/if_ed_pccard.c#5 integrate .. //depot/projects/pci/sys/dev/ed/if_ed_rtl80x9.c#4 integrate .. //depot/projects/pci/sys/dev/ed/if_edreg.h#3 integrate .. //depot/projects/pci/sys/dev/ed/if_edvar.h#3 integrate .. //depot/projects/pci/sys/dev/ed/tc5299jreg.h#3 integrate .. //depot/projects/pci/sys/dev/en/midway.c#4 integrate .. //depot/projects/pci/sys/dev/fb/boot_font.c#4 integrate .. //depot/projects/pci/sys/dev/fb/gallant12x22.c#3 integrate .. //depot/projects/pci/sys/dev/fdt/fdt_common.c#7 integrate .. //depot/projects/pci/sys/dev/fdt/fdt_common.h#7 integrate .. //depot/projects/pci/sys/dev/fdt/fdt_mips.c#4 integrate .. //depot/projects/pci/sys/dev/fdt/fdt_pci.c#6 delete .. //depot/projects/pci/sys/dev/fdt/fdt_powerpc.c#5 integrate .. //depot/projects/pci/sys/dev/fdt/fdt_x86.c#2 integrate .. //depot/projects/pci/sys/dev/fdt/fdtbus.c#9 integrate .. //depot/projects/pci/sys/dev/fdt/simplebus.c#6 integrate .. //depot/projects/pci/sys/dev/ffec/if_ffec.c#2 integrate .. //depot/projects/pci/sys/dev/firewire/if_fwe.c#5 integrate .. //depot/projects/pci/sys/dev/ipw/if_ipw.c#6 integrate .. //depot/projects/pci/sys/dev/ipw/if_ipwvar.h#3 integrate .. //depot/projects/pci/sys/dev/iscsi/icl.c#3 integrate .. //depot/projects/pci/sys/dev/iwi/if_iwi.c#6 integrate .. //depot/projects/pci/sys/dev/iwi/if_iwivar.h#3 integrate .. //depot/projects/pci/sys/dev/iwn/if_iwn.c#11 integrate .. //depot/projects/pci/sys/dev/iwn/if_iwn_devid.h#3 integrate .. //depot/projects/pci/sys/dev/iwn/if_iwnvar.h#8 integrate .. //depot/projects/pci/sys/dev/ixgbe/ixgbe.c#12 integrate .. //depot/projects/pci/sys/dev/malo/if_malo.c#5 integrate .. //depot/projects/pci/sys/dev/mcd/mcd.c#4 integrate .. //depot/projects/pci/sys/dev/mfi/mfi_cam.c#7 integrate .. //depot/projects/pci/sys/dev/mpt/mpt.h#7 integrate .. //depot/projects/pci/sys/dev/mpt/mpt_cam.c#9 integrate .. //depot/projects/pci/sys/dev/mpt/mpt_pci.c#10 integrate .. //depot/projects/pci/sys/dev/mpt/mpt_raid.c#5 integrate .. //depot/projects/pci/sys/dev/mwl/if_mwl.c#8 integrate .. //depot/projects/pci/sys/dev/my/if_my.c#7 integrate .. //depot/projects/pci/sys/dev/nand/nand_id.c#4 integrate .. //depot/projects/pci/sys/dev/nand/nandbus.c#4 integrate .. //depot/projects/pci/sys/dev/netmap/if_em_netmap.h#6 integrate .. //depot/projects/pci/sys/dev/netmap/if_igb_netmap.h#7 integrate .. //depot/projects/pci/sys/dev/netmap/if_lem_netmap.h#6 integrate .. //depot/projects/pci/sys/dev/netmap/if_re_netmap.h#6 integrate .. //depot/projects/pci/sys/dev/netmap/ixgbe_netmap.h#6 integrate .. //depot/projects/pci/sys/dev/netmap/netmap.c#6 integrate .. //depot/projects/pci/sys/dev/netmap/netmap_freebsd.c#2 integrate .. //depot/projects/pci/sys/dev/netmap/netmap_generic.c#2 integrate .. //depot/projects/pci/sys/dev/netmap/netmap_kern.h#6 integrate .. //depot/projects/pci/sys/dev/netmap/netmap_mbq.c#2 integrate .. //depot/projects/pci/sys/dev/netmap/netmap_mbq.h#2 integrate .. //depot/projects/pci/sys/dev/netmap/netmap_mem2.c#5 integrate .. //depot/projects/pci/sys/dev/netmap/netmap_mem2.h#3 integrate .. //depot/projects/pci/sys/dev/netmap/netmap_vale.c#2 integrate .. //depot/projects/pci/sys/dev/nvme/nvme_ctrlr.c#7 integrate .. //depot/projects/pci/sys/dev/oce/oce_if.c#6 integrate .. //depot/projects/pci/sys/dev/ral/if_ral_pci.c#3 integrate .. //depot/projects/pci/sys/dev/ral/rt2560.c#7 integrate .. //depot/projects/pci/sys/dev/ral/rt2661.c#7 integrate .. //depot/projects/pci/sys/dev/ral/rt2860.c#4 integrate .. //depot/projects/pci/sys/dev/scc/scc_dev_z8530.c#4 integrate .. //depot/projects/pci/sys/dev/sk/if_sk.c#7 integrate .. //depot/projects/pci/sys/dev/sound/pci/maestro.c#5 integrate .. //depot/projects/pci/sys/dev/tpm/tpm.c#3 integrate .. //depot/projects/pci/sys/dev/uart/uart_bus_fdt.c#8 integrate .. //depot/projects/pci/sys/dev/uart/uart_dev_lpc.c#2 integrate .. //depot/projects/pci/sys/dev/usb/controller/xhci.c#10 integrate .. //depot/projects/pci/sys/dev/usb/usbdevs#16 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_rsu.c#3 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_rum.c#9 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_run.c#11 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_runreg.h#6 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_runvar.h#7 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_uath.c#9 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_upgt.c#8 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_ural.c#8 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_urtw.c#8 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_urtwn.c#4 integrate .. //depot/projects/pci/sys/dev/usb/wlan/if_zyd.c#10 integrate .. //depot/projects/pci/sys/dev/vt/hw/vga/vga.c#2 integrate .. //depot/projects/pci/sys/dev/vt/hw/xboxfb/xboxfb.c#2 integrate .. //depot/projects/pci/sys/dev/vt/vt_font.c#3 integrate .. //depot/projects/pci/sys/dev/vxge/vxgehal/vxgehal-ring.c#4 integrate .. //depot/projects/pci/sys/dev/wi/if_wi.c#6 integrate .. //depot/projects/pci/sys/dev/wpi/if_wpi.c#7 integrate .. //depot/projects/pci/sys/dev/wpi/if_wpivar.h#3 integrate .. //depot/projects/pci/sys/fs/nfs/nfs_var.h#11 integrate .. //depot/projects/pci/sys/fs/nfs/nfsrvcache.h#4 integrate .. //depot/projects/pci/sys/fs/nfsserver/nfs_nfsdcache.c#8 integrate .. //depot/projects/pci/sys/fs/nfsserver/nfs_nfsdkrpc.c#7 integrate .. //depot/projects/pci/sys/fs/nfsserver/nfs_nfsdport.c#12 integrate .. //depot/projects/pci/sys/fs/nfsserver/nfs_nfsdsubs.c#5 integrate .. //depot/projects/pci/sys/ia64/ia64/dump_machdep.c#7 integrate .. //depot/projects/pci/sys/ia64/include/atomic.h#3 integrate .. //depot/projects/pci/sys/kern/kern_cons.c#4 integrate .. //depot/projects/pci/sys/kern/kern_descrip.c#15 integrate .. //depot/projects/pci/sys/kern/kern_event.c#10 integrate .. //depot/projects/pci/sys/kern/sched_4bsd.c#11 integrate .. //depot/projects/pci/sys/kern/uipc_syscalls.c#13 integrate .. //depot/projects/pci/sys/mips/conf/TP-WN1043ND.hints#4 integrate .. //depot/projects/pci/sys/mips/include/fdt.h#3 integrate .. //depot/projects/pci/sys/modules/aic7xxx/Makefile#4 integrate .. //depot/projects/pci/sys/modules/aic7xxx/ahc/Makefile#4 integrate .. //depot/projects/pci/sys/modules/aic7xxx/ahc/ahc_eisa/Makefile#3 integrate .. //depot/projects/pci/sys/modules/aic7xxx/ahc/ahc_isa/Makefile#3 integrate .. //depot/projects/pci/sys/modules/aic7xxx/ahc/ahc_pci/Makefile#4 integrate .. //depot/projects/pci/sys/modules/aic7xxx/ahd/Makefile#5 integrate .. //depot/projects/pci/sys/modules/ath/Makefile#8 integrate .. //depot/projects/pci/sys/modules/drm2/i915kms/Makefile#3 integrate .. //depot/projects/pci/sys/modules/drm2/radeonkms/Makefile#3 integrate .. //depot/projects/pci/sys/modules/ibcore/Makefile#2 integrate .. //depot/projects/pci/sys/modules/ipfilter/Makefile#5 integrate .. //depot/projects/pci/sys/modules/ipoib/Makefile#2 integrate .. //depot/projects/pci/sys/modules/iwnfw/Makefile#6 integrate .. //depot/projects/pci/sys/modules/iwnfw/iwn135/Makefile#1 branch .. //depot/projects/pci/sys/modules/mlx4/Makefile#4 integrate .. //depot/projects/pci/sys/modules/mlx4ib/Makefile#4 integrate .. //depot/projects/pci/sys/modules/mlxen/Makefile#3 integrate .. //depot/projects/pci/sys/modules/mthca/Makefile#3 integrate .. //depot/projects/pci/sys/modules/wlan/Makefile#6 integrate .. //depot/projects/pci/sys/net/ieee8023ad_lacp.c#9 integrate .. //depot/projects/pci/sys/net/if.c#11 integrate .. //depot/projects/pci/sys/net/if_lagg.c#13 integrate .. //depot/projects/pci/sys/net/if_lagg.h#9 integrate .. //depot/projects/pci/sys/net/if_tap.c#6 integrate .. //depot/projects/pci/sys/net/if_tun.c#11 integrate .. //depot/projects/pci/sys/net/netmap.h#6 integrate .. //depot/projects/pci/sys/net/netmap_user.h#5 integrate .. //depot/projects/pci/sys/net/radix.c#5 integrate .. //depot/projects/pci/sys/net/radix.h#6 integrate .. //depot/projects/pci/sys/net/radix_mpath.c#4 integrate .. //depot/projects/pci/sys/net/route.c#9 integrate .. //depot/projects/pci/sys/net/route.h#7 integrate .. //depot/projects/pci/sys/net/rtsock.c#9 integrate .. //depot/projects/pci/sys/net/sff8472.h#2 integrate .. //depot/projects/pci/sys/net80211/ieee80211.h#7 integrate .. //depot/projects/pci/sys/net80211/ieee80211_adhoc.c#6 integrate .. //depot/projects/pci/sys/net80211/ieee80211_hostap.c#8 integrate .. //depot/projects/pci/sys/net80211/ieee80211_mesh.c#10 integrate .. //depot/projects/pci/sys/net80211/ieee80211_output.c#13 integrate .. //depot/projects/pci/sys/net80211/ieee80211_proto.c#8 integrate .. //depot/projects/pci/sys/net80211/ieee80211_sta.c#7 integrate .. //depot/projects/pci/sys/net80211/ieee80211_wds.c#7 integrate .. //depot/projects/pci/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#8 integrate .. //depot/projects/pci/sys/netgraph/netflow/netflow.c#7 integrate .. //depot/projects/pci/sys/netgraph/netflow/netflow_v9.c#4 integrate .. //depot/projects/pci/sys/netgraph/netflow/ng_netflow.c#6 integrate .. //depot/projects/pci/sys/netgraph/netflow/ng_netflow.h#7 integrate .. //depot/projects/pci/sys/netgraph/ng_base.c#10 integrate .. //depot/projects/pci/sys/netgraph/ng_l2tp.c#5 integrate .. //depot/projects/pci/sys/netinet/if_ether.c#11 integrate .. //depot/projects/pci/sys/netinet/in.c#11 integrate .. //depot/projects/pci/sys/netinet/ip_carp.c#10 integrate .. //depot/projects/pci/sys/netinet/ip_output.c#12 integrate .. //depot/projects/pci/sys/netinet6/in6.c#13 integrate .. //depot/projects/pci/sys/netinet6/in6_ifattach.c#9 integrate .. //depot/projects/pci/sys/netinet6/in6_mcast.c#7 integrate .. //depot/projects/pci/sys/netinet6/in6_src.c#8 integrate .. //depot/projects/pci/sys/netinet6/in6_var.h#7 integrate .. //depot/projects/pci/sys/netinet6/ip6_mroute.c#8 integrate .. //depot/projects/pci/sys/netinet6/ip6_mroute.h#4 integrate .. //depot/projects/pci/sys/netinet6/mld6.c#8 integrate .. //depot/projects/pci/sys/netinet6/nd6.c#13 integrate .. //depot/projects/pci/sys/netinet6/nd6_nbr.c#9 integrate .. //depot/projects/pci/sys/netinet6/nd6_rtr.c#8 integrate .. //depot/projects/pci/sys/netpfil/ipfw/ip_fw_table.c#2 integrate .. //depot/projects/pci/sys/netpfil/pf/pf_lb.c#4 integrate .. //depot/projects/pci/sys/nfs/nfs_fha.c#3 integrate .. //depot/projects/pci/sys/nfs/nfs_fha.h#3 integrate .. //depot/projects/pci/sys/ofed/drivers/infiniband/hw/mlx4/Makefile#3 integrate .. //depot/projects/pci/sys/ofed/drivers/net/mlx4/Makefile#3 integrate .. //depot/projects/pci/sys/powerpc/include/fdt.h#4 delete .. //depot/projects/pci/sys/powerpc/powerpc/bus_machdep.c#5 integrate .. //depot/projects/pci/sys/rpc/svc.c#6 integrate .. //depot/projects/pci/sys/rpc/svc.h#5 integrate .. //depot/projects/pci/sys/rpc/svc_dg.c#5 integrate .. //depot/projects/pci/sys/rpc/svc_vc.c#6 integrate .. //depot/projects/pci/sys/sys/copyright.h#4 integrate .. //depot/projects/pci/sys/sys/event.h#6 integrate .. //depot/projects/pci/sys/sys/param.h#17 integrate .. //depot/projects/pci/sys/sys/pctrie.h#2 integrate .. //depot/projects/pci/sys/sys/pmckern.h#6 integrate .. //depot/projects/pci/sys/sys/sf_base.h#1 branch .. //depot/projects/pci/sys/sys/user.h#10 integrate .. //depot/projects/pci/sys/ufs/ffs/ffs_alloc.c#14 integrate .. //depot/projects/pci/sys/ufs/ufs/ufs_quota.c#7 integrate .. //depot/projects/pci/sys/vm/vm_page.c#13 integrate .. //depot/projects/pci/sys/vm/vm_page.h#10 integrate .. //depot/projects/pci/sys/vm/vm_phys.c#8 integrate .. //depot/projects/pci/sys/vm/vm_reserv.c#7 integrate .. //depot/projects/pci/sys/x86/include/fdt.h#2 integrate .. //depot/projects/pci/sys/x86/include/ofw_machdep.h#2 integrate .. //depot/projects/pci/sys/x86/x86/mca.c#4 integrate .. //depot/projects/pci/usr.sbin/Makefile.inc#1 branch .. //depot/projects/pci/usr.sbin/pciconf/Makefile#1 branch .. //depot/projects/pci/usr.sbin/pciconf/cap.c#1 branch .. //depot/projects/pci/usr.sbin/pciconf/err.c#1 branch .. //depot/projects/pci/usr.sbin/pciconf/pathnames.h#1 branch .. //depot/projects/pci/usr.sbin/pciconf/pciconf.8#1 branch .. //depot/projects/pci/usr.sbin/pciconf/pciconf.c#1 branch .. //depot/projects/pci/usr.sbin/pciconf/pciconf.h#1 branch Differences ... ==== //depot/projects/pci/sys/Makefile#6 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: head/sys/Makefile 248209 2013-03-12 14:21:52Z bryanv $ +# $FreeBSD: head/sys/Makefile 260080 2013-12-30 08:36:17Z rpaulo $ .include <bsd.own.mk> @@ -10,7 +10,7 @@ # Directories to include in cscope name file and TAGS. CSCOPEDIRS= boot bsm cam cddl compat conf contrib crypto ddb dev fs gdb \ geom gnu isa kern libkern modules net net80211 netatalk \ - netgraph netinet netinet6 netipsec netipx netnatm \ + netgraph netinet netinet6 netipsec netipx netnatm netpfil \ netsmb nfs nfsclient nfsserver nlm ofed opencrypto \ pci rpc security sys ufs vm xdr xen ${CSCOPE_ARCHDIR} .if !defined(CSCOPE_ARCHDIR) ==== //depot/projects/pci/sys/amd64/amd64/pmap.c#13 (text+ko) ==== @@ -79,7 +79,7 @@ #define AMD64_NPT_AWARE #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 259641 2013-12-20 05:50:22Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 260205 2014-01-02 18:50:52Z kib $"); /* * Manages physical address maps. @@ -608,6 +608,9 @@ { PMAP_LOCK_ASSERT(pmap, MA_OWNED); + KASSERT(pmap->pm_stats.resident_count >= count, + ("pmap %p resident count underflow %ld %d", pmap, + pmap->pm_stats.resident_count, count)); pmap->pm_stats.resident_count -= count; } @@ -1766,16 +1769,6 @@ } /* - * Are we current address space or kernel? - */ -static __inline int -pmap_is_current(pmap_t pmap) -{ - return (pmap == kernel_pmap || - (pmap->pm_pml4[PML4PML4I] & PG_FRAME) == (PML4pml4e[0] & PG_FRAME)); -} - -/* * Routine: pmap_extract * Function: * Extract the physical page address associated @@ -5130,12 +5123,20 @@ } /* - * Remove all pages from specified address space - * this aids process exit speeds. Also, this code - * is special cased for current process only, but - * can have the more generic (and slightly slower) - * mode enabled. This is much faster than pmap_remove - * in the case of running down an entire address space. + * Destroy all managed, non-wired mappings in the given user-space + * pmap. This pmap cannot be active on any processor besides the + * caller. + * + * This function cannot be applied to the kernel pmap. Moreover, it + * is not intended for general use. It is only to be used during + * process termination. Consequently, it can be implemented in ways + * that make it faster than pmap_remove(). First, it can more quickly + * destroy mappings by iterating over the pmap's collection of PV + * entries, rather than searching the page table. Second, it doesn't + * have to test and clear the page table entries atomically, because + * no processor is currently accessing the user address space. In + * particular, a page table entry's dirty bit won't change state once + * this function starts. */ void pmap_remove_pages(pmap_t pmap) @@ -5155,10 +5156,24 @@ boolean_t superpage; vm_paddr_t pa; - if (pmap != PCPU_GET(curpmap)) { - printf("warning: pmap_remove_pages called with non-current pmap\n"); - return; + /* + * Assert that the given pmap is only active on the current + * CPU. Unfortunately, we cannot block another CPU from + * activating the pmap while this function is executing. + */ + KASSERT(pmap == PCPU_GET(curpmap), ("non-current pmap %p", pmap)); +#ifdef INVARIANTS + { + cpuset_t other_cpus; + + other_cpus = all_cpus; + critical_enter(); + CPU_CLR(PCPU_GET(cpuid), &other_cpus); + CPU_AND(&other_cpus, &pmap->pm_active); + critical_exit(); + KASSERT(CPU_EMPTY(&other_cpus), ("pmap active %p", pmap)); } +#endif lock = NULL; PG_M = pmap_modified_bit(pmap); ==== //depot/projects/pci/sys/amd64/conf/NOTES#11 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: head/sys/amd64/conf/NOTES 257277 2013-10-28 21:11:28Z glebius $ +# $FreeBSD: head/sys/amd64/conf/NOTES 260376 2014-01-06 17:23:22Z schweikh $ # # @@ -462,7 +462,7 @@ # # The virtio entry provides a generic bus for use by the device drivers. # It must be combined with an interface that communicates with the host. -# Multiple such interfaces defined by the VirtIO specification. FreeBSD +# Multiple such interfaces are defined by the VirtIO specification. FreeBSD # only has support for PCI. Therefore, virtio_pci must be statically # compiled in or loaded as a module for the device drivers to function. # @@ -476,7 +476,7 @@ device hyperv # HyperV drivers # Xen HVM Guest Optimizations -options XENHVM # Xen HVM kernel infrastructure +options XENHVM # Xen HVM kernel infrastructure device xenpci # Xen HVM Hypervisor services driver ##################################################################### ==== //depot/projects/pci/sys/amd64/include/vmm.h#7 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: head/sys/amd64/include/vmm.h 259863 2013-12-25 06:46:31Z neel $ + * $FreeBSD: head/sys/amd64/include/vmm.h 260466 2014-01-09 03:25:54Z neel $ */ #ifndef _VMM_H_ @@ -47,7 +47,7 @@ enum x2apic_state; -typedef int (*vmm_init_func_t)(void); +typedef int (*vmm_init_func_t)(int ipinum); typedef int (*vmm_cleanup_func_t)(void); typedef void (*vmm_resume_func_t)(void); typedef void * (*vmi_init_func_t)(struct vm *vm, struct pmap *pmap); @@ -303,9 +303,19 @@ * exitcode to represent the VM-exit. */ struct { - int error; /* vmx inst error */ + int status; /* vmx inst status */ + /* + * 'exit_reason' and 'exit_qualification' are valid + * only if 'status' is zero. + */ uint32_t exit_reason; uint64_t exit_qualification; + /* + * 'inst_error' and 'inst_type' are valid + * only if 'status' is non-zero. + */ + int inst_type; + int inst_error; } vmx; struct { uint32_t code; /* ecx value */ ==== //depot/projects/pci/sys/amd64/vmm/amd/amdv.c#4 (text+ko) ==== @@ -23,11 +23,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: head/sys/amd64/vmm/amd/amdv.c 259863 2013-12-25 06:46:31Z neel $ + * $FreeBSD: head/sys/amd64/vmm/amd/amdv.c 260466 2014-01-09 03:25:54Z neel $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/vmm/amd/amdv.c 259863 2013-12-25 06:46:31Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/vmm/amd/amdv.c 260466 2014-01-09 03:25:54Z neel $"); #include <sys/param.h> #include <sys/systm.h> @@ -38,7 +38,7 @@ #include "io/iommu.h" static int -amdv_init(void) +amdv_init(int ipinum) { printf("amdv_init: not implemented\n"); ==== //depot/projects/pci/sys/amd64/vmm/intel/ept.c#5 (text+ko) ==== @@ -23,11 +23,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: head/sys/amd64/vmm/intel/ept.c 259641 2013-12-20 05:50:22Z neel $ + * $FreeBSD: head/sys/amd64/vmm/intel/ept.c 260466 2014-01-09 03:25:54Z neel $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/ept.c 259641 2013-12-20 05:50:22Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/ept.c 260466 2014-01-09 03:25:54Z neel $"); #include <sys/param.h> #include <sys/kernel.h> @@ -77,7 +77,7 @@ &ept_pmap_flags, 0, NULL); int -ept_init(void) +ept_init(int ipinum) { int use_hw_ad_bits, use_superpages, use_exec_only; uint64_t cap; @@ -99,7 +99,7 @@ !INVEPT_ALL_TYPES_SUPPORTED(cap)) return (EINVAL); - ept_pmap_flags = vmm_ipinum & PMAP_NESTED_IPIMASK; + ept_pmap_flags = ipinum & PMAP_NESTED_IPIMASK; use_superpages = 1; TUNABLE_INT_FETCH("hw.vmm.ept.use_superpages", &use_superpages); ==== //depot/projects/pci/sys/amd64/vmm/intel/ept.h#3 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: head/sys/amd64/vmm/intel/ept.h 256072 2013-10-05 21:22:35Z neel $ + * $FreeBSD: head/sys/amd64/vmm/intel/ept.h 260466 2014-01-09 03:25:54Z neel $ */ #ifndef _EPT_H_ @@ -31,7 +31,7 @@ struct vmx; -int ept_init(void); +int ept_init(int ipinum); void ept_invalidate_mappings(u_long eptp); struct vmspace *ept_vmspace_alloc(vm_offset_t min, vm_offset_t max); void ept_vmspace_free(struct vmspace *vmspace); ==== //depot/projects/pci/sys/amd64/vmm/intel/vmcs.c#6 (text+ko) ==== @@ -23,13 +23,13 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.c 259542 2013-12-18 06:24:21Z neel $ + * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.c 260380 2014-01-06 23:16:39Z neel $ */ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmcs.c 259542 2013-12-18 06:24:21Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmcs.c 260380 2014-01-06 23:16:39Z neel $"); #include <sys/param.h> #include <sys/systm.h> @@ -315,11 +315,7 @@ } int -vmcs_set_defaults(struct vmcs *vmcs, - u_long host_rip, u_long host_rsp, uint64_t eptp, - uint32_t pinbased_ctls, uint32_t procbased_ctls, - uint32_t procbased_ctls2, uint32_t exit_ctls, - uint32_t entry_ctls, u_long msr_bitmap, uint16_t vpid) +vmcs_init(struct vmcs *vmcs) { int error, codesel, datasel, tsssel; u_long cr0, cr4, efer; @@ -335,22 +331,6 @@ */ VMPTRLD(vmcs); - /* - * Load the VMX controls - */ - if ((error = vmwrite(VMCS_PIN_BASED_CTLS, pinbased_ctls)) != 0) - goto done; - if ((error = vmwrite(VMCS_PRI_PROC_BASED_CTLS, procbased_ctls)) != 0) - goto done; - if ((error = vmwrite(VMCS_SEC_PROC_BASED_CTLS, procbased_ctls2)) != 0) - goto done; - if ((error = vmwrite(VMCS_EXIT_CTLS, exit_ctls)) != 0) - goto done; - if ((error = vmwrite(VMCS_ENTRY_CTLS, entry_ctls)) != 0) - goto done; - - /* Guest state */ - /* Initialize guest IA32_PAT MSR with the default value */ pat = PAT_VALUE(0, PAT_WRITE_BACK) | PAT_VALUE(1, PAT_WRITE_THROUGH) | @@ -422,23 +402,7 @@ goto done; /* instruction pointer */ - if ((error = vmwrite(VMCS_HOST_RIP, host_rip)) != 0) - goto done; - - /* stack pointer */ - if ((error = vmwrite(VMCS_HOST_RSP, host_rsp)) != 0) - goto done; - - /* eptp */ - if ((error = vmwrite(VMCS_EPTP, eptp)) != 0) - goto done; - - /* vpid */ - if ((error = vmwrite(VMCS_VPID, vpid)) != 0) - goto done; - - /* msr bitmap */ - if ((error = vmwrite(VMCS_MSR_BITMAP, msr_bitmap)) != 0) + if ((error = vmwrite(VMCS_HOST_RIP, (u_long)vmx_exit_guest)) != 0) goto done; /* exception bitmap */ ==== //depot/projects/pci/sys/amd64/vmm/intel/vmcs.h#6 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.h 259542 2013-12-18 06:24:21Z neel $ + * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.h 260410 2014-01-07 21:04:49Z neel $ */ #ifndef _VMCS_H_ @@ -46,12 +46,7 @@ }; int vmcs_set_msr_save(struct vmcs *vmcs, u_long g_area, u_int g_count); -int vmcs_set_defaults(struct vmcs *vmcs, u_long host_rip, u_long host_rsp, - uint64_t eptp, - uint32_t pinbased_ctls, uint32_t procbased_ctls, - uint32_t procbased_ctls2, uint32_t exit_ctls, - uint32_t entry_ctls, u_long msr_bitmap, - uint16_t vpid); +int vmcs_init(struct vmcs *vmcs); int vmcs_getreg(struct vmcs *vmcs, int running, int ident, uint64_t *rv); int vmcs_setreg(struct vmcs *vmcs, int running, int ident, uint64_t val); int vmcs_getdesc(struct vmcs *vmcs, int ident, @@ -112,6 +107,7 @@ #define VMCS_GUEST_GS_SELECTOR 0x0000080A #define VMCS_GUEST_LDTR_SELECTOR 0x0000080C #define VMCS_GUEST_TR_SELECTOR 0x0000080E +#define VMCS_GUEST_INTR_STATUS 0x00000810 /* 16-bit host-state fields */ #define VMCS_HOST_ES_SELECTOR 0x00000C00 @@ -134,6 +130,10 @@ #define VMCS_VIRTUAL_APIC 0x00002012 #define VMCS_APIC_ACCESS 0x00002014 #define VMCS_EPTP 0x0000201A +#define VMCS_EOI_EXIT0 0x0000201C +#define VMCS_EOI_EXIT1 0x0000201E +#define VMCS_EOI_EXIT2 0x00002020 +#define VMCS_EOI_EXIT3 0x00002022 /* 64-bit read-only fields */ #define VMCS_GUEST_PHYSICAL_ADDRESS 0x00002400 @@ -315,7 +315,7 @@ #define EXIT_REASON_PAUSE 40 #define EXIT_REASON_MCE 41 #define EXIT_REASON_TPR 43 -#define EXIT_REASON_APIC 44 +#define EXIT_REASON_APIC_ACCESS 44 #define EXIT_REASON_GDTR_IDTR 46 #define EXIT_REASON_LDTR_TR 47 #define EXIT_REASON_EPT_FAULT 48 @@ -326,6 +326,7 @@ #define EXIT_REASON_INVVPID 53 #define EXIT_REASON_WBINVD 54 #define EXIT_REASON_XSETBV 55 +#define EXIT_REASON_APIC_WRITE 56 /* * VMCS interrupt information fields @@ -365,4 +366,15 @@ #define EPT_VIOLATION_GLA_VALID (1UL << 7) #define EPT_VIOLATION_XLAT_VALID (1UL << 8) +/* + * Exit qualification for APIC-access VM exit + */ +#define APIC_ACCESS_OFFSET(qual) ((qual) & 0xFFF) +#define APIC_ACCESS_TYPE(qual) (((qual) >> 12) & 0xF) + +/* + * Exit qualification for APIC-write VM exit + */ +#define APIC_WRITE_OFFSET(qual) ((qual) & 0xFFF) + #endif ==== //depot/projects/pci/sys/amd64/vmm/intel/vmx.c#8 (text+ko) ==== @@ -23,11 +23,11 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: head/sys/amd64/vmm/intel/vmx.c 259942 2013-12-27 12:15:53Z dim $ + * $FreeBSD: head/sys/amd64/vmm/intel/vmx.c 260466 2014-01-09 03:25:54Z neel $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmx.c 259942 2013-12-27 12:15:53Z dim $"); +__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmx.c 260466 2014-01-09 03:25:54Z neel $"); #include <sys/param.h> #include <sys/systm.h> @@ -166,12 +166,25 @@ static int cap_unrestricted_guest; static int cap_monitor_trap; static int cap_invpcid; - + +static int virtual_interrupt_delivery; +SYSCTL_INT(_hw_vmm_vmx, OID_AUTO, virtual_interrupt_delivery, CTLFLAG_RD, + &virtual_interrupt_delivery, 0, "APICv virtual interrupt delivery support"); + static struct unrhdr *vpid_unr; static u_int vpid_alloc_failed; SYSCTL_UINT(_hw_vmm_vmx, OID_AUTO, vpid_alloc_failed, CTLFLAG_RD, &vpid_alloc_failed, 0, NULL); +/* + * Use the last page below 4GB as the APIC access address. This address is + * occupied by the boot firmware so it is guaranteed that it will not conflict + * with a page in system memory. + */ +#define APIC_ACCESS_ADDRESS 0xFFFFF000 + +static void vmx_inject_pir(struct vlapic *vlapic); + #ifdef KTR static const char * exit_reason_to_str(int reason) @@ -261,8 +274,8 @@ return "mce"; case EXIT_REASON_TPR: return "tpr"; - case EXIT_REASON_APIC: - return "apic"; + case EXIT_REASON_APIC_ACCESS: + return "apic-access"; case EXIT_REASON_GDTR_IDTR: return "gdtridtr"; case EXIT_REASON_LDTR_TR: @@ -283,87 +296,13 @@ return "wbinvd"; case EXIT_REASON_XSETBV: return "xsetbv"; + case EXIT_REASON_APIC_WRITE: + return "apic-write"; default: snprintf(reasonbuf, sizeof(reasonbuf), "%d", reason); return (reasonbuf); } } - -#ifdef SETJMP_TRACE -static const char * -vmx_setjmp_rc2str(int rc) -{ - switch (rc) { - case VMX_RETURN_DIRECT: - return "direct"; - case VMX_RETURN_LONGJMP: - return "longjmp"; - case VMX_RETURN_VMRESUME: - return "vmresume"; - case VMX_RETURN_VMLAUNCH: - return "vmlaunch"; - case VMX_RETURN_AST: - return "ast"; - default: - return "unknown"; - } -} - -#define SETJMP_TRACE(vmx, vcpu, vmxctx, regname) \ - VCPU_CTR1((vmx)->vm, (vcpu), "setjmp trace " #regname " 0x%016lx", \ - (vmxctx)->regname) - -static void -vmx_setjmp_trace(struct vmx *vmx, int vcpu, struct vmxctx *vmxctx, int rc) -{ - uint64_t host_rip, host_rsp; - - if (vmxctx != &vmx->ctx[vcpu]) - panic("vmx_setjmp_trace: invalid vmxctx %p; should be %p", - vmxctx, &vmx->ctx[vcpu]); - - VCPU_CTR1((vmx)->vm, (vcpu), "vmxctx = %p", vmxctx); - VCPU_CTR2((vmx)->vm, (vcpu), "setjmp return code %s(%d)", - vmx_setjmp_rc2str(rc), rc); - - host_rip = vmcs_read(VMCS_HOST_RIP); - host_rsp = vmcs_read(VMCS_HOST_RSP); - VCPU_CTR2((vmx)->vm, (vcpu), "vmcs host_rip 0x%016lx, host_rsp %#lx", - host_rip, host_rsp); - - SETJMP_TRACE(vmx, vcpu, vmxctx, host_r15); - SETJMP_TRACE(vmx, vcpu, vmxctx, host_r14); - SETJMP_TRACE(vmx, vcpu, vmxctx, host_r13); - SETJMP_TRACE(vmx, vcpu, vmxctx, host_r12); - SETJMP_TRACE(vmx, vcpu, vmxctx, host_rbp); - SETJMP_TRACE(vmx, vcpu, vmxctx, host_rsp); - SETJMP_TRACE(vmx, vcpu, vmxctx, host_rbx); - SETJMP_TRACE(vmx, vcpu, vmxctx, host_rip); - - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_rdi); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_rsi); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_rdx); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_rcx); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_r8); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_r9); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_rax); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_rbx); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_rbp); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_r10); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_r11); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_r12); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_r13); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_r14); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_r15); - SETJMP_TRACE(vmx, vcpu, vmxctx, guest_cr2); -} -#endif -#else -static void __inline -vmx_setjmp_trace(struct vmx *vmx, int vcpu, struct vmxctx *vmxctx, int rc) -{ - return; -} #endif /* KTR */ u_long @@ -535,11 +474,11 @@ } static int -vmx_init(void) +vmx_init(int ipinum) { - int error; + int error, use_tpr_shadow; uint64_t fixed0, fixed1, feature_control; - uint32_t tmp; + uint32_t tmp, procbased2_vid_bits; /* CPUID.1:ECX[bit 5] must be 1 for processor to support VMX */ if (!(cpu_feature2 & CPUID2_VMX)) { @@ -673,9 +612,34 @@ MSR_VMX_PROCBASED_CTLS2, PROCBASED2_ENABLE_INVPCID, 0, &tmp) == 0); + /* + * Check support for virtual interrupt delivery. + */ + procbased2_vid_bits = (PROCBASED2_VIRTUALIZE_APIC_ACCESSES | + PROCBASED2_VIRTUALIZE_X2APIC_MODE | + PROCBASED2_APIC_REGISTER_VIRTUALIZATION | + PROCBASED2_VIRTUAL_INTERRUPT_DELIVERY); + + use_tpr_shadow = (vmx_set_ctlreg(MSR_VMX_PROCBASED_CTLS, + MSR_VMX_TRUE_PROCBASED_CTLS, PROCBASED_USE_TPR_SHADOW, 0, + &tmp) == 0); + + error = vmx_set_ctlreg(MSR_VMX_PROCBASED_CTLS2, MSR_VMX_PROCBASED_CTLS2, >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401101936.s0AJaVX4068473>