PERFORCE change 1190660 for review

John Baldwin jhb at FreeBSD.org
Wed Feb 5 19:50:01 UTC 2014


http://p4web.freebsd.org/@@1190660?ac=10

Change 1190660 by jhb at jhb_ralph on 2014/02/05 19:49:53

	IFC @1190659

Affected files ...

.. //depot/projects/pci/sys/amd64/amd64/db_disasm.c#4 integrate
.. //depot/projects/pci/sys/amd64/amd64/machdep.c#13 integrate
.. //depot/projects/pci/sys/amd64/amd64/mp_watchdog.c#3 integrate
.. //depot/projects/pci/sys/amd64/amd64/pmap.c#14 integrate
.. //depot/projects/pci/sys/amd64/include/apicvar.h#5 delete
.. //depot/projects/pci/sys/amd64/include/smp.h#6 integrate
.. //depot/projects/pci/sys/amd64/include/vmm.h#9 integrate
.. //depot/projects/pci/sys/amd64/include/vmm_dev.h#6 integrate
.. //depot/projects/pci/sys/amd64/include/vmm_instruction_emul.h#4 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmcs.h#8 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmx.c#11 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmx.h#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmx_genassym.c#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/intel/vmx_support.S#5 integrate
.. //depot/projects/pci/sys/amd64/vmm/io/vlapic.c#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/io/vlapic_priv.h#3 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm.c#10 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_dev.c#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_instruction_emul.c#7 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_ipi.c#3 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_stat.c#4 integrate
.. //depot/projects/pci/sys/amd64/vmm/vmm_stat.h#4 integrate
.. //depot/projects/pci/sys/arm/allwinner/a10_clk.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/a10_ehci.c#2 integrate
.. //depot/projects/pci/sys/arm/allwinner/a10_gpio.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/a10_wdog.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/a20/a20_cpu_cfg.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/a20/std.a20#2 integrate
.. //depot/projects/pci/sys/arm/allwinner/aintc.c#3 integrate
.. //depot/projects/pci/sys/arm/allwinner/std.a10#2 integrate
.. //depot/projects/pci/sys/arm/arm/bcopyinout.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/bcopyinout_xscale.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/busdma_machdep-v6.c#7 integrate
.. //depot/projects/pci/sys/arm/arm/copystr.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_arm8.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_sa1.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_sa11x0.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_xscale.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/cpufunc_asm_xscale_c3.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/db_trace.c#6 integrate
.. //depot/projects/pci/sys/arm/arm/exception.S#5 integrate
.. //depot/projects/pci/sys/arm/arm/fiq_subr.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/fusu.S#5 integrate
.. //depot/projects/pci/sys/arm/arm/genassym.c#5 integrate
.. //depot/projects/pci/sys/arm/arm/generic_timer.c#3 integrate
.. //depot/projects/pci/sys/arm/arm/gic.c#7 integrate
.. //depot/projects/pci/sys/arm/arm/locore.S#7 integrate
.. //depot/projects/pci/sys/arm/arm/machdep.c#10 integrate
.. //depot/projects/pci/sys/arm/arm/mp_machdep.c#5 integrate
.. //depot/projects/pci/sys/arm/arm/mpcore_timer.c#5 integrate
.. //depot/projects/pci/sys/arm/arm/nexus.c#7 integrate
.. //depot/projects/pci/sys/arm/arm/pl190.c#3 integrate
.. //depot/projects/pci/sys/arm/arm/pl310.c#4 integrate
.. //depot/projects/pci/sys/arm/arm/setcpsr.S#4 integrate
.. //depot/projects/pci/sys/arm/arm/setstack.s#3 integrate
.. //depot/projects/pci/sys/arm/arm/swtch.S#7 integrate
.. //depot/projects/pci/sys/arm/arm/vfp.c#6 integrate
.. //depot/projects/pci/sys/arm/at91/at91.c#7 integrate
.. //depot/projects/pci/sys/arm/at91/at91_machdep.c#6 integrate
.. //depot/projects/pci/sys/arm/at91/at91rm92reg.h#3 integrate
.. //depot/projects/pci/sys/arm/at91/at91sam9260reg.h#3 integrate
.. //depot/projects/pci/sys/arm/at91/at91sam9g20reg.h#3 integrate
.. //depot/projects/pci/sys/arm/at91/at91sam9g45reg.h#2 integrate
.. //depot/projects/pci/sys/arm/at91/board_sam9260ek.c#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.bwct#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.eb9200#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.ethernut5#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.hl200#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.hl201#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.kb920x#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.qila9g20#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.sam9260ek#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.sam9g20ek#3 integrate
.. //depot/projects/pci/sys/arm/at91/std.sam9x25ek#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.sn9g45#2 integrate
.. //depot/projects/pci/sys/arm/at91/std.tsc4370#3 integrate
.. //depot/projects/pci/sys/arm/at91/uart_bus_at91usart.c#3 integrate
.. //depot/projects/pci/sys/arm/at91/uart_cpu_at91usart.c#2 integrate
.. //depot/projects/pci/sys/arm/at91/uart_dev_at91usart.c#7 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_bsc.c#2 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_dma.c#3 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_fb.c#4 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_fbd.c#3 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_gpio.c#5 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_intr.c#2 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_mbox.c#4 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c#5 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_spi.c#2 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_systimer.c#5 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/bcm2835_wdog.c#3 integrate
.. //depot/projects/pci/sys/arm/broadcom/bcm2835/std.rpi#2 integrate
.. //depot/projects/pci/sys/arm/conf/ATMEL#6 integrate
.. //depot/projects/pci/sys/arm/conf/BWCT#6 integrate
.. //depot/projects/pci/sys/arm/conf/CNS11XXNAS#6 integrate
.. //depot/projects/pci/sys/arm/conf/COLIBRI-VF50#1 branch
.. //depot/projects/pci/sys/arm/conf/COSMIC#3 integrate
.. //depot/projects/pci/sys/arm/conf/CRB#7 integrate
.. //depot/projects/pci/sys/arm/conf/EP80219#7 integrate
.. //depot/projects/pci/sys/arm/conf/GUMSTIX#5 integrate
.. //depot/projects/pci/sys/arm/conf/HL200#6 integrate
.. //depot/projects/pci/sys/arm/conf/HL201#7 integrate
.. //depot/projects/pci/sys/arm/conf/IQ31244#7 integrate
.. //depot/projects/pci/sys/arm/conf/NSLU#6 integrate
.. //depot/projects/pci/sys/arm/conf/QILA9G20#6 integrate
.. //depot/projects/pci/sys/arm/conf/SAM9G20EK#6 integrate
.. //depot/projects/pci/sys/arm/conf/SAM9X25EK#4 integrate
.. //depot/projects/pci/sys/arm/conf/SN9G45#4 integrate
.. //depot/projects/pci/sys/arm/conf/VERSATILEPB#4 integrate
.. //depot/projects/pci/sys/arm/conf/VYBRID.common#1 branch
.. //depot/projects/pci/sys/arm/econa/files.econa#3 integrate
.. //depot/projects/pci/sys/arm/econa/std.econa#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/i2c.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_ccm.c#5 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_gpio.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_iomux.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_ipuv3.c#4 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx51_ipuv3_fbd.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx6_anatop.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx6_ccm.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx6_usbphy.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx_gpt.c#5 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx_nop_usbphy.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx_sdhci.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/imx_wdog.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/std.imx51#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/std.imx53#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/std.imx6#2 integrate
.. //depot/projects/pci/sys/arm/freescale/imx/tzic.c#3 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/files.vybrid#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/std.vybrid#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_anadig.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_ccm.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_common.h#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_dcu4.c#1 branch
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_ehci.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_gpio.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_iomuxc.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_mscm.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_nfc.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_src.c#2 integrate
.. //depot/projects/pci/sys/arm/freescale/vybrid/vf_tcon.c#1 branch
.. //depot/projects/pci/sys/arm/include/asmacros.h#6 integrate
.. //depot/projects/pci/sys/arm/include/atomic.h#5 integrate
.. //depot/projects/pci/sys/arm/include/pcpu.h#6 integrate
.. //depot/projects/pci/sys/arm/lpc/if_lpe.c#3 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_dmac.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_fb.c#3 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_gpio.c#4 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_intc.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_mmc.c#4 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_ohci.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_pwr.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_rtc.c#2 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_spi.c#3 integrate
.. //depot/projects/pci/sys/arm/lpc/lpc_timer.c#4 integrate
.. //depot/projects/pci/sys/arm/lpc/std.lpc#2 integrate
.. //depot/projects/pci/sys/arm/mv/armadaxp/std.armadaxp#4 integrate
.. //depot/projects/pci/sys/arm/mv/discovery/std.db78xxx#3 integrate
.. //depot/projects/pci/sys/arm/mv/gpio.c#6 integrate
.. //depot/projects/pci/sys/arm/mv/ic.c#3 integrate
.. //depot/projects/pci/sys/arm/mv/kirkwood/std.kirkwood#3 integrate
.. //depot/projects/pci/sys/arm/mv/mpic.c#2 integrate
.. //depot/projects/pci/sys/arm/mv/mv_localbus.c#4 integrate
.. //depot/projects/pci/sys/arm/mv/mv_pci.c#7 integrate
.. //depot/projects/pci/sys/arm/mv/mv_sata.c#4 integrate
.. //depot/projects/pci/sys/arm/mv/mv_ts.c#2 integrate
.. //depot/projects/pci/sys/arm/mv/orion/std.db88f5xxx#3 integrate
.. //depot/projects/pci/sys/arm/mv/orion/std.ts7800#3 integrate
.. //depot/projects/pci/sys/arm/mv/rtc.c#3 integrate
.. //depot/projects/pci/sys/arm/mv/timer.c#5 integrate
.. //depot/projects/pci/sys/arm/mv/twsi.c#3 integrate
.. //depot/projects/pci/sys/arm/rockchip/rk30xx_gpio.c#2 integrate
.. //depot/projects/pci/sys/arm/rockchip/rk30xx_grf.c#2 integrate
.. //depot/projects/pci/sys/arm/rockchip/rk30xx_pmu.c#2 integrate
.. //depot/projects/pci/sys/arm/rockchip/rk30xx_wdog.c#2 integrate
.. //depot/projects/pci/sys/arm/rockchip/std.rk30xx#2 integrate
.. //depot/projects/pci/sys/arm/s3c2xx0/std.ln2410sbc#3 integrate
.. //depot/projects/pci/sys/arm/samsung/exynos/arch_timer.c#3 integrate
.. //depot/projects/pci/sys/arm/samsung/exynos/ehci_exynos5.c#3 integrate
.. //depot/projects/pci/sys/arm/samsung/exynos/std.exynos5#2 integrate
.. //depot/projects/pci/sys/arm/tegra/std.tegra2#2 integrate
.. //depot/projects/pci/sys/arm/ti/aintc.c#3 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_dmtimer.c#6 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_lcd.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_prcm.c#5 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_pwm.c#3 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/am335x_usbss.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/files.am335x#5 integrate
.. //depot/projects/pci/sys/arm/ti/am335x/std.am335x#2 integrate
.. //depot/projects/pci/sys/arm/ti/cpsw/if_cpsw.c#4 integrate
.. //depot/projects/pci/sys/arm/ti/omap4/omap4_prcm_clks.c#5 integrate
.. //depot/projects/pci/sys/arm/ti/omap4/std.omap4#2 integrate
.. //depot/projects/pci/sys/arm/ti/ti_edma3.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/ti_gpio.c#4 integrate
.. //depot/projects/pci/sys/arm/ti/ti_i2c.c#3 integrate
.. //depot/projects/pci/sys/arm/ti/ti_mbox.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/ti_mmchs.c#5 integrate
.. //depot/projects/pci/sys/arm/ti/ti_pruss.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/ti_scm.c#4 integrate
.. //depot/projects/pci/sys/arm/ti/ti_sdhci.c#3 integrate
.. //depot/projects/pci/sys/arm/ti/ti_sdma.c#2 integrate
.. //depot/projects/pci/sys/arm/ti/usb/omap_ehci.c#2 integrate
.. //depot/projects/pci/sys/arm/versatile/if_smc_fdt.c#3 integrate
.. //depot/projects/pci/sys/arm/versatile/pl050.c#3 integrate
.. //depot/projects/pci/sys/arm/versatile/sp804.c#5 integrate
.. //depot/projects/pci/sys/arm/versatile/versatile_clcd.c#3 integrate
.. //depot/projects/pci/sys/arm/versatile/versatile_pci.c#5 integrate
.. //depot/projects/pci/sys/arm/versatile/versatile_sic.c#3 integrate
.. //depot/projects/pci/sys/arm/xilinx/std.zynq7#2 integrate
.. //depot/projects/pci/sys/arm/xilinx/zy7_devcfg.c#2 integrate
.. //depot/projects/pci/sys/arm/xilinx/zy7_ehci.c#2 integrate
.. //depot/projects/pci/sys/arm/xilinx/zy7_gpio.c#2 integrate
.. //depot/projects/pci/sys/arm/xilinx/zy7_slcr.c#2 integrate
.. //depot/projects/pci/sys/arm/xscale/ixp425/std.avila#3 integrate
.. //depot/projects/pci/sys/boot/common/load_elf32.c#3 integrate
.. //depot/projects/pci/sys/boot/common/load_elf32_obj.c#3 integrate
.. //depot/projects/pci/sys/boot/fdt/dts/bindings-gpio.txt#3 integrate
.. //depot/projects/pci/sys/boot/fdt/dts/vybrid-colibri-vf50.dts#1 branch
.. //depot/projects/pci/sys/boot/fdt/dts/vybrid-cosmic.dts#2 integrate
.. //depot/projects/pci/sys/boot/fdt/dts/vybrid.dtsi#2 integrate
.. //depot/projects/pci/sys/boot/i386/cdboot/cdboot.S#2 integrate
.. //depot/projects/pci/sys/boot/i386/gptboot/gptboot.8#2 integrate
.. //depot/projects/pci/sys/boot/i386/pxeldr/pxeldr.S#3 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/Makefile#4 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/biossmap.c#1 branch
.. //depot/projects/pci/sys/boot/userboot/userboot/bootinfo32.c#3 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/bootinfo64.c#3 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/elf32_freebsd.c#4 integrate
.. //depot/projects/pci/sys/boot/userboot/userboot/libuserboot.h#3 integrate
.. //depot/projects/pci/sys/cam/cam_xpt.c#16 integrate
.. //depot/projects/pci/sys/cam/scsi/scsi_da.c#13 integrate
.. //depot/projects/pci/sys/compat/freebsd32/freebsd32_misc.c#15 integrate
.. //depot/projects/pci/sys/conf/Makefile.amd64#7 integrate
.. //depot/projects/pci/sys/conf/Makefile.arm#9 integrate
.. //depot/projects/pci/sys/conf/Makefile.i386#5 integrate
.. //depot/projects/pci/sys/conf/Makefile.ia64#3 integrate
.. //depot/projects/pci/sys/conf/Makefile.mips#5 integrate
.. //depot/projects/pci/sys/conf/Makefile.pc98#3 integrate
.. //depot/projects/pci/sys/conf/Makefile.powerpc#4 integrate
.. //depot/projects/pci/sys/conf/Makefile.sparc64#3 integrate
.. //depot/projects/pci/sys/conf/NOTES#17 integrate
.. //depot/projects/pci/sys/conf/files#20 integrate
.. //depot/projects/pci/sys/conf/files.powerpc#13 integrate
.. //depot/projects/pci/sys/conf/kern.mk#11 integrate
.. //depot/projects/pci/sys/conf/kern.pre.mk#12 integrate
.. //depot/projects/pci/sys/conf/ldscript.arm#4 integrate
.. //depot/projects/pci/sys/conf/newvers.sh#11 integrate
.. //depot/projects/pci/sys/conf/options#19 integrate
.. //depot/projects/pci/sys/conf/options.arm#8 integrate
.. //depot/projects/pci/sys/dev/acpica/acpi.c#13 integrate
.. //depot/projects/pci/sys/dev/adb/adb_kbd.c#6 integrate
.. //depot/projects/pci/sys/dev/adb/adb_mouse.c#4 integrate
.. //depot/projects/pci/sys/dev/altera/atse/if_atse_fdt.c#3 integrate
.. //depot/projects/pci/sys/dev/altera/avgen/altera_avgen_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/altera/sdcard/altera_sdcard_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/ata/chipsets/ata-fsl.c#2 integrate
.. //depot/projects/pci/sys/dev/cesa/cesa.c#5 integrate
.. //depot/projects/pci/sys/dev/cfi/cfi_bus_fdt.c#4 integrate
.. //depot/projects/pci/sys/dev/drm/drmP.h#4 integrate
.. //depot/projects/pci/sys/dev/drm2/radeon/r600.c#2 integrate
.. //depot/projects/pci/sys/dev/drm2/radeon/rv770.c#2 integrate
.. //depot/projects/pci/sys/dev/e1000/e1000_defines.h#7 integrate
.. //depot/projects/pci/sys/dev/e1000/if_igb.c#17 integrate
.. //depot/projects/pci/sys/dev/fdt/fdt_common.c#8 integrate
.. //depot/projects/pci/sys/dev/fdt/fdt_ic_if.m#2 delete
.. //depot/projects/pci/sys/dev/fdt/fdtbus.c#10 delete
.. //depot/projects/pci/sys/dev/fdt/simplebus.c#7 integrate
.. //depot/projects/pci/sys/dev/ffec/if_ffec.c#3 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_core.c#10 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_mpc7xxx.c#2 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_piv.c#3 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_powerpc.c#6 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_powerpc.h#2 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_ppc970.c#1 branch
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_ppro.c#3 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_uncore.c#6 integrate
.. //depot/projects/pci/sys/dev/hwpmc/hwpmc_x86.c#4 integrate
.. //depot/projects/pci/sys/dev/hwpmc/pmc_events.h#8 integrate
.. //depot/projects/pci/sys/dev/iicbus/adt746x.c#1 branch
.. //depot/projects/pci/sys/dev/isp/isp_library.c#4 integrate
.. //depot/projects/pci/sys/dev/mfi/mfi_pci.c#6 integrate
.. //depot/projects/pci/sys/dev/mfi/mfivar.h#5 integrate
.. //depot/projects/pci/sys/dev/mge/if_mge.c#6 integrate
.. //depot/projects/pci/sys/dev/mmc/mmc.c#8 integrate
.. //depot/projects/pci/sys/dev/mvs/mvs_soc.c#7 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_bus.h#4 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_bus_if.m#4 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_bus_subr.c#6 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_bus_subr.h#5 integrate
.. //depot/projects/pci/sys/dev/ofw/ofw_nexus.c#2 delete
.. //depot/projects/pci/sys/dev/ofw/ofw_nexus.h#2 delete
.. //depot/projects/pci/sys/dev/ofw/ofwbus.c#1 branch
.. //depot/projects/pci/sys/dev/pccbb/pccbb.c#8 integrate
.. //depot/projects/pci/sys/dev/pci/pci.c#55 integrate
.. //depot/projects/pci/sys/dev/pci/pci_subr.c#11 integrate
.. //depot/projects/pci/sys/dev/pci/vga_pci.c#7 integrate
.. //depot/projects/pci/sys/dev/powermac_nvram/powermac_nvram.c#3 integrate
.. //depot/projects/pci/sys/dev/quicc/quicc_bfe_fdt.c#4 integrate
.. //depot/projects/pci/sys/dev/sdhci/sdhci_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/sec/sec.c#4 integrate
.. //depot/projects/pci/sys/dev/sound/pci/hda/hdaa_patches.c#5 integrate
.. //depot/projects/pci/sys/dev/sound/pci/hda/hdac.h#7 integrate
.. //depot/projects/pci/sys/dev/terasic/de4led/terasic_de4led_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/terasic/mtl/terasic_mtl_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/tsec/if_tsec_fdt.c#6 integrate
.. //depot/projects/pci/sys/dev/uart/uart.h#7 integrate
.. //depot/projects/pci/sys/dev/uart/uart_bus_fdt.c#9 integrate
.. //depot/projects/pci/sys/dev/uart/uart_cpu_fdt.c#5 integrate
.. //depot/projects/pci/sys/dev/usb/controller/dwc_otg_fdt.c#2 integrate
.. //depot/projects/pci/sys/dev/usb/controller/ehci.c#10 integrate
.. //depot/projects/pci/sys/dev/usb/controller/ehci_fsl.c#2 integrate
.. //depot/projects/pci/sys/dev/usb/controller/ehci_imx.c#3 integrate
.. //depot/projects/pci/sys/dev/usb/controller/ehci_mv.c#6 integrate
.. //depot/projects/pci/sys/dev/usb/input/ukbd.c#12 integrate
.. //depot/projects/pci/sys/dev/usb/input/wsp.c#1 branch
.. //depot/projects/pci/sys/dev/usb/quirk/usb_quirk.c#8 integrate
.. //depot/projects/pci/sys/dev/usb/usb_busdma.c#6 integrate
.. //depot/projects/pci/sys/dev/usb/usb_dev.c#7 integrate
.. //depot/projects/pci/sys/dev/usb/usb_freebsd.h#6 integrate
.. //depot/projects/pci/sys/dev/usb/usb_freebsd_loader.h#2 integrate
.. //depot/projects/pci/sys/dev/usb/usb_hub.c#12 integrate
.. //depot/projects/pci/sys/dev/usb/usb_transfer.c#9 integrate
.. //depot/projects/pci/sys/dev/usb/usbdevs#17 integrate
.. //depot/projects/pci/sys/dev/usb/wlan/if_run.c#13 integrate
.. //depot/projects/pci/sys/dev/usb/wlan/if_runvar.h#8 integrate
.. //depot/projects/pci/sys/dev/usb/wlan/if_urtwn.c#5 integrate
.. //depot/projects/pci/sys/dev/virtio/network/if_vtnet.c#7 integrate
.. //depot/projects/pci/sys/dev/virtio/network/if_vtnetvar.h#5 integrate
.. //depot/projects/pci/sys/dev/virtio/scsi/virtio_scsi.c#5 integrate
.. //depot/projects/pci/sys/dev/vt/hw/ofwfb/ofwfb.c#2 integrate
.. //depot/projects/pci/sys/dev/watchdog/watchdog.c#6 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_alloc.c#8 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_bmap.c#6 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_dinode.h#9 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_htree.c#3 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_inode_cnv.c#8 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_lookup.c#10 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_subr.c#6 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_vfsops.c#10 integrate
.. //depot/projects/pci/sys/fs/ext2fs/ext2_vnops.c#10 integrate
.. //depot/projects/pci/sys/fs/ext2fs/inode.h#8 integrate
.. //depot/projects/pci/sys/geom/geom_ctl.c#3 integrate
.. //depot/projects/pci/sys/geom/uncompress/g_uncompress.c#4 integrate
.. //depot/projects/pci/sys/i386/i386/machdep.c#12 integrate
.. //depot/projects/pci/sys/i386/i386/mp_watchdog.c#3 integrate
.. //depot/projects/pci/sys/i386/i386/pmap.c#11 integrate
.. //depot/projects/pci/sys/i386/include/apicvar.h#6 delete
.. //depot/projects/pci/sys/i386/include/smp.h#5 integrate
.. //depot/projects/pci/sys/i386/xen/mptable.c#5 integrate
.. //depot/projects/pci/sys/kern/capabilities.conf#8 integrate
.. //depot/projects/pci/sys/kern/init_sysent.c#10 integrate
.. //depot/projects/pci/sys/kern/kern_jail.c#14 integrate
.. //depot/projects/pci/sys/kern/kern_ktr.c#6 integrate
.. //depot/projects/pci/sys/kern/kern_rwlock.c#8 integrate
.. //depot/projects/pci/sys/kern/sched_ule.c#13 integrate
.. //depot/projects/pci/sys/kern/subr_lock.c#5 integrate
.. //depot/projects/pci/sys/kern/subr_prf.c#6 integrate
.. //depot/projects/pci/sys/kern/subr_sleepqueue.c#6 integrate
.. //depot/projects/pci/sys/kern/subr_smp.c#10 integrate
.. //depot/projects/pci/sys/kern/uipc_shm.c#9 integrate
.. //depot/projects/pci/sys/kern/vfs_syscalls.c#12 integrate
.. //depot/projects/pci/sys/mips/atheros/ar724xreg.h#6 integrate
.. //depot/projects/pci/sys/mips/beri/beri_pic.c#2 integrate
.. //depot/projects/pci/sys/mips/beri/beri_simplebus.c#1 branch
.. //depot/projects/pci/sys/mips/beri/fdt_ic_if.m#1 branch
.. //depot/projects/pci/sys/mips/beri/files.beri#4 integrate
.. //depot/projects/pci/sys/mips/mips/machdep.c#7 integrate
.. //depot/projects/pci/sys/mips/mips/nexus.c#6 integrate
.. //depot/projects/pci/sys/modules/hwpmc/Makefile#4 integrate
.. //depot/projects/pci/sys/modules/usb/Makefile#11 integrate
.. //depot/projects/pci/sys/modules/usb/wsp/Makefile#1 branch
.. //depot/projects/pci/sys/netinet/ip_mroute.c#9 integrate
.. //depot/projects/pci/sys/netinet/tcp_input.c#14 integrate
.. //depot/projects/pci/sys/netinet/tcp_syncache.c#11 integrate
.. //depot/projects/pci/sys/netinet/tcp_usrreq.c#9 integrate
.. //depot/projects/pci/sys/netinet6/nd6.c#15 integrate
.. //depot/projects/pci/sys/netpfil/ipfw/ip_fw2.c#5 integrate
.. //depot/projects/pci/sys/netpfil/ipfw/ip_fw_private.h#4 integrate
.. //depot/projects/pci/sys/netpfil/ipfw/ip_fw_sockopt.c#4 integrate
.. //depot/projects/pci/sys/netpfil/pf/pf.c#6 integrate
.. //depot/projects/pci/sys/netpfil/pf/pf_ioctl.c#4 integrate
.. //depot/projects/pci/sys/opencrypto/cryptosoft.c#3 integrate
.. //depot/projects/pci/sys/pc98/include/apicvar.h#3 delete
.. //depot/projects/pci/sys/pc98/pc98/machdep.c#11 integrate
.. //depot/projects/pci/sys/powerpc/aim/machdep.c#11 integrate
.. //depot/projects/pci/sys/powerpc/aim/mmu_oea.c#11 integrate
.. //depot/projects/pci/sys/powerpc/aim/mp_cpudep.c#8 integrate
.. //depot/projects/pci/sys/powerpc/aim/trap_subr32.S#9 integrate
.. //depot/projects/pci/sys/powerpc/aim/trap_subr64.S#10 integrate
.. //depot/projects/pci/sys/powerpc/booke/pmap.c#11 integrate
.. //depot/projects/pci/sys/powerpc/conf/GENERIC#11 integrate
.. //depot/projects/pci/sys/powerpc/conf/MPC85XX#7 integrate
.. //depot/projects/pci/sys/powerpc/include/cpu.h#5 integrate
.. //depot/projects/pci/sys/powerpc/include/platform.h#4 integrate
.. //depot/projects/pci/sys/powerpc/include/pmc_mdep.h#6 integrate
.. //depot/projects/pci/sys/powerpc/include/spr.h#8 integrate
.. //depot/projects/pci/sys/powerpc/mambo/mambo.c#4 integrate
.. //depot/projects/pci/sys/powerpc/mpc85xx/lbc.c#4 integrate
.. //depot/projects/pci/sys/powerpc/mpc85xx/pci_mpc85xx.c#2 integrate
.. //depot/projects/pci/sys/powerpc/ofw/ofw_cpu.c#6 integrate
.. //depot/projects/pci/sys/powerpc/ofw/ofw_pci.c#5 integrate
.. //depot/projects/pci/sys/powerpc/ofw/ofw_pcib_pci.c#6 integrate
.. //depot/projects/pci/sys/powerpc/ofw/ofw_pcibus.c#7 integrate
.. //depot/projects/pci/sys/powerpc/ofw/openpic_ofw.c#3 integrate
.. //depot/projects/pci/sys/powerpc/powermac/cpcht.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powermac/grackle.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powermac/platform_powermac.c#8 integrate
.. //depot/projects/pci/sys/powerpc/powermac/pmu.c#6 integrate
.. //depot/projects/pci/sys/powerpc/powermac/smu.c#8 integrate
.. //depot/projects/pci/sys/powerpc/powermac/uninorth.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powermac/uninorthpci.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/exec_machdep.c#6 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/genassym.c#5 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/mp_machdep.c#10 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/nexus.c#3 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/platform.c#7 integrate
.. //depot/projects/pci/sys/powerpc/powerpc/platform_if.m#5 integrate
.. //depot/projects/pci/sys/powerpc/pseries/rtas_dev.c#2 integrate
.. //depot/projects/pci/sys/powerpc/pseries/rtas_pci.c#3 integrate
.. //depot/projects/pci/sys/powerpc/pseries/vdevice.c#3 integrate
.. //depot/projects/pci/sys/powerpc/pseries/xics.c#2 integrate
.. //depot/projects/pci/sys/powerpc/psim/iobus.c#3 integrate
.. //depot/projects/pci/sys/rpc/svc.c#7 integrate
.. //depot/projects/pci/sys/sys/_rwlock.h#3 integrate
.. //depot/projects/pci/sys/sys/elf_common.h#8 integrate
.. //depot/projects/pci/sys/sys/jail.h#9 integrate
.. //depot/projects/pci/sys/sys/lock.h#7 integrate
.. //depot/projects/pci/sys/sys/mutex.h#6 integrate
.. //depot/projects/pci/sys/sys/param.h#18 integrate
.. //depot/projects/pci/sys/sys/pmc.h#6 integrate
.. //depot/projects/pci/sys/sys/refcount.h#3 integrate
.. //depot/projects/pci/sys/sys/rwlock.h#6 integrate
.. //depot/projects/pci/sys/sys/sleepqueue.h#4 integrate
.. //depot/projects/pci/sys/sys/systm.h#15 integrate
.. //depot/projects/pci/sys/sys/turnstile.h#3 integrate
.. //depot/projects/pci/sys/vm/vm_fault.c#13 integrate
.. //depot/projects/pci/sys/vm/vm_page.c#14 integrate
.. //depot/projects/pci/sys/x86/acpica/madt.c#6 integrate
.. //depot/projects/pci/sys/x86/acpica/srat.c#6 integrate
.. //depot/projects/pci/sys/x86/include/apicvar.h#1 branch
.. //depot/projects/pci/sys/x86/include/specialreg.h#5 integrate
.. //depot/projects/pci/sys/x86/isa/atpic.c#4 integrate
.. //depot/projects/pci/sys/x86/isa/elcr.c#3 integrate
.. //depot/projects/pci/sys/x86/x86/intr_machdep.c#4 integrate
.. //depot/projects/pci/sys/x86/x86/io_apic.c#6 integrate
.. //depot/projects/pci/sys/x86/x86/local_apic.c#8 integrate
.. //depot/projects/pci/sys/x86/x86/mca.c#5 integrate
.. //depot/projects/pci/sys/x86/x86/mptable.c#14 integrate
.. //depot/projects/pci/sys/x86/x86/mptable_pci.c#20 integrate
.. //depot/projects/pci/sys/x86/x86/msi.c#3 integrate
.. //depot/projects/pci/sys/x86/xen/xen_intr.c#2 integrate

