PERFORCE change 1189939 for review
John Baldwin
jhb at FreeBSD.org
Fri Jan 10 19:36:32 UTC 2014
http://p4web.freebsd.org/@@1189939?ac=10
Change 1189939 by jhb at 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) <<<
More information about the p4-projects
mailing list