Date: Wed, 5 Feb 2014 19:50:00 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 1190660 for review Message-ID: <201402051950.s15Jo0LH056256@skunkworks.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@1190660?ac=10 Change 1190660 by jhb@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) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402051950.s15Jo0LH056256>