Differences ...

==== //depot/projects/pci/sys/amd64/amd64/db_disasm.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/amd64/amd64/db_disasm.c 255192 2013-09-03 21:21:47Z jhb $");
+__FBSDID("$FreeBSD: head/sys/amd64/amd64/db_disasm.c 261213 2014-01-27 18:53:18Z jhb $");
 
 /*
  * Instruction disassembler.
@@ -1353,6 +1353,16 @@
 			i_size = NONE;
 			i_mode = 0;
 			break;
+		case 0xca:
+			i_name = "clac";
+			i_size = NONE;
+			i_mode = 0;
+			break;
+		case 0xcb:
+			i_name = "stac";
+			i_size = NONE;
+			i_mode = 0;
+			break;
 		case 0xd0:
 			i_name = "xgetbv";
 			i_size = NONE;

==== //depot/projects/pci/sys/amd64/amd64/machdep.c#13 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/amd64/amd64/machdep.c 259782 2013-12-23 19:48:22Z jhb $");
+__FBSDID("$FreeBSD: head/sys/amd64/amd64/machdep.c 261087 2014-01-23 20:10:22Z jhb $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -140,7 +140,7 @@
 #ifdef DEV_ATPIC
 #include <x86/isa/icu.h>
 #else
-#include <machine/apicvar.h>
+#include <x86/apicvar.h>
 #endif
 
 #include <isa/isareg.h>

==== //depot/projects/pci/sys/amd64/amd64/mp_watchdog.c#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/amd64/mp_watchdog.c 214631 2010-11-01 18:18:46Z jhb $
+ * $FreeBSD: head/sys/amd64/amd64/mp_watchdog.c 261087 2014-01-23 20:10:22Z jhb $
  */
 
 #include "opt_mp_watchdog.h"
