Date: Sat, 28 Dec 2013 17:42:13 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 1189571 for review Message-ID: <201312281742.rBSHgD3H027661@skunkworks.freebsd.org>
index | next in thread | raw e-mail
http://p4web.freebsd.org/@@1189571?ac=10 Change 1189571 by jhb@jhb_pippin on 2013/12/28 17:41:16 IFC @1189568 Affected files ... .. //depot/projects/smpng/share/man/man9/Makefile#41 integrate .. //depot/projects/smpng/share/man/man9/mbuf.9#7 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#122 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#94 integrate .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#134 integrate .. //depot/projects/smpng/sys/amd64/include/cpu.h#16 integrate .. //depot/projects/smpng/sys/amd64/include/pmap.h#49 integrate .. //depot/projects/smpng/sys/amd64/include/vmm.h#7 integrate .. //depot/projects/smpng/sys/amd64/include/vmm_dev.h#6 integrate .. //depot/projects/smpng/sys/amd64/vmm/amd/amdv.c#4 integrate .. //depot/projects/smpng/sys/amd64/vmm/intel/ept.c#5 integrate .. //depot/projects/smpng/sys/amd64/vmm/intel/vmcs.c#6 integrate .. //depot/projects/smpng/sys/amd64/vmm/intel/vmcs.h#6 integrate .. //depot/projects/smpng/sys/amd64/vmm/intel/vmx.c#9 integrate .. //depot/projects/smpng/sys/amd64/vmm/intel/vmx.h#5 integrate .. //depot/projects/smpng/sys/amd64/vmm/intel/vmx_genassym.c#5 integrate .. //depot/projects/smpng/sys/amd64/vmm/io/ppt.c#7 integrate .. //depot/projects/smpng/sys/amd64/vmm/io/ppt.h#4 integrate .. //depot/projects/smpng/sys/amd64/vmm/io/vhpet.c#2 integrate .. //depot/projects/smpng/sys/amd64/vmm/io/vioapic.c#2 integrate .. //depot/projects/smpng/sys/amd64/vmm/io/vlapic.c#6 integrate .. //depot/projects/smpng/sys/amd64/vmm/io/vlapic.h#4 integrate .. //depot/projects/smpng/sys/amd64/vmm/io/vlapic_priv.h#1 branch .. //depot/projects/smpng/sys/amd64/vmm/vmm.c#7 integrate .. //depot/projects/smpng/sys/amd64/vmm/vmm_dev.c#8 integrate .. //depot/projects/smpng/sys/amd64/vmm/vmm_lapic.c#4 integrate .. //depot/projects/smpng/sys/amd64/vmm/vmm_lapic.h#4 integrate .. //depot/projects/smpng/sys/amd64/vmm/vmm_msr.c#5 integrate .. //depot/projects/smpng/sys/amd64/vmm/vmm_msr.h#3 integrate .. //depot/projects/smpng/sys/arm/arm/bus_space-v6.c#2 integrate .. //depot/projects/smpng/sys/arm/arm/cpufunc.c#32 integrate .. //depot/projects/smpng/sys/arm/arm/elf_trampoline.c#33 integrate .. //depot/projects/smpng/sys/arm/arm/identcpu.c#27 integrate .. //depot/projects/smpng/sys/arm/arm/locore.S#29 integrate .. //depot/projects/smpng/sys/arm/arm/pmap-v6.c#11 integrate .. //depot/projects/smpng/sys/arm/arm/swtch.S#27 integrate .. //depot/projects/smpng/sys/arm/at91/if_ate.c#34 integrate .. //depot/projects/smpng/sys/arm/at91/uart_dev_at91usart.c#26 integrate .. //depot/projects/smpng/sys/arm/broadcom/bcm2835/bcm2835_fbd.c#1 branch .. //depot/projects/smpng/sys/arm/broadcom/bcm2835/files.bcm2835#7 integrate .. //depot/projects/smpng/sys/arm/conf/RPI-B#6 integrate .. //depot/projects/smpng/sys/arm/freescale/imx/files.imx51#3 integrate .. //depot/projects/smpng/sys/arm/freescale/imx/files.imx53#4 integrate .. //depot/projects/smpng/sys/arm/freescale/imx/files.imx6#2 integrate .. //depot/projects/smpng/sys/arm/freescale/imx/imx51_ipuv3_fbd.c#1 branch .. //depot/projects/smpng/sys/arm/include/armreg.h#20 integrate .. //depot/projects/smpng/sys/arm/include/cpuconf.h#16 integrate .. //depot/projects/smpng/sys/arm/include/cpufunc.h#23 integrate .. //depot/projects/smpng/sys/arm/include/intr.h#18 integrate .. //depot/projects/smpng/sys/arm/include/md_var.h#11 integrate .. //depot/projects/smpng/sys/arm/mv/mv_pci.c#12 integrate .. //depot/projects/smpng/sys/arm/ti/am335x/am335x_dmtimer.c#5 integrate .. //depot/projects/smpng/sys/arm/ti/files.ti#5 integrate .. //depot/projects/smpng/sys/arm/versatile/bus_space.c#2 integrate .. //depot/projects/smpng/sys/arm/xilinx/zy7_bus_space.c#2 integrate .. //depot/projects/smpng/sys/boot/fdt/dts/beri-netfpga.dts#1 branch .. //depot/projects/smpng/sys/boot/ficl/Makefile#22 integrate .. //depot/projects/smpng/sys/boot/i386/Makefile.inc#14 integrate .. //depot/projects/smpng/sys/boot/i386/boot2/Makefile#28 integrate .. //depot/projects/smpng/sys/boot/ia64/efi/version#8 integrate .. //depot/projects/smpng/sys/boot/pc98/Makefile.inc#11 integrate .. //depot/projects/smpng/sys/boot/pc98/boot2/Makefile#24 integrate .. //depot/projects/smpng/sys/boot/usb/Makefile#2 integrate .. //depot/projects/smpng/sys/boot/usb/Makefile.test#2 integrate .. //depot/projects/smpng/sys/boot/userboot/ficl/Makefile#3 integrate .. //depot/projects/smpng/sys/boot/userboot/libstand/Makefile#6 integrate .. //depot/projects/smpng/sys/boot/zfs/Makefile#9 integrate .. //depot/projects/smpng/sys/cam/cam.h#15 integrate .. //depot/projects/smpng/sys/cam/cam_ccb.h#32 integrate .. //depot/projects/smpng/sys/cam/cam_compat.c#3 integrate .. //depot/projects/smpng/sys/cam/cam_compat.h#3 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_xpt.c#19 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.h#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c#5 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#19 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c#7 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c#9 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c#15 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c#10 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c#17 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_destroy.c#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c#13 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#15 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c#10 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c#19 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c#17 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c#13 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_impl.h#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dnode.h#9 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_dataset.h#13 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zap.h#8 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfeature.h#5 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#22 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c#10 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfeature.c#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#29 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c#17 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c#8 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c#3 integrate .. //depot/projects/smpng/sys/cddl/dev/fbt/fbt_powerpc.c#4 integrate .. //depot/projects/smpng/sys/conf/Makefile.arm#45 integrate .. //depot/projects/smpng/sys/conf/files#294 integrate .. //depot/projects/smpng/sys/conf/files.arm#31 integrate .. //depot/projects/smpng/sys/conf/files.powerpc#84 integrate .. //depot/projects/smpng/sys/conf/kern.mk#40 integrate .. //depot/projects/smpng/sys/conf/options.arm#35 integrate .. //depot/projects/smpng/sys/dev/advansys/adwcam.c#23 integrate .. //depot/projects/smpng/sys/dev/ae/if_ae.c#19 integrate .. //depot/projects/smpng/sys/dev/ahci/ahciem.c#5 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic79xx.c#33 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aic7xxx.c#32 integrate .. //depot/projects/smpng/sys/dev/an/if_an.c#65 integrate .. //depot/projects/smpng/sys/dev/an/if_an_pccard.c#21 integrate .. //depot/projects/smpng/sys/dev/arcmsr/arcmsr.c#36 integrate .. //depot/projects/smpng/sys/dev/arcmsr/arcmsr.h#14 integrate .. //depot/projects/smpng/sys/dev/bxe/bxe.c#4 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_mc5.c#7 integrate .. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#25 integrate .. //depot/projects/smpng/sys/dev/cxgbe/common/common.h#12 integrate .. //depot/projects/smpng/sys/dev/cxgbe/offload.h#11 integrate .. //depot/projects/smpng/sys/dev/cxgbe/t4_main.c#20 integrate .. //depot/projects/smpng/sys/dev/cxgbe/t4_sge.c#17 integrate .. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_cpl_io.c#10 integrate .. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_listen.c#8 integrate .. //depot/projects/smpng/sys/dev/cxgbe/tom/t4_tom.h#8 integrate .. //depot/projects/smpng/sys/dev/drm/mach64_dma.c#9 integrate .. //depot/projects/smpng/sys/dev/drm2/drm_edid.c#5 integrate .. //depot/projects/smpng/sys/dev/drm2/drm_fb_helper.c#5 integrate .. //depot/projects/smpng/sys/dev/drm2/radeon/radeon_fence.c#2 integrate .. //depot/projects/smpng/sys/dev/drm2/radeon/radeon_sa.c#2 integrate .. //depot/projects/smpng/sys/dev/drm2/ttm/ttm_bo.c#4 integrate .. //depot/projects/smpng/sys/dev/drm2/ttm/ttm_bo_vm.c#4 integrate .. //depot/projects/smpng/sys/dev/drm2/ttm/ttm_lock.c#2 integrate .. //depot/projects/smpng/sys/dev/e1000/if_lem.c#20 integrate .. //depot/projects/smpng/sys/dev/fb/fbd.c#2 integrate .. //depot/projects/smpng/sys/dev/fdt/fdt_common.h#10 integrate .. //depot/projects/smpng/sys/dev/fdt/fdt_pci.c#10 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_core.c#20 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_core.h#7 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_intel.c#14 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_powerpc.c#8 integrate .. //depot/projects/smpng/sys/dev/ie/if_ie.c#23 integrate .. //depot/projects/smpng/sys/dev/isp/isp.c#77 integrate .. //depot/projects/smpng/sys/dev/isp/isp_freebsd.c#84 integrate .. //depot/projects/smpng/sys/dev/iwn/if_iwn_chip_cfg.h#2 integrate .. //depot/projects/smpng/sys/dev/ixgbe/ixgbe.c#40 integrate .. //depot/projects/smpng/sys/dev/mwl/if_mwl.c#16 integrate .. //depot/projects/smpng/sys/dev/netmap/if_em_netmap.h#7 integrate .. //depot/projects/smpng/sys/dev/netmap/if_igb_netmap.h#8 integrate .. //depot/projects/smpng/sys/dev/netmap/if_lem_netmap.h#6 integrate .. //depot/projects/smpng/sys/dev/netmap/if_re_netmap.h#7 integrate .. //depot/projects/smpng/sys/dev/netmap/ixgbe_netmap.h#8 integrate .. //depot/projects/smpng/sys/dev/netmap/netmap.c#10 integrate .. //depot/projects/smpng/sys/dev/netmap/netmap_freebsd.c#1 branch .. //depot/projects/smpng/sys/dev/netmap/netmap_generic.c#1 branch .. //depot/projects/smpng/sys/dev/netmap/netmap_kern.h#10 integrate .. //depot/projects/smpng/sys/dev/netmap/netmap_mbq.c#1 branch .. //depot/projects/smpng/sys/dev/netmap/netmap_mbq.h#1 branch .. //depot/projects/smpng/sys/dev/netmap/netmap_mem2.c#8 integrate .. //depot/projects/smpng/sys/dev/netmap/netmap_mem2.h#2 integrate .. //depot/projects/smpng/sys/dev/netmap/netmap_vale.c#1 branch .. //depot/projects/smpng/sys/dev/nmdm/nmdm.c#39 integrate .. //depot/projects/smpng/sys/dev/ofw/ofw_bus_subr.c#11 integrate .. //depot/projects/smpng/sys/dev/ofw/ofw_bus_subr.h#9 integrate .. //depot/projects/smpng/sys/dev/ofw/ofw_console.c#37 integrate .. //depot/projects/smpng/sys/dev/pci/vga_pci.c#16 integrate .. //depot/projects/smpng/sys/dev/sym/sym_hipd.c#46 integrate .. //depot/projects/smpng/sys/dev/syscons/scterm-teken.c#14 integrate .. //depot/projects/smpng/sys/dev/uart/uart_bus_pci.c#20 integrate .. //depot/projects/smpng/sys/dev/uart/uart_cpu.h#11 integrate .. //depot/projects/smpng/sys/dev/uart/uart_tty.c#30 integrate .. //depot/projects/smpng/sys/dev/usb/controller/at91dci.c#23 integrate .. //depot/projects/smpng/sys/dev/usb/controller/atmegadci.c#26 integrate .. //depot/projects/smpng/sys/dev/usb/controller/avr32dci.c#18 integrate .. //depot/projects/smpng/sys/dev/usb/controller/dwc_otg.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.c#32 integrate .. //depot/projects/smpng/sys/dev/usb/controller/musb_otg.c#27 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci.c#24 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhci.c#26 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uss820dci.c#26 integrate .. //depot/projects/smpng/sys/dev/usb/controller/xhci.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/quirk/usb_quirk.c#32 integrate .. //depot/projects/smpng/sys/dev/usb/template/usb_template.c#19 integrate .. //depot/projects/smpng/sys/dev/usb/usb_bus.h#15 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.c#37 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.h#26 integrate .. //depot/projects/smpng/sys/dev/usb/usb_hub.c#34 integrate .. //depot/projects/smpng/sys/dev/usb/usb_transfer.c#34 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#187 integrate .. //depot/projects/smpng/sys/dev/usb/usbdi.h#41 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_run.c#24 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_runreg.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_runvar.h#11 integrate .. //depot/projects/smpng/sys/dev/vt/font/vt_font_default.c#2 integrate .. //depot/projects/smpng/sys/dev/vt/hw/fb/vt_fb.c#2 integrate .. //depot/projects/smpng/sys/dev/vt/vt.h#2 integrate .. //depot/projects/smpng/sys/dev/vt/vt_consolectl.c#2 integrate .. //depot/projects/smpng/sys/dev/vt/vt_core.c#2 integrate .. //depot/projects/smpng/sys/dev/vt/vt_font.c#2 integrate .. //depot/projects/smpng/sys/dev/vt/vt_sysmouse.c#2 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_devs.c#44 integrate .. //depot/projects/smpng/sys/fs/ext2fs/ext2_hash.c#2 integrate .. //depot/projects/smpng/sys/fs/fifofs/fifo_vnops.c#60 integrate .. //depot/projects/smpng/sys/fs/nfs/nfs_commonsubs.c#18 integrate .. //depot/projects/smpng/sys/fs/nfs/nfs_var.h#24 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clstate.c#22 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_fha_new.c#2 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdcache.c#10 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdport.c#33 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdstate.c#23 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli.c#42 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli_crypto.c#8 integrate .. //depot/projects/smpng/sys/geom/geom_dev.c#67 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.c#56 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror.h#20 integrate .. //depot/projects/smpng/sys/geom/mirror/g_mirror_ctl.c#19 integrate .. //depot/projects/smpng/sys/geom/part/g_part.c#48 integrate .. //depot/projects/smpng/sys/geom/part/g_part.h#17 integrate .. //depot/projects/smpng/sys/geom/part/g_part_gpt.c#30 integrate .. //depot/projects/smpng/sys/i386/i386/symbols.raw#5 delete .. //depot/projects/smpng/sys/ia64/ia64/dump_machdep.c#17 integrate .. //depot/projects/smpng/sys/ia64/ia64/pmap.c#116 integrate .. //depot/projects/smpng/sys/kern/capabilities.conf#9 integrate .. //depot/projects/smpng/sys/kern/init_sysent.c#112 integrate .. //depot/projects/smpng/sys/kern/kern_clocksource.c#15 integrate .. //depot/projects/smpng/sys/kern/kern_event.c#77 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#164 integrate .. //depot/projects/smpng/sys/kern/kern_fork.c#145 integrate .. //depot/projects/smpng/sys/kern/kern_jail.c#97 integrate .. //depot/projects/smpng/sys/kern/kern_linker.c#120 integrate .. //depot/projects/smpng/sys/kern/kern_resource.c#96 integrate .. //depot/projects/smpng/sys/kern/kern_rwlock.c#42 integrate .. //depot/projects/smpng/sys/kern/makesyscalls.sh#41 integrate .. //depot/projects/smpng/sys/kern/sched_ule.c#129 integrate .. //depot/projects/smpng/sys/kern/subr_terminal.c#2 integrate .. //depot/projects/smpng/sys/kern/subr_trap.c#109 integrate .. //depot/projects/smpng/sys/kern/subr_vmem.c#3 integrate .. //depot/projects/smpng/sys/kern/subr_witness.c#198 integrate .. //depot/projects/smpng/sys/kern/tty.c#113 integrate .. //depot/projects/smpng/sys/kern/uipc_syscalls.c#149 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#155 integrate .. //depot/projects/smpng/sys/kern/vfs_cache.c#72 integrate .. //depot/projects/smpng/sys/kern/vfs_mountroot.c#11 integrate .. //depot/projects/smpng/sys/kern/vfs_vnops.c#122 integrate .. //depot/projects/smpng/sys/mips/beri/beri_machdep.c#5 integrate .. //depot/projects/smpng/sys/mips/conf/BERI_NETFPGA_MDROOT#1 branch .. //depot/projects/smpng/sys/modules/netmap/Makefile#3 integrate .. //depot/projects/smpng/sys/net/netmap.h#8 integrate .. //depot/projects/smpng/sys/net/netmap_user.h#8 integrate .. //depot/projects/smpng/sys/net/radix.c#22 integrate .. //depot/projects/smpng/sys/netgraph/ng_ksocket.c#45 integrate .. //depot/projects/smpng/sys/netinet/in.h#63 integrate .. //depot/projects/smpng/sys/netinet/in_mcast.c#27 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#135 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias.c#14 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_cuseeme.c#5 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_db.c#18 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_dummy.c#4 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_irc.c#11 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_mod.c#6 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_mod.h#4 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_nbt.c#6 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_pptp.c#5 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_skinny.c#8 integrate .. //depot/projects/smpng/sys/netinet/libalias/alias_smedia.c#8 integrate .. //depot/projects/smpng/sys/netinet/libalias/libalias.3#11 integrate .. //depot/projects/smpng/sys/netinet/sctp_usrreq.c#53 integrate .. //depot/projects/smpng/sys/netinet/sctputil.c#61 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#158 integrate .. //depot/projects/smpng/sys/netinet6/in6_mcast.c#12 integrate .. //depot/projects/smpng/sys/netinet6/send.c#9 integrate .. //depot/projects/smpng/sys/netpfil/ipfw/ip_fw_dynamic.c#5 integrate .. //depot/projects/smpng/sys/netpfil/pf/pf.c#7 integrate .. //depot/projects/smpng/sys/netpfil/pf/pf.h#2 integrate .. //depot/projects/smpng/sys/nfs/nfs_fha.c#2 integrate .. //depot/projects/smpng/sys/nfs/nfs_fha.h#2 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_fha_old.c#2 integrate .. //depot/projects/smpng/sys/ofed/drivers/net/mlx4/en_netdev.c#8 integrate .. //depot/projects/smpng/sys/ofed/drivers/net/mlx4/mlx4_en.h#4 integrate .. //depot/projects/smpng/sys/powerpc/aim/mp_cpudep.c#14 integrate .. //depot/projects/smpng/sys/powerpc/aim/trap.c#26 integrate .. //depot/projects/smpng/sys/powerpc/aim/trap_subr32.S#9 integrate .. //depot/projects/smpng/sys/powerpc/aim/trap_subr64.S#12 integrate .. //depot/projects/smpng/sys/powerpc/cpufreq/pmufreq.c#1 branch .. //depot/projects/smpng/sys/powerpc/include/cpu.h#27 integrate .. //depot/projects/smpng/sys/powerpc/include/dbdma.h#5 integrate .. //depot/projects/smpng/sys/powerpc/include/openpicreg.h#6 integrate .. //depot/projects/smpng/sys/powerpc/include/openpicvar.h#12 integrate .. //depot/projects/smpng/sys/powerpc/include/pcpu.h#26 integrate .. //depot/projects/smpng/sys/powerpc/include/pmc_mdep.h#8 integrate .. //depot/projects/smpng/sys/powerpc/include/spr.h#30 integrate .. //depot/projects/smpng/sys/powerpc/ofw/ofw_pci.c#10 integrate .. //depot/projects/smpng/sys/powerpc/ofw/ofw_pcib_pci.c#14 integrate .. //depot/projects/smpng/sys/powerpc/ofw/openpic_ofw.c#2 integrate .. //depot/projects/smpng/sys/powerpc/powermac/ata_macio.c#22 integrate .. //depot/projects/smpng/sys/powerpc/powermac/atibl.c#5 integrate .. //depot/projects/smpng/sys/powerpc/powermac/cpcht.c#9 integrate .. //depot/projects/smpng/sys/powerpc/powermac/dbdma.c#7 integrate .. //depot/projects/smpng/sys/powerpc/powermac/dbdmavar.h#5 integrate .. //depot/projects/smpng/sys/powerpc/powermac/platform_powermac.c#7 integrate .. //depot/projects/smpng/sys/powerpc/powermac/pmu.c#11 integrate .. //depot/projects/smpng/sys/powerpc/powermac/pmuvar.h#5 integrate .. //depot/projects/smpng/sys/powerpc/powermac/uninorth.c#27 integrate .. //depot/projects/smpng/sys/powerpc/powermac/uninorthvar.h#12 integrate .. //depot/projects/smpng/sys/powerpc/powermac/viareg.h#3 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/mp_machdep.c#29 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/openpic.c#23 integrate .. //depot/projects/smpng/sys/powerpc/pseries/phyp_vscsi.c#3 integrate .. //depot/projects/smpng/sys/powerpc/psim/openpic_iobus.c#14 integrate .. //depot/projects/smpng/sys/rpc/clnt_dg.c#19 integrate .. //depot/projects/smpng/sys/rpc/clnt_vc.c#18 integrate .. //depot/projects/smpng/sys/rpc/rpcb_clnt.c#7 integrate .. //depot/projects/smpng/sys/rpc/svc.c#10 integrate .. //depot/projects/smpng/sys/rpc/svc.h#7 integrate .. //depot/projects/smpng/sys/rpc/svc_vc.c#13 integrate .. //depot/projects/smpng/sys/security/mac/mac_framework.c#15 integrate .. //depot/projects/smpng/sys/sparc64/ebus/ebus.c#33 integrate .. //depot/projects/smpng/sys/sparc64/isa/ofw_isa.c#16 integrate .. //depot/projects/smpng/sys/sparc64/pci/fire.c#13 integrate .. //depot/projects/smpng/sys/sparc64/pci/ofw_pcib_subr.c#14 integrate .. //depot/projects/smpng/sys/sparc64/pci/psycho.c#61 integrate .. //depot/projects/smpng/sys/sparc64/pci/schizo.c#22 integrate .. //depot/projects/smpng/sys/sys/consio.h#13 integrate .. //depot/projects/smpng/sys/sys/dtrace_bsd.h#11 integrate .. //depot/projects/smpng/sys/sys/fbio.h#12 integrate .. //depot/projects/smpng/sys/sys/gpt.h#15 integrate .. //depot/projects/smpng/sys/sys/param.h#188 integrate .. //depot/projects/smpng/sys/sys/terminal.h#2 integrate .. //depot/projects/smpng/sys/sys/tty.h#39 integrate .. //depot/projects/smpng/sys/teken/demo/teken_demo.c#4 integrate .. //depot/projects/smpng/sys/teken/teken.h#7 integrate .. //depot/projects/smpng/sys/teken/teken_subr.h#11 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#129 integrate .. //depot/projects/smpng/sys/vm/vm_pageout.c#99 integrate .. //depot/projects/smpng/sys/vm/vm_reserv.c#16 integrate .. //depot/projects/smpng/sys/x86/acpica/acpi_wakeup.c#5 integrate .. //depot/projects/smpng/sys/x86/include/mptable.h#5 integrate .. //depot/projects/smpng/sys/x86/x86/mptable.c#7 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/Makefile#41 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: head/share/man/man9/Makefile 256952 2013-10-23 03:27:42Z eadler $ +# $FreeBSD: head/share/man/man9/Makefile 259670 2013-12-20 23:57:05Z jmg $ MAN= accept_filter.9 \ accf_data.9 \ @@ -905,6 +905,7 @@ mbuf.9 m_freem.9 \ mbuf.9 MGET.9 \ mbuf.9 m_get.9 \ + mbuf.9 m_getjcl.9 \ mbuf.9 m_getcl.9 \ mbuf.9 m_getclr.9 \ mbuf.9 MGETHDR.9 \ ==== //depot/projects/smpng/share/man/man9/mbuf.9#7 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: head/share/man/man9/mbuf.9 242998 2012-11-13 20:52:17Z andre $ +.\" $FreeBSD: head/share/man/man9/mbuf.9 259672 2013-12-21 00:15:37Z jmg $ .\" -.Dd November 13, 2012 +.Dd December 20, 2013 .Dt MBUF 9 .Os .\" @@ -74,6 +74,8 @@ .Ft struct mbuf * .Fn m_getm "struct mbuf *orig" "int len" "int how" "int type" .Ft struct mbuf * +.Fn m_getjcl "int how" "short type" "int flags" "int size" +.Ft struct mbuf * .Fn m_getcl "int how" "short type" "int flags" .Ft struct mbuf * .Fn m_getclr "int how" "int type" @@ -592,6 +594,12 @@ Returns .Dv NULL on failure. +.It Fn m_getjcl how type flags size +This is like +.Fn m_getcl +but it the size of the cluster allocated will be large enough for +.Fa size +bytes. .It Fn m_getclr how type Allocate an .Vt mbuf ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#122 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/amd64/machdep.c 259015 2013-12-05 21:58:02Z jhb $"); +__FBSDID("$FreeBSD: head/sys/amd64/amd64/machdep.c 259782 2013-12-23 19:48:22Z jhb $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -215,6 +215,8 @@ struct mtx dt_lock; /* lock for GDT and LDT */ +void (*vmm_resume_p)(void); + static void cpu_startup(dummy) void *dummy; ==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#94 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/amd64/mp_machdep.c 255744 2013-09-20 22:59:22Z gibbs $"); +__FBSDID("$FreeBSD: head/sys/amd64/amd64/mp_machdep.c 259782 2013-12-23 19:48:22Z jhb $"); #include "opt_cpu.h" #include "opt_ddb.h" @@ -1489,6 +1489,8 @@ if (cpu_ops.cpu_resume) cpu_ops.cpu_resume(); + if (vmm_resume_p) + vmm_resume_p(); /* Resume MCA and local APIC */ mca_resume(); ==== //depot/projects/smpng/sys/amd64/amd64/pmap.c#134 (text+ko) ==== @@ -79,7 +79,7 @@ #define AMD64_NPT_AWARE #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 256645 2013-10-16 18:20:27Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/amd64/pmap.c 259641 2013-12-20 05:50:22Z neel $"); /* * Manages physical address maps. @@ -1295,6 +1295,7 @@ static __inline void pmap_invalidate_ept(pmap_t pmap) { + int ipinum; sched_pin(); KASSERT(!CPU_ISSET(curcpu, &pmap->pm_active), @@ -1319,11 +1320,9 @@ /* * Force the vcpu to exit and trap back into the hypervisor. - * - * XXX this is not optimal because IPI_AST builds a trapframe - * whereas all we need is an 'eoi' followed by 'iret'. */ - ipi_selected(pmap->pm_active, IPI_AST); + ipinum = pmap->pm_flags & PMAP_NESTED_IPIMASK; + ipi_selected(pmap->pm_active, ipinum); sched_unpin(); } ==== //depot/projects/smpng/sys/amd64/include/cpu.h#16 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * from: @(#)cpu.h 5.4 (Berkeley) 5/9/91 - * $FreeBSD: head/sys/amd64/include/cpu.h 255744 2013-09-20 22:59:22Z gibbs $ + * $FreeBSD: head/sys/amd64/include/cpu.h 259782 2013-12-23 19:48:22Z jhb $ */ #ifndef _MACHINE_CPU_H_ @@ -70,6 +70,9 @@ extern char btext[]; extern char etext[]; +/* Resume hook for VMM. */ +extern void (*vmm_resume_p)(void); + void cpu_halt(void); void cpu_reset(void); void fork_trampoline(void); ==== //depot/projects/smpng/sys/amd64/include/pmap.h#49 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: head/sys/amd64/include/pmap.h 256072 2013-10-05 21:22:35Z neel $ + * $FreeBSD: head/sys/amd64/include/pmap.h 259641 2013-12-20 05:50:22Z neel $ */ #ifndef _MACHINE_PMAP_H_ @@ -312,9 +312,10 @@ }; /* flags */ -#define PMAP_PDE_SUPERPAGE (1 << 0) /* supports 2MB superpages */ -#define PMAP_EMULATE_AD_BITS (1 << 1) /* needs A/D bits emulation */ -#define PMAP_SUPPORTS_EXEC_ONLY (1 << 2) /* execute only mappings ok */ +#define PMAP_NESTED_IPIMASK 0xff +#define PMAP_PDE_SUPERPAGE (1 << 8) /* supports 2MB superpages */ +#define PMAP_EMULATE_AD_BITS (1 << 9) /* needs A/D bits emulation */ +#define PMAP_SUPPORTS_EXEC_ONLY (1 << 10) /* execute only mappings ok */ typedef struct pmap *pmap_t; ==== //depot/projects/smpng/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 259081 2013-12-07 22:18:36Z neel $ + * $FreeBSD: head/sys/amd64/include/vmm.h 259863 2013-12-25 06:46:31Z neel $ */ #ifndef _VMM_H_ @@ -49,6 +49,7 @@ typedef int (*vmm_init_func_t)(void); 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); typedef int (*vmi_run_func_t)(void *vmi, int vcpu, register_t rip, struct pmap *pmap); @@ -68,10 +69,13 @@ typedef int (*vmi_set_cap_t)(void *vmi, int vcpu, int num, int val); typedef struct vmspace * (*vmi_vmspace_alloc)(vm_offset_t min, vm_offset_t max); typedef void (*vmi_vmspace_free)(struct vmspace *vmspace); +typedef struct vlapic * (*vmi_vlapic_init)(void *vmi, int vcpu); +typedef void (*vmi_vlapic_cleanup)(void *vmi, struct vlapic *vlapic); struct vmm_ops { vmm_init_func_t init; /* module wide initialization */ vmm_cleanup_func_t cleanup; + vmm_resume_func_t resume; vmi_init_func_t vminit; /* vm-specific initialization */ vmi_run_func_t vmrun; @@ -85,6 +89,8 @@ vmi_set_cap_t vmsetcap; vmi_vmspace_alloc vmspace_alloc; vmi_vmspace_free vmspace_free; + vmi_vlapic_init vlapic_init; + vmi_vlapic_cleanup vlapic_cleanup; }; extern struct vmm_ops vmm_ops_intel; @@ -146,7 +152,8 @@ VCPU_SLEEPING, }; -int vcpu_set_state(struct vm *vm, int vcpu, enum vcpu_state state); +int vcpu_set_state(struct vm *vm, int vcpu, enum vcpu_state state, + bool from_idle); enum vcpu_state vcpu_get_state(struct vm *vm, int vcpu, int *hostcpu); static int __inline @@ -156,7 +163,7 @@ } void *vcpu_stats(struct vm *vm, int vcpu); -void vcpu_notify_event(struct vm *vm, int vcpuid); +void vcpu_notify_event(struct vm *vm, int vcpuid, bool lapic_intr); struct vmspace *vm_get_vmspace(struct vm *vm); int vm_assign_pptdev(struct vm *vm, int bus, int slot, int func); int vm_unassign_pptdev(struct vm *vm, int bus, int slot, int func); ==== //depot/projects/smpng/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 258579 2013-11-25 19:04:51Z neel $ + * $FreeBSD: head/sys/amd64/include/vmm_dev.h 259779 2013-12-23 19:29:07Z jhb $ */ #ifndef _VMM_DEV_H_ @@ -66,6 +66,11 @@ int error_code_valid; }; +struct vm_lapic_msi { + uint64_t msg; + uint64_t addr; +}; + struct vm_lapic_irq { int cpuid; int vector; @@ -103,8 +108,8 @@ int slot; int func; int numvec; /* 0 means disabled */ - int vector; - int destcpu; + uint64_t msg; + uint64_t addr; }; struct vm_pptdev_msix { @@ -113,7 +118,7 @@ int slot; int func; int idx; - uint32_t msg; + uint64_t msg; uint32_t vector_control; uint64_t addr; }; @@ -175,6 +180,8 @@ IOCNUM_IOAPIC_ASSERT_IRQ = 33, IOCNUM_IOAPIC_DEASSERT_IRQ = 34, IOCNUM_IOAPIC_PULSE_IRQ = 35, + IOCNUM_LAPIC_MSI = 36, + IOCNUM_LAPIC_LOCAL_IRQ = 37, /* PCI pass-thru */ IOCNUM_BIND_PPTDEV = 40, @@ -211,6 +218,10 @@ _IOW('v', IOCNUM_INJECT_EVENT, struct vm_event) #define VM_LAPIC_IRQ \ _IOW('v', IOCNUM_LAPIC_IRQ, struct vm_lapic_irq) +#define VM_LAPIC_LOCAL_IRQ \ + _IOW('v', IOCNUM_LAPIC_LOCAL_IRQ, struct vm_lapic_irq) +#define VM_LAPIC_MSI \ + _IOW('v', IOCNUM_LAPIC_MSI, struct vm_lapic_msi) #define VM_IOAPIC_ASSERT_IRQ \ _IOW('v', IOCNUM_IOAPIC_ASSERT_IRQ, struct vm_ioapic_irq) #define VM_IOAPIC_DEASSERT_IRQ \ ==== //depot/projects/smpng/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 256072 2013-10-05 21:22:35Z neel $ + * $FreeBSD: head/sys/amd64/vmm/amd/amdv.c 259863 2013-12-25 06:46:31Z neel $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/vmm/amd/amdv.c 256072 2013-10-05 21:22:35Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/vmm/amd/amdv.c 259863 2013-12-25 06:46:31Z neel $"); #include <sys/param.h> #include <sys/systm.h> @@ -53,6 +53,11 @@ return (ENXIO); } +static void +amdv_resume(void) +{ +} + static void * amdv_vminit(struct vm *vm, struct pmap *pmap) { @@ -150,9 +155,24 @@ return; } +static struct vlapic * +amdv_vlapic_init(void *arg, int vcpuid) +{ + + panic("amdv_vlapic_init: not implmented"); +} + +static void +amdv_vlapic_cleanup(void *arg, struct vlapic *vlapic) +{ + + panic("amdv_vlapic_cleanup: not implemented"); +} + struct vmm_ops vmm_ops_amd = { amdv_init, amdv_cleanup, + amdv_resume, amdv_vminit, amdv_vmrun, amdv_vmcleanup, @@ -165,6 +185,8 @@ amdv_setcap, amdv_vmspace_alloc, amdv_vmspace_free, + amdv_vlapic_init, + amdv_vlapic_cleanup, }; static int ==== //depot/projects/smpng/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 256072 2013-10-05 21:22:35Z neel $ + * $FreeBSD: head/sys/amd64/vmm/intel/ept.c 259641 2013-12-20 05:50:22Z neel $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/ept.c 256072 2013-10-05 21:22:35Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/ept.c 259641 2013-12-20 05:50:22Z neel $"); #include <sys/param.h> #include <sys/kernel.h> @@ -43,6 +43,7 @@ #include <machine/vmm.h> #include "vmx_cpufunc.h" +#include "vmm_ipi.h" #include "vmx_msr.h" #include "ept.h" @@ -98,6 +99,8 @@ !INVEPT_ALL_TYPES_SUPPORTED(cap)) return (EINVAL); + ept_pmap_flags = vmm_ipinum & PMAP_NESTED_IPIMASK; + use_superpages = 1; TUNABLE_INT_FETCH("hw.vmm.ept.use_superpages", &use_superpages); if (use_superpages && EPT_PDE_SUPERPAGE(cap)) ==== //depot/projects/smpng/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 257297 2013-10-29 02:25:18Z neel $ + * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.c 259542 2013-12-18 06:24:21Z neel $ */ #include "opt_ddb.h" #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmcs.c 257297 2013-10-29 02:25:18Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmcs.c 259542 2013-12-18 06:24:21Z neel $"); #include <sys/param.h> #include <sys/systm.h> @@ -41,8 +41,8 @@ #include <machine/segments.h> #include <machine/vmm.h> #include "vmm_host.h" +#include "vmx_cpufunc.h" #include "vmcs.h" -#include "vmx_cpufunc.h" #include "ept.h" #include "vmx.h" @@ -454,19 +454,6 @@ return (error); } -uint64_t -vmcs_read(uint32_t encoding) -{ - int error; - uint64_t val; - - error = vmread(encoding, &val); - if (error != 0) - panic("vmcs_read(%u) error %d", encoding, error); - - return (val); -} - #ifdef DDB extern int vmxon_enabled[]; ==== //depot/projects/smpng/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 258780 2013-11-30 22:17:27Z eadler $ + * $FreeBSD: head/sys/amd64/vmm/intel/vmcs.h 259542 2013-12-18 06:24:21Z neel $ */ #ifndef _VMCS_H_ @@ -58,7 +58,26 @@ struct seg_desc *desc); int vmcs_setdesc(struct vmcs *vmcs, int ident, struct seg_desc *desc); -uint64_t vmcs_read(uint32_t encoding); + +static __inline uint64_t +vmcs_read(uint32_t encoding) +{ + int error; + uint64_t val; + + error = vmread(encoding, &val); + KASSERT(error == 0, ("vmcs_read(%u) error %d", encoding, error)); + return (val); +} + +static __inline void +vmcs_write(uint32_t encoding, uint64_t val) +{ + int error; + + error = vmwrite(encoding, val); + KASSERT(error == 0, ("vmcs_write(%u) error %d", encoding, error)); +} #define vmexit_instruction_length() vmcs_read(VMCS_EXIT_INSTRUCTION_LENGTH) #define vmcs_guest_rip() vmcs_read(VMCS_GUEST_RIP) ==== //depot/projects/smpng/sys/amd64/vmm/intel/vmx.c#9 (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 259085 2013-12-07 23:11:12Z neel $ + * $FreeBSD: head/sys/amd64/vmm/intel/vmx.c 259942 2013-12-27 12:15:53Z dim $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmx.c 259085 2013-12-07 23:11:12Z neel $"); +__FBSDID("$FreeBSD: head/sys/amd64/vmm/intel/vmx.c 259942 2013-12-27 12:15:53Z dim $"); #include <sys/param.h> #include <sys/systm.h> @@ -50,10 +50,11 @@ #include <machine/vmm.h> #include "vmm_host.h" -#include "vmm_lapic.h" #include "vmm_msr.h" #include "vmm_ktr.h" #include "vmm_stat.h" +#include "vlapic.h" +#include "vlapic_priv.h" #include "vmx_msr.h" #include "ept.h" @@ -112,7 +113,8 @@ #define HANDLED 1 #define UNHANDLED 0 -MALLOC_DEFINE(M_VMX, "vmx", "vmx"); +static MALLOC_DEFINE(M_VMX, "vmx", "vmx"); +static MALLOC_DEFINE(M_VLAPIC, "vlapic", "vlapic"); SYSCTL_DECL(_hw_vmm); SYSCTL_NODE(_hw_vmm, OID_AUTO, vmx, CTLFLAG_RW, NULL, NULL); @@ -324,9 +326,8 @@ VCPU_CTR2((vmx)->vm, (vcpu), "setjmp return code %s(%d)", vmx_setjmp_rc2str(rc), rc); - host_rsp = host_rip = ~0; - vmread(VMCS_HOST_RIP, &host_rip); - vmread(VMCS_HOST_RSP, &host_rsp); + 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); @@ -525,6 +526,14 @@ vmxon_enabled[curcpu] = 1; } +static void +vmx_restore(void) +{ + + if (vmxon_enabled[curcpu]) + vmxon(vmxon_region[curcpu]); +} + static int vmx_init(void) { @@ -909,10 +918,10 @@ #endif } -static int +static void vmx_set_pcpu_defaults(struct vmx *vmx, int vcpu) { - int error, lastcpu; + int lastcpu; struct vmxstate *vmxstate; struct invvpid_desc invvpid_desc = { 0 }; @@ -920,24 +929,14 @@ lastcpu = vmxstate->lastcpu; vmxstate->lastcpu = curcpu; - if (lastcpu == curcpu) { - error = 0; - goto done; - } + if (lastcpu == curcpu) + return; vmm_stat_incr(vmx->vm, vcpu, VCPU_MIGRATIONS, 1); - error = vmwrite(VMCS_HOST_TR_BASE, vmm_get_host_trbase()); - if (error != 0) - goto done; - - error = vmwrite(VMCS_HOST_GDTR_BASE, vmm_get_host_gdtrbase()); - if (error != 0) - goto done; - - error = vmwrite(VMCS_HOST_GS_BASE, vmm_get_host_gsbase()); - if (error != 0) - goto done; + vmcs_write(VMCS_HOST_TR_BASE, vmm_get_host_trbase()); + vmcs_write(VMCS_HOST_GDTR_BASE, vmm_get_host_gdtrbase()); + vmcs_write(VMCS_HOST_GS_BASE, vmm_get_host_gsbase()); /* * If we are using VPIDs then invalidate all mappings tagged with 'vpid' @@ -958,20 +957,8 @@ invvpid_desc.vpid = vmxstate->vpid; invvpid(INVVPID_TYPE_SINGLE_CONTEXT, invvpid_desc); } -done: - return (error); } -static void -vm_exit_update_rip(struct vm_exit *vmexit) -{ - int error; - - error = vmwrite(VMCS_GUEST_RIP, vmexit->rip + vmexit->inst_length); - if (error) - panic("vmx_run: error %d writing to VMCS_GUEST_RIP", error); -} - /* * We depend on 'procbased_ctls' to have the Interrupt Window Exiting bit set. */ @@ -980,66 +967,45 @@ static void __inline vmx_set_int_window_exiting(struct vmx *vmx, int vcpu) { - int error; vmx->cap[vcpu].proc_ctls |= PROCBASED_INT_WINDOW_EXITING; - - error = vmwrite(VMCS_PRI_PROC_BASED_CTLS, vmx->cap[vcpu].proc_ctls); - if (error) - panic("vmx_set_int_window_exiting: vmwrite error %d", error); + vmcs_write(VMCS_PRI_PROC_BASED_CTLS, vmx->cap[vcpu].proc_ctls); } static void __inline vmx_clear_int_window_exiting(struct vmx *vmx, int vcpu) { - int error; vmx->cap[vcpu].proc_ctls &= ~PROCBASED_INT_WINDOW_EXITING; - - error = vmwrite(VMCS_PRI_PROC_BASED_CTLS, vmx->cap[vcpu].proc_ctls); - if (error) - panic("vmx_clear_int_window_exiting: vmwrite error %d", error); + vmcs_write(VMCS_PRI_PROC_BASED_CTLS, vmx->cap[vcpu].proc_ctls); } static void __inline vmx_set_nmi_window_exiting(struct vmx *vmx, int vcpu) { - int error; >>> TRUNCATED FOR MAIL (1000 lines) <<<help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312281742.rBSHgD3H027661>