@@ -45,7 +45,7 @@
 
 #include <machine/smp.h>
 #include <x86/apicreg.h>
-#include <machine/apicvar.h>
+#include <x86/apicvar.h>
 #include <machine/mp_watchdog.h>
 
 /*

==== //depot/projects/pci/sys/amd64/amd64/pmap.c#14 (text+ko) ====

@@ -79,7 +79,7 @@
 #define	AMD64_NPT_AWARE
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 260205 2014-01-02 18:50:52Z kib $");
+__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 261148 2014-01-25 06:58:41Z grehan $");
 
 /*
  *	Manages physical address maps.
@@ -135,7 +135,7 @@
 #include <vm/uma.h>
 
 #include <machine/intr_machdep.h>
-#include <machine/apicvar.h>
+#include <x86/apicvar.h>
 #include <machine/cpu.h>
 #include <machine/cputypes.h>
 #include <machine/md_var.h>
@@ -5575,7 +5575,7 @@
 	KASSERT(pmap->pm_type == PT_EPT, ("invalid pm_type %d", pmap->pm_type));
 
 	/*
-	 * RWX = 010 or 110 will cause an unconditional EPT misconfiguration
+	 * XWR = 010 or 110 will cause an unconditional EPT misconfiguration
 	 * so we don't let the referenced (aka EPT_PG_READ) bit to be cleared
 	 * if the EPT_PG_WRITE bit is set.
 	 */
@@ -5583,7 +5583,7 @@
 		return (FALSE);
 
 	/*
-	 * RWX = 100 is allowed only if the PMAP_SUPPORTS_EXEC_ONLY is set.
+	 * XWR = 100 is allowed only if the PMAP_SUPPORTS_EXEC_ONLY is set.
 	 */
 	if ((pte & EPT_PG_EXECUTE) == 0 ||
 	    ((pmap->pm_flags & PMAP_SUPPORTS_EXEC_ONLY) != 0))

==== //depot/projects/pci/sys/amd64/include/smp.h#6 (text+ko) ====

@@ -6,7 +6,7 @@
  * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
  * ----------------------------------------------------------------------------
  *
- * $FreeBSD: head/sys/amd64/include/smp.h 255217 2013-09-04 23:31:29Z kib $
+ * $FreeBSD: head/sys/amd64/include/smp.h 261087 2014-01-23 20:10:22Z jhb $
  *
  */
 
@@ -22,7 +22,7 @@
 #include <sys/bus.h>
 #include <machine/frame.h>
 #include <machine/intr_machdep.h>
-#include <machine/apicvar.h>
+#include <x86/apicvar.h>
 #include <machine/pcb.h>
 
 /* global symbols in mpboot.S */

==== //depot/projects/pci/sys/amd64/include/vmm.h#9 (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 260619 2014-01-14 01:55:58Z neel $
+ * $FreeBSD: head/sys/amd64/include/vmm.h 261504 2014-02-05 04:39:03Z jhb $
  */
 
 #ifndef _VMM_H_
@@ -298,6 +298,7 @@
 	VM_EXITCODE_SPINUP_AP,
 	VM_EXITCODE_SPINDOWN_CPU,
 	VM_EXITCODE_RENDEZVOUS,
+	VM_EXITCODE_IOAPIC_EOI,
 	VM_EXITCODE_MAX
 };
 
@@ -322,6 +323,8 @@
 			uint64_t	gpa;
 			uint64_t	gla;
 			uint64_t	cr3;
+			enum vie_cpu_mode cpu_mode;
+			enum vie_paging_mode paging_mode;
 			struct vie	vie;
 		} inst_emul;
 		/*
@@ -354,6 +357,9 @@
 		struct {
 			uint64_t	rflags;
 		} hlt;
+		struct {
+			int		vector;
+		} ioapic_eoi;
 	} u;
 };
 

==== //depot/projects/pci/sys/amd64/include/vmm_dev.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/include/vmm_dev.h 259779 2013-12-23 19:29:07Z jhb $
+ * $FreeBSD: head/sys/amd64/include/vmm_dev.h 261268 2014-01-29 14:56:48Z jhb $
  */
 
 #ifndef	_VMM_DEV_H_
@@ -181,7 +181,8 @@
 	IOCNUM_IOAPIC_DEASSERT_IRQ = 34,
 	IOCNUM_IOAPIC_PULSE_IRQ = 35,
 	IOCNUM_LAPIC_MSI = 36,
-	IOCNUM_LAPIC_LOCAL_IRQ = 37, 
+	IOCNUM_LAPIC_LOCAL_IRQ = 37,
+	IOCNUM_IOAPIC_PINCOUNT = 38,
 
 	/* PCI pass-thru */
 	IOCNUM_BIND_PPTDEV = 40,
@@ -228,6 +229,8 @@
 	_IOW('v', IOCNUM_IOAPIC_DEASSERT_IRQ, struct vm_ioapic_irq)
 #define	VM_IOAPIC_PULSE_IRQ	\
 	_IOW('v', IOCNUM_IOAPIC_PULSE_IRQ, struct vm_ioapic_irq)
+#define	VM_IOAPIC_PINCOUNT	\
+	_IOR('v', IOCNUM_IOAPIC_PINCOUNT, int)
 #define	VM_SET_CAPABILITY \
 	_IOW('v', IOCNUM_SET_CAPABILITY, struct vm_capability)
 #define	VM_GET_CAPABILITY \

==== //depot/projects/pci/sys/amd64/include/vmm_instruction_emul.h#4 (text+ko) ====

@@ -23,12 +23,24 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: head/sys/amd64/include/vmm_instruction_emul.h 256072 2013-10-05 21:22:35Z neel $
+ * $FreeBSD: head/sys/amd64/include/vmm_instruction_emul.h 261504 2014-02-05 04:39:03Z jhb $
  */
 
 #ifndef	_VMM_INSTRUCTION_EMUL_H_
 #define	_VMM_INSTRUCTION_EMUL_H_
 
+enum vie_cpu_mode {
+	CPU_MODE_COMPATIBILITY,		/* IA-32E mode (CS.L = 0) */
+	CPU_MODE_64BIT,			/* IA-32E mode (CS.L = 1) */
+};
+
+enum vie_paging_mode {
+	PAGING_MODE_FLAT,
+	PAGING_MODE_32,
+	PAGING_MODE_PAE,
+	PAGING_MODE_64,
+};
+
 /*
  * The data structures 'vie' and 'vie_op' are meant to be opaque to the
  * consumers of instruction decoding. The only reason why their contents
@@ -107,7 +119,7 @@
  */
 int vmm_fetch_instruction(struct vm *vm, int cpuid,
 			  uint64_t rip, int inst_length, uint64_t cr3,
-			  struct vie *vie);
+			  enum vie_paging_mode paging_mode, struct vie *vie);
 
 void vie_init(struct vie *vie);
 
@@ -123,8 +135,8 @@
  * in VIE_INVALID_GLA instead.
  */
 #define	VIE_INVALID_GLA		(1UL << 63)	/* a non-canonical address */
-int vmm_decode_instruction(struct vm *vm, int cpuid,
-			   uint64_t gla, struct vie *vie);
+int vmm_decode_instruction(struct vm *vm, int cpuid, uint64_t gla,
+			   enum vie_cpu_mode cpu_mode, struct vie *vie);
 #endif	/* _KERNEL */
 
 #endif	/* _VMM_INSTRUCTION_EMUL_H_ */

==== //depot/projects/pci/sys/amd64/vmm/intel/vmcs.h#8 (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 260836 2014-01-18 02:20:10Z neel $
+ * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.h 261170 2014-01-25 20:58:05Z neel $
  */
 
 #ifndef _VMCS_H_
@@ -136,6 +136,7 @@
 #define	VMCS_EOI_EXIT1			0x0000201E
 #define	VMCS_EOI_EXIT2			0x00002020
 #define	VMCS_EOI_EXIT3			0x00002022
+#define	VMCS_EOI_EXIT(vector)		(VMCS_EOI_EXIT0 + ((vector) / 64) * 2)
 
 /* 64-bit read-only fields */
 #define	VMCS_GUEST_PHYSICAL_ADDRESS	0x00002400
@@ -318,6 +319,7 @@
 #define EXIT_REASON_MCE			41
 #define EXIT_REASON_TPR			43
 #define EXIT_REASON_APIC_ACCESS		44
+#define	EXIT_REASON_VIRTUALIZED_EOI	45
 #define EXIT_REASON_GDTR_IDTR		46
 #define EXIT_REASON_LDTR_TR		47
 #define EXIT_REASON_EPT_FAULT		48

==== //depot/projects/pci/sys/amd64/vmm/intel/vmx.c#11 (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 260863 2014-01-18 21:47:12Z neel $
+ * $FreeBSD: head/sys/amd64/vmm/intel/vmx.c 261504 2014-02-05 04:39:03Z jhb $
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmx.c 260863 2014-01-18 21:47:12Z neel $");
+__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmx.c 261504 2014-02-05 04:39:03Z jhb $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -907,7 +907,6 @@
 			panic("vmx_setup_cr4_shadow %d", error);
 
 		vmx->ctx[i].pmap = pmap;
-		vmx->ctx[i].eptp = vmx->eptp;
 	}
 
 	return (vmx);
@@ -955,20 +954,20 @@
 #endif
 }
 
+static VMM_STAT_INTEL(VCPU_INVVPID_SAVED, "Number of vpid invalidations saved");
+
 static void
-vmx_set_pcpu_defaults(struct vmx *vmx, int vcpu)
+vmx_set_pcpu_defaults(struct vmx *vmx, int vcpu, pmap_t pmap)
 {
-	int lastcpu;
 	struct vmxstate *vmxstate;
-	struct invvpid_desc invvpid_desc = { 0 };
+	struct invvpid_desc invvpid_desc;
 
 	vmxstate = &vmx->state[vcpu];
-	lastcpu = vmxstate->lastcpu;
+	if (vmxstate->lastcpu == curcpu)
+		return;
+
 	vmxstate->lastcpu = curcpu;
 
-	if (lastcpu == curcpu)
-		return;
-
 	vmm_stat_incr(vmx->vm, vcpu, VCPU_MIGRATIONS, 1);
 
 	vmcs_write(VMCS_HOST_TR_BASE, vmm_get_host_trbase());
@@ -991,8 +990,20 @@
 	 * for "all" EP4TAs.
 	 */
 	if (vmxstate->vpid != 0) {
-		invvpid_desc.vpid = vmxstate->vpid;
-		invvpid(INVVPID_TYPE_SINGLE_CONTEXT, invvpid_desc);
+		if (pmap->pm_eptgen == vmx->eptgen[curcpu]) {
+			invvpid_desc._res1 = 0;
+			invvpid_desc._res2 = 0;
+			invvpid_desc.vpid = vmxstate->vpid;
+			invvpid(INVVPID_TYPE_SINGLE_CONTEXT, invvpid_desc);
+		} else {
+			/*
+			 * The invvpid can be skipped if an invept is going to
+			 * be performed before entering the guest. The invept
+			 * will invalidate combined mappings tagged with
+			 * 'vmx->eptp' for all vpids.
+			 */
+			vmm_stat_incr(vmx->vm, vcpu, VCPU_INVVPID_SAVED, 1);
+		}
 	}
 }
 
@@ -1121,15 +1132,15 @@
 	}
 
 	/*
-	 * If there is already an interrupt pending then just return. This
-	 * could happen for multiple reasons:
-	 * - A vectoring VM-entry was aborted due to astpending or rendezvous.
-	 * - A VM-exit happened during event injection.
-	 * - A NMI was injected above or after "NMI window exiting" VM-exit.
+	 * If interrupt-window exiting is already in effect then don't bother
+	 * checking for pending interrupts. This is just an optimization and
+	 * not needed for correctness.
 	 */
-	info = vmcs_read(VMCS_ENTRY_INTR_INFO);
-	if (info & VMCS_INTR_VALID)
+	if ((vmx->cap[vcpu].proc_ctls & PROCBASED_INT_WINDOW_EXITING) != 0) {
+		VCPU_CTR0(vmx->vm, vcpu, "Skip interrupt injection due to "
+		    "pending int_window_exiting");
 		return;
+	}
 
 	/* Ask the local apic for a vector to inject */
 	if (!vlapic_pending_intr(vlapic, &vector))
@@ -1139,12 +1150,31 @@
 
 	/* Check RFLAGS.IF and the interruptibility state of the guest */
 	rflags = vmcs_read(VMCS_GUEST_RFLAGS);
-	if ((rflags & PSL_I) == 0)
+	if ((rflags & PSL_I) == 0) {
+		VCPU_CTR2(vmx->vm, vcpu, "Cannot inject vector %d due to "
+		    "rflags %#lx", vector, rflags);
 		goto cantinject;
+	}
 
 	gi = vmcs_read(VMCS_GUEST_INTERRUPTIBILITY);
-	if (gi & HWINTR_BLOCKING)
+	if (gi & HWINTR_BLOCKING) {
+		VCPU_CTR2(vmx->vm, vcpu, "Cannot inject vector %d due to "
+		    "Guest Interruptibility-state %#x", vector, gi);
+		goto cantinject;
+	}
+
+	info = vmcs_read(VMCS_ENTRY_INTR_INFO);
+	if (info & VMCS_INTR_VALID) {
+		/*
+		 * This is expected and could happen for multiple reasons:
+		 * - A vectoring VM-entry was aborted due to astpending
+		 * - A VM-exit happened during event injection.
+		 * - An NMI was injected above or after "NMI window exiting"
+		 */
+		VCPU_CTR2(vmx->vm, vcpu, "Cannot inject vector %d due to "
+		    "VM-entry intr info %#x", vector, info);
 		goto cantinject;
+	}
 
 	/* Inject the interrupt */
 	info = VMCS_INTR_T_HWINTR | VMCS_INTR_VALID;
@@ -1308,6 +1338,30 @@
 	return (HANDLED);
 }
 
+static enum vie_cpu_mode
+vmx_cpu_mode(void)
+{
+
+	if (vmcs_read(VMCS_GUEST_IA32_EFER) & EFER_LMA)
+		return (CPU_MODE_64BIT);
+	else
+		return (CPU_MODE_COMPATIBILITY);
+}
+
+static enum vie_paging_mode
+vmx_paging_mode(void)
+{
+
+	if (!(vmcs_read(VMCS_GUEST_CR0) & CR0_PG))
+		return (PAGING_MODE_FLAT);
+	if (!(vmcs_read(VMCS_GUEST_CR4) & CR4_PAE))
+		return (PAGING_MODE_32);
+	if (vmcs_read(VMCS_GUEST_IA32_EFER) & EFER_LME)
+		return (PAGING_MODE_64);
+	else
+		return (PAGING_MODE_PAE);
+}
+
 static int
 ept_fault_type(uint64_t ept_qual)
 {
@@ -1467,6 +1521,8 @@
 		vmexit->u.inst_emul.gpa = DEFAULT_APIC_BASE + offset;
 		vmexit->u.inst_emul.gla = VIE_INVALID_GLA;
 		vmexit->u.inst_emul.cr3 = vmcs_guest_cr3();
+		vmexit->u.inst_emul.cpu_mode = vmx_cpu_mode();
+		vmexit->u.inst_emul.paging_mode = vmx_paging_mode();
 	}
 
 	/*
@@ -1491,6 +1547,7 @@
 	bool retu;
 
 	CTASSERT((PINBASED_CTLS_ONE_SETTING & PINBASED_VIRTUAL_NMI) != 0);
+	CTASSERT((PINBASED_CTLS_ONE_SETTING & PINBASED_NMI_EXITING) != 0);
 
 	handled = 0;
 	vmxctx = &vmx->ctx[vcpu];
@@ -1643,9 +1700,11 @@
 		handled = vmx_handle_cpuid(vmx->vm, vcpu, vmxctx);
 		break;
 	case EXIT_REASON_EXCEPTION:
+		vmm_stat_incr(vmx->vm, vcpu, VMEXIT_EXCEPTION, 1);
 		intr_info = vmcs_read(VMCS_EXIT_INTR_INFO);
 		KASSERT((intr_info & VMCS_INTR_VALID) != 0,
 		    ("VM exit interruption info invalid: %#x", intr_info));
+
 		/*
 		 * If Virtual NMIs control is 1 and the VM-exit is due to a
 		 * fault encountered during the execution of IRET then we must
@@ -1658,6 +1717,21 @@
 		    (intr_info & 0xff) != IDT_DF &&
 		    (intr_info & EXIT_QUAL_NMIUDTI) != 0)
 			vmx_restore_nmi_blocking(vmx, vcpu);
+
+		/*
+		 * If the NMI-exiting VM execution control is set to '1'
+		 * then an NMI in non-root operation causes a VM-exit.
+		 * NMI blocking is in effect for this logical processor so
+		 * it is sufficient to simply vector to the NMI handler via
+		 * a software interrupt.
+		 */
+		if ((intr_info & VMCS_INTR_T_MASK) == VMCS_INTR_T_NMI) {
+			KASSERT((intr_info & 0xff) == IDT_NMI, ("VM exit due "
+			    "to NMI has invalid vector: %#x", intr_info));
+			VCPU_CTR0(vmx->vm, vcpu, "Vectoring to NMI handler");
+			__asm __volatile("int $2");
+			return (1);
+		}
 		break;
 	case EXIT_REASON_EPT_FAULT:
 		vmm_stat_incr(vmx->vm, vcpu, VMEXIT_EPT_FAULT, 1);
@@ -1676,6 +1750,8 @@
 			vmexit->u.inst_emul.gpa = gpa;
 			vmexit->u.inst_emul.gla = vmcs_gla();
 			vmexit->u.inst_emul.cr3 = vmcs_guest_cr3();
+			vmexit->u.inst_emul.cpu_mode = vmx_cpu_mode();
+			vmexit->u.inst_emul.paging_mode = vmx_paging_mode();
 		}
 		/*
 		 * If Virtual NMIs control is 1 and the VM-exit is due to an
@@ -1689,6 +1765,11 @@
 		    (qual & EXIT_QUAL_NMIUDTI) != 0)
 			vmx_restore_nmi_blocking(vmx, vcpu);
 		break;
+	case EXIT_REASON_VIRTUALIZED_EOI:
+		vmexit->exitcode = VM_EXITCODE_IOAPIC_EOI;
+		vmexit->u.ioapic_eoi.vector = qual & 0xFF;
+		vmexit->inst_length = 0;	/* trap-like */
+		break;
 	case EXIT_REASON_APIC_ACCESS:
 		handled = vmx_handle_apic_access(vmx, vcpu, vmexit);
 		break;
@@ -1728,6 +1809,8 @@
 			 */
 			vmexit->exitcode = VM_EXITCODE_VMX;
 			vmexit->u.vmx.status = VM_SUCCESS;
+			vmexit->u.vmx.inst_type = 0;
+			vmexit->u.vmx.inst_error = 0;
 		} else {
 			/*
 			 * The exitcode and collateral have been populated.
@@ -1815,8 +1898,6 @@
 
 	KASSERT(vmxctx->pmap == pmap,
 	    ("pmap %p different than ctx pmap %p", pmap, vmxctx->pmap));
-	KASSERT(vmxctx->eptp == vmx->eptp,
-	    ("eptp %p different than ctx eptp %#lx", eptp, vmxctx->eptp));
 
 	VMPTRLD(vmcs);
 
@@ -1831,7 +1912,7 @@
 	vmcs_write(VMCS_HOST_CR3, rcr3());
 
 	vmcs_write(VMCS_GUEST_RIP, startrip);
-	vmx_set_pcpu_defaults(vmx, vcpu);
+	vmx_set_pcpu_defaults(vmx, vcpu, pmap);
 	do {
 		/*

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list