svn commit: r207795 - in projects/altix/sys: amd64/amd64 amd64/conf
amd64/ia32 amd64/include amd64/include/xen arm/arm arm/at91
arm/conf arm/include arm/mv arm/xscale/ixp425 boot/forth
boot/sparc64...
Marcel Moolenaar
marcel at FreeBSD.org
Sat May 8 20:08:02 UTC 2010
Author: marcel
Date: Sat May 8 20:08:01 2010
New Revision: 207795
URL: http://svn.freebsd.org/changeset/base/207795
Log:
Merge svn+ssh://svn.freebsd.org/base/head@207793
Added:
projects/altix/sys/contrib/dev/acpica/compiler/aslrestype1i.c
- copied unchanged from r207793, head/sys/contrib/dev/acpica/compiler/aslrestype1i.c
projects/altix/sys/contrib/dev/acpica/compiler/aslrestype2d.c
- copied unchanged from r207793, head/sys/contrib/dev/acpica/compiler/aslrestype2d.c
projects/altix/sys/contrib/dev/acpica/compiler/aslrestype2e.c
- copied unchanged from r207793, head/sys/contrib/dev/acpica/compiler/aslrestype2e.c
projects/altix/sys/contrib/dev/acpica/compiler/aslrestype2q.c
- copied unchanged from r207793, head/sys/contrib/dev/acpica/compiler/aslrestype2q.c
projects/altix/sys/contrib/dev/acpica/compiler/aslrestype2w.c
- copied unchanged from r207793, head/sys/contrib/dev/acpica/compiler/aslrestype2w.c
projects/altix/sys/contrib/dev/acpica/events/evgpeinit.c
- copied unchanged from r207793, head/sys/contrib/dev/acpica/events/evgpeinit.c
projects/altix/sys/contrib/dev/acpica/events/evgpeutil.c
- copied unchanged from r207793, head/sys/contrib/dev/acpica/events/evgpeutil.c
projects/altix/sys/dev/io/iodev.h
- copied unchanged from r207793, head/sys/dev/io/iodev.h
projects/altix/sys/dev/mvs/
- copied from r207793, head/sys/dev/mvs/
projects/altix/sys/dev/sge/
- copied from r207793, head/sys/dev/sge/
projects/altix/sys/mips/cavium/octeon_mp.c
- copied unchanged from r207793, head/sys/mips/cavium/octeon_mp.c
projects/altix/sys/modules/mvs/
- copied from r207793, head/sys/modules/mvs/
projects/altix/sys/modules/sge/
- copied from r207793, head/sys/modules/sge/
projects/altix/sys/sparc64/include/mcntl.h
- copied unchanged from r207793, head/sys/sparc64/include/mcntl.h
projects/altix/sys/sparc64/sparc64/zeus.c
- copied unchanged from r207793, head/sys/sparc64/sparc64/zeus.c
Deleted:
projects/altix/sys/cddl/dev/cyclic/amd64/
projects/altix/sys/mips/cavium/dev/rgmii/octeon_fau.c
projects/altix/sys/mips/include/archtype.h
projects/altix/sys/mips/include/defs.h
projects/altix/sys/mips/include/psl.h
projects/altix/sys/mips/include/queue.h
projects/altix/sys/mips/include/rm7000.h
projects/altix/sys/mips/include/segments.h
projects/altix/sys/mips/mips/copystr.S
Modified:
projects/altix/sys/amd64/amd64/bpf_jit_machdep.c
projects/altix/sys/amd64/amd64/bpf_jit_machdep.h
projects/altix/sys/amd64/amd64/exception.S
projects/altix/sys/amd64/amd64/identcpu.c
projects/altix/sys/amd64/amd64/io.c
projects/altix/sys/amd64/amd64/local_apic.c
projects/altix/sys/amd64/amd64/pmap.c
projects/altix/sys/amd64/amd64/trap.c
projects/altix/sys/amd64/conf/GENERIC
projects/altix/sys/amd64/ia32/ia32_signal.c
projects/altix/sys/amd64/include/iodev.h
projects/altix/sys/amd64/include/pmap.h
projects/altix/sys/amd64/include/proc.h
projects/altix/sys/amd64/include/specialreg.h
projects/altix/sys/amd64/include/vmparam.h
projects/altix/sys/amd64/include/xen/xenfunc.h
projects/altix/sys/amd64/include/xen/xenvar.h
projects/altix/sys/arm/arm/cpufunc.c
projects/altix/sys/arm/arm/cpufunc_asm_fa526.S
projects/altix/sys/arm/arm/elf_trampoline.c
projects/altix/sys/arm/arm/identcpu.c
projects/altix/sys/arm/arm/pmap.c
projects/altix/sys/arm/at91/if_ate.c
projects/altix/sys/arm/conf/DB-78XXX
projects/altix/sys/arm/conf/DB-88F5XXX
projects/altix/sys/arm/conf/DB-88F6XXX
projects/altix/sys/arm/conf/HL200
projects/altix/sys/arm/conf/KB920X
projects/altix/sys/arm/conf/LN2410SBC
projects/altix/sys/arm/conf/SHEEVAPLUG
projects/altix/sys/arm/include/cpuconf.h
projects/altix/sys/arm/include/cpufunc.h
projects/altix/sys/arm/include/pmap.h
projects/altix/sys/arm/include/proc.h
projects/altix/sys/arm/mv/files.mv
projects/altix/sys/arm/xscale/ixp425/if_npe.c
projects/altix/sys/boot/forth/loader.conf
projects/altix/sys/boot/sparc64/loader/main.c
projects/altix/sys/cam/ata/ata_da.c
projects/altix/sys/cam/ata/ata_pmp.c
projects/altix/sys/cam/ata/ata_xpt.c
projects/altix/sys/cam/cam_ccb.h
projects/altix/sys/cam/cam_xpt.c
projects/altix/sys/cam/scsi/scsi_cd.c
projects/altix/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
projects/altix/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
projects/altix/sys/cddl/dev/cyclic/i386/cyclic_machdep.c
projects/altix/sys/compat/freebsd32/freebsd32.h
projects/altix/sys/compat/freebsd32/freebsd32_misc.c
projects/altix/sys/compat/freebsd32/freebsd32_util.h
projects/altix/sys/compat/linprocfs/linprocfs.c
projects/altix/sys/compat/linux/linux_ioctl.c
projects/altix/sys/compat/x86bios/x86bios.c
projects/altix/sys/conf/NOTES
projects/altix/sys/conf/files
projects/altix/sys/conf/files.mips
projects/altix/sys/conf/files.sparc64
projects/altix/sys/conf/files.sun4v
projects/altix/sys/conf/kern.pre.mk
projects/altix/sys/conf/kmod.mk
projects/altix/sys/conf/options
projects/altix/sys/conf/options.arm
projects/altix/sys/contrib/dev/acpica/acpica_prep.sh
projects/altix/sys/contrib/dev/acpica/changes.txt
projects/altix/sys/contrib/dev/acpica/common/adisasm.c
projects/altix/sys/contrib/dev/acpica/compiler/aslcompile.c
projects/altix/sys/contrib/dev/acpica/compiler/aslcompiler.h
projects/altix/sys/contrib/dev/acpica/compiler/asldefine.h
projects/altix/sys/contrib/dev/acpica/compiler/aslfiles.c
projects/altix/sys/contrib/dev/acpica/compiler/aslglobal.h
projects/altix/sys/contrib/dev/acpica/compiler/asllisting.c
projects/altix/sys/contrib/dev/acpica/compiler/aslmain.c
projects/altix/sys/contrib/dev/acpica/compiler/aslpredef.c
projects/altix/sys/contrib/dev/acpica/compiler/aslresource.c
projects/altix/sys/contrib/dev/acpica/compiler/aslrestype1.c
projects/altix/sys/contrib/dev/acpica/compiler/aslrestype2.c
projects/altix/sys/contrib/dev/acpica/compiler/asltypes.h
projects/altix/sys/contrib/dev/acpica/debugger/dbcmds.c
projects/altix/sys/contrib/dev/acpica/debugger/dbdisply.c
projects/altix/sys/contrib/dev/acpica/events/evgpe.c
projects/altix/sys/contrib/dev/acpica/events/evgpeblk.c
projects/altix/sys/contrib/dev/acpica/executer/exconfig.c
projects/altix/sys/contrib/dev/acpica/executer/exoparg1.c
projects/altix/sys/contrib/dev/acpica/executer/exsystem.c
projects/altix/sys/contrib/dev/acpica/include/acevents.h
projects/altix/sys/contrib/dev/acpica/include/acglobal.h
projects/altix/sys/contrib/dev/acpica/include/acinterp.h
projects/altix/sys/contrib/dev/acpica/include/aclocal.h
projects/altix/sys/contrib/dev/acpica/include/acpiosxf.h
projects/altix/sys/contrib/dev/acpica/include/acpixf.h
projects/altix/sys/contrib/dev/acpica/include/actypes.h
projects/altix/sys/contrib/dev/acpica/include/amlresrc.h
projects/altix/sys/contrib/dev/acpica/osunixxf.c
projects/altix/sys/contrib/dev/acpica/tables/tbfind.c
projects/altix/sys/contrib/dev/acpica/tables/tbinstal.c
projects/altix/sys/contrib/dev/acpica/tables/tbutils.c
projects/altix/sys/contrib/dev/acpica/tables/tbxface.c
projects/altix/sys/contrib/dev/acpica/utilities/utcopy.c
projects/altix/sys/contrib/dev/acpica/utilities/utglobal.c
projects/altix/sys/contrib/dev/acpica/utilities/uttrack.c
projects/altix/sys/contrib/ipfilter/netinet/ip_auth.c
projects/altix/sys/contrib/ipfilter/netinet/ip_compat.h
projects/altix/sys/ddb/db_sym.c
projects/altix/sys/dev/acpica/Osd/OsdHardware.c
projects/altix/sys/dev/ae/if_ae.c
projects/altix/sys/dev/age/if_age.c
projects/altix/sys/dev/agp/agp.c
projects/altix/sys/dev/agp/agp_i810.c
projects/altix/sys/dev/ahci/ahci.c
projects/altix/sys/dev/ahci/ahci.h
projects/altix/sys/dev/alc/if_alc.c
projects/altix/sys/dev/ale/if_ale.c
projects/altix/sys/dev/an/if_an.c
projects/altix/sys/dev/ata/ata-all.c
projects/altix/sys/dev/ata/ata-queue.c
projects/altix/sys/dev/ata/chipsets/ata-acerlabs.c
projects/altix/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c
projects/altix/sys/dev/ath/if_ath.c
projects/altix/sys/dev/atkbdc/atkbdc.c
projects/altix/sys/dev/atkbdc/atkbdc_ebus.c
projects/altix/sys/dev/atkbdc/atkbdc_isa.c
projects/altix/sys/dev/atkbdc/atkbdcreg.h
projects/altix/sys/dev/bce/if_bce.c
projects/altix/sys/dev/bce/if_bcereg.h
projects/altix/sys/dev/bge/if_bge.c
projects/altix/sys/dev/bwi/if_bwi.c
projects/altix/sys/dev/bwn/if_bwn.c
projects/altix/sys/dev/cas/if_cas.c
projects/altix/sys/dev/cas/if_casreg.h
projects/altix/sys/dev/ce/if_ce.c
projects/altix/sys/dev/ciss/ciss.c
projects/altix/sys/dev/cm/smc90cx6.c
projects/altix/sys/dev/cp/if_cp.c
projects/altix/sys/dev/cs/if_cs.c
projects/altix/sys/dev/ctau/if_ct.c
projects/altix/sys/dev/cx/if_cx.c
projects/altix/sys/dev/cxgb/cxgb_adapter.h
projects/altix/sys/dev/cxgb/cxgb_ioctl.h
projects/altix/sys/dev/cxgb/cxgb_main.c
projects/altix/sys/dev/cxgb/cxgb_sge.c
projects/altix/sys/dev/cxgb/sys/mvec.h
projects/altix/sys/dev/cxgb/sys/uipc_mvec.c
projects/altix/sys/dev/drm/ati_pcigart.c
projects/altix/sys/dev/drm/drmP.h
projects/altix/sys/dev/drm/drm_bufs.c
projects/altix/sys/dev/drm/drm_context.c
projects/altix/sys/dev/drm/drm_drv.c
projects/altix/sys/dev/drm/drm_hashtab.c
projects/altix/sys/dev/drm/drm_memory.c
projects/altix/sys/dev/drm/drm_mm.c
projects/altix/sys/dev/drm/drm_scatter.c
projects/altix/sys/dev/drm/drm_sman.c
projects/altix/sys/dev/drm/drm_sysctl.c
projects/altix/sys/dev/drm/drm_vm.c
projects/altix/sys/dev/drm/i915_dma.c
projects/altix/sys/dev/drm/mach64_dma.c
projects/altix/sys/dev/drm/mga_dma.c
projects/altix/sys/dev/drm/mga_warp.c
projects/altix/sys/dev/drm/r128_cce.c
projects/altix/sys/dev/drm/r128_state.c
projects/altix/sys/dev/drm/r600_blit.c
projects/altix/sys/dev/drm/r600_cp.c
projects/altix/sys/dev/drm/radeon_cp.c
projects/altix/sys/dev/drm/radeon_cs.c
projects/altix/sys/dev/drm/radeon_state.c
projects/altix/sys/dev/drm/savage_bci.c
projects/altix/sys/dev/drm/via_dma.c
projects/altix/sys/dev/drm/via_dmablit.c
projects/altix/sys/dev/drm/via_map.c
projects/altix/sys/dev/drm/via_mm.c
projects/altix/sys/dev/drm/via_video.c
projects/altix/sys/dev/e1000/if_em.c
projects/altix/sys/dev/e1000/if_igb.c
projects/altix/sys/dev/e1000/if_lem.c
projects/altix/sys/dev/ed/if_ed.c
projects/altix/sys/dev/ep/if_ep.c
projects/altix/sys/dev/esp/esp_sbus.c
projects/altix/sys/dev/ex/if_ex.c
projects/altix/sys/dev/fe/if_fe.c
projects/altix/sys/dev/fxp/if_fxp.c
projects/altix/sys/dev/hwpmc/hwpmc_core.c
projects/altix/sys/dev/hwpmc/hwpmc_mod.c
projects/altix/sys/dev/hwpmc/pmc_events.h
projects/altix/sys/dev/ie/if_ie.c
projects/altix/sys/dev/iicbus/if_ic.c
projects/altix/sys/dev/io/iodev.c
projects/altix/sys/dev/ipw/if_ipw.c
projects/altix/sys/dev/ipw/if_ipwvar.h
projects/altix/sys/dev/isp/isp_pci.c
projects/altix/sys/dev/isp/isp_sbus.c
projects/altix/sys/dev/iwi/if_iwi.c
projects/altix/sys/dev/iwn/if_iwn.c
projects/altix/sys/dev/ixgbe/ixgbe.c
projects/altix/sys/dev/le/lance.c
projects/altix/sys/dev/malo/if_malo.c
projects/altix/sys/dev/md/md.c
projects/altix/sys/dev/mii/brgphy.c
projects/altix/sys/dev/mii/e1000phy.c
projects/altix/sys/dev/mii/miidevs
projects/altix/sys/dev/mpt/mpt.c
projects/altix/sys/dev/mpt/mpt.h
projects/altix/sys/dev/mpt/mpt_cam.c
projects/altix/sys/dev/mpt/mpt_pci.c
projects/altix/sys/dev/msk/if_msk.c
projects/altix/sys/dev/msk/if_mskreg.h
projects/altix/sys/dev/mwl/if_mwl.c
projects/altix/sys/dev/mxge/if_mxge.c
projects/altix/sys/dev/mxge/if_mxge_var.h
projects/altix/sys/dev/my/if_my.c
projects/altix/sys/dev/nfe/if_nfe.c
projects/altix/sys/dev/nxge/if_nxge.c
projects/altix/sys/dev/pdq/pdq_ifsubr.c
projects/altix/sys/dev/ppbus/if_plip.c
projects/altix/sys/dev/quicc/quicc_bfe.h
projects/altix/sys/dev/ral/rt2560.c
projects/altix/sys/dev/ral/rt2661.c
projects/altix/sys/dev/re/if_re.c
projects/altix/sys/dev/sbni/if_sbni.c
projects/altix/sys/dev/siis/siis.c
projects/altix/sys/dev/siis/siis.h
projects/altix/sys/dev/sis/if_sis.c
projects/altix/sys/dev/smc/if_smc.c
projects/altix/sys/dev/sn/if_sn.c
projects/altix/sys/dev/snc/dp83932.c
projects/altix/sys/dev/sound/pcm/buffer.c
projects/altix/sys/dev/sound/pcm/buffer.h
projects/altix/sys/dev/sound/usb/uaudio.c
projects/altix/sys/dev/sym/sym_hipd.c
projects/altix/sys/dev/ti/if_ti.c
projects/altix/sys/dev/uart/uart_dev_ns8250.c
projects/altix/sys/dev/usb/controller/ehci.c
projects/altix/sys/dev/usb/controller/uhci.c
projects/altix/sys/dev/usb/controller/uss820dci.c
projects/altix/sys/dev/usb/input/atp.c
projects/altix/sys/dev/usb/input/uhid.c
projects/altix/sys/dev/usb/input/ukbd.c
projects/altix/sys/dev/usb/input/ums.c
projects/altix/sys/dev/usb/misc/udbp.c
projects/altix/sys/dev/usb/net/if_aue.c
projects/altix/sys/dev/usb/net/if_axe.c
projects/altix/sys/dev/usb/net/if_cdce.c
projects/altix/sys/dev/usb/net/if_cue.c
projects/altix/sys/dev/usb/net/if_kue.c
projects/altix/sys/dev/usb/net/if_rue.c
projects/altix/sys/dev/usb/net/if_udav.c
projects/altix/sys/dev/usb/net/uhso.c
projects/altix/sys/dev/usb/net/usb_ethernet.c
projects/altix/sys/dev/usb/serial/u3g.c
projects/altix/sys/dev/usb/serial/ubsa.c
projects/altix/sys/dev/usb/serial/ubser.c
projects/altix/sys/dev/usb/serial/uchcom.c
projects/altix/sys/dev/usb/serial/uftdi.c
projects/altix/sys/dev/usb/serial/ulpt.c
projects/altix/sys/dev/usb/serial/umodem.c
projects/altix/sys/dev/usb/serial/umoscom.c
projects/altix/sys/dev/usb/serial/uplcom.c
projects/altix/sys/dev/usb/serial/usb_serial.c
projects/altix/sys/dev/usb/serial/uslcom.c
projects/altix/sys/dev/usb/serial/uvisor.c
projects/altix/sys/dev/usb/serial/uvscom.c
projects/altix/sys/dev/usb/storage/umass.c
projects/altix/sys/dev/usb/storage/urio.c
projects/altix/sys/dev/usb/storage/ustorage_fs.c
projects/altix/sys/dev/usb/usb_compat_linux.c
projects/altix/sys/dev/usb/usb_debug.h
projects/altix/sys/dev/usb/usb_dev.c
projects/altix/sys/dev/usb/usb_device.c
projects/altix/sys/dev/usb/usb_device.h
projects/altix/sys/dev/usb/usb_freebsd.h
projects/altix/sys/dev/usb/usb_generic.c
projects/altix/sys/dev/usb/usb_hub.c
projects/altix/sys/dev/usb/usb_request.c
projects/altix/sys/dev/usb/usb_transfer.c
projects/altix/sys/dev/usb/usb_transfer.h
projects/altix/sys/dev/usb/usbdevs
projects/altix/sys/dev/usb/wlan/if_rum.c
projects/altix/sys/dev/usb/wlan/if_run.c
projects/altix/sys/dev/usb/wlan/if_uath.c
projects/altix/sys/dev/usb/wlan/if_upgt.c
projects/altix/sys/dev/usb/wlan/if_ural.c
projects/altix/sys/dev/usb/wlan/if_urtw.c
projects/altix/sys/dev/usb/wlan/if_zyd.c
projects/altix/sys/dev/vx/if_vx.c
projects/altix/sys/dev/wi/if_wi.c
projects/altix/sys/dev/wl/if_wl.c
projects/altix/sys/dev/wpi/if_wpi.c
projects/altix/sys/dev/xe/if_xe.c
projects/altix/sys/dev/xen/netfront/netfront.c
projects/altix/sys/fs/devfs/devfs_devs.c
projects/altix/sys/fs/devfs/devfs_int.h
projects/altix/sys/fs/ext2fs/ext2_readwrite.c
projects/altix/sys/fs/ext2fs/ext2_vnops.c
projects/altix/sys/fs/msdosfs/msdosfs_vnops.c
projects/altix/sys/fs/nfs/nfs_commonkrpc.c
projects/altix/sys/fs/nfs/nfs_commonport.c
projects/altix/sys/fs/nfs/nfs_var.h
projects/altix/sys/fs/nfs/nfsclstate.h
projects/altix/sys/fs/nfs/nfskpiport.h
projects/altix/sys/fs/nfs/nfsport.h
projects/altix/sys/fs/nfsclient/nfs.h
projects/altix/sys/fs/nfsclient/nfs_clbio.c
projects/altix/sys/fs/nfsclient/nfs_clnfsiod.c
projects/altix/sys/fs/nfsclient/nfs_clnode.c
projects/altix/sys/fs/nfsclient/nfs_clport.c
projects/altix/sys/fs/nfsclient/nfs_clrpcops.c
projects/altix/sys/fs/nfsclient/nfs_clstate.c
projects/altix/sys/fs/nfsclient/nfs_clvfsops.c
projects/altix/sys/fs/nfsclient/nfs_clvnops.c
projects/altix/sys/fs/nfsserver/nfs_nfsdstate.c
projects/altix/sys/fs/nwfs/nwfs_io.c
projects/altix/sys/fs/pseudofs/pseudofs_vnops.c
projects/altix/sys/fs/smbfs/smbfs_io.c
projects/altix/sys/fs/tmpfs/tmpfs_vnops.c
projects/altix/sys/geom/eli/g_eli.c
projects/altix/sys/geom/geom.h
projects/altix/sys/geom/geom_io.c
projects/altix/sys/geom/geom_subr.c
projects/altix/sys/geom/part/g_part.c
projects/altix/sys/geom/part/g_part_apm.c
projects/altix/sys/geom/part/g_part_bsd.c
projects/altix/sys/geom/part/g_part_gpt.c
projects/altix/sys/geom/part/g_part_if.m
projects/altix/sys/geom/part/g_part_mbr.c
projects/altix/sys/geom/part/g_part_pc98.c
projects/altix/sys/geom/part/g_part_vtoc8.c
projects/altix/sys/geom/vinum/geom_vinum_var.h
projects/altix/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c
projects/altix/sys/i386/conf/GENERIC
projects/altix/sys/i386/conf/XBOX
projects/altix/sys/i386/i386/bpf_jit_machdep.c
projects/altix/sys/i386/i386/bpf_jit_machdep.h
projects/altix/sys/i386/i386/identcpu.c
projects/altix/sys/i386/i386/io.c
projects/altix/sys/i386/i386/local_apic.c
projects/altix/sys/i386/i386/pmap.c
projects/altix/sys/i386/include/iodev.h
projects/altix/sys/i386/include/pmap.h
projects/altix/sys/i386/include/proc.h
projects/altix/sys/i386/include/specialreg.h
projects/altix/sys/i386/include/xen/xenfunc.h
projects/altix/sys/i386/include/xen/xenvar.h
projects/altix/sys/i386/xen/pmap.c
projects/altix/sys/ia64/conf/GENERIC
projects/altix/sys/ia64/ia64/iodev_machdep.c
projects/altix/sys/ia64/ia64/pmap.c
projects/altix/sys/ia64/include/iodev.h
projects/altix/sys/ia64/include/pmap.h
projects/altix/sys/ia64/include/proc.h
projects/altix/sys/kern/imgact_elf.c
projects/altix/sys/kern/kern_alq.c
projects/altix/sys/kern/kern_clock.c
projects/altix/sys/kern/kern_conf.c
projects/altix/sys/kern/kern_descrip.c
projects/altix/sys/kern/kern_exec.c
projects/altix/sys/kern/kern_gzio.c
projects/altix/sys/kern/kern_ktr.c
projects/altix/sys/kern/kern_ntptime.c
projects/altix/sys/kern/kern_proc.c
projects/altix/sys/kern/kern_resource.c
projects/altix/sys/kern/kern_shutdown.c
projects/altix/sys/kern/kern_sig.c
projects/altix/sys/kern/kern_thread.c
projects/altix/sys/kern/subr_bufring.c
projects/altix/sys/kern/subr_bus.c
projects/altix/sys/kern/subr_taskqueue.c
projects/altix/sys/kern/subr_uio.c
projects/altix/sys/kern/subr_witness.c
projects/altix/sys/kern/sys_pipe.c
projects/altix/sys/kern/sys_process.c
projects/altix/sys/kern/uipc_cow.c
projects/altix/sys/kern/uipc_mbuf.c
projects/altix/sys/kern/uipc_syscalls.c
projects/altix/sys/kern/vfs_bio.c
projects/altix/sys/kern/vfs_cache.c
projects/altix/sys/kern/vfs_subr.c
projects/altix/sys/kern/vfs_vnops.c
projects/altix/sys/mips/adm5120/if_admsw.c
projects/altix/sys/mips/atheros/if_arge.c
projects/altix/sys/mips/cavium/asm_octeon.S
projects/altix/sys/mips/cavium/dev/rgmii/octeon_fau.h
projects/altix/sys/mips/cavium/dev/rgmii/octeon_rgmx.c
projects/altix/sys/mips/cavium/files.octeon1
projects/altix/sys/mips/cavium/octeon_machdep.c
projects/altix/sys/mips/cavium/octeon_pcmap_regs.h
projects/altix/sys/mips/cavium/uart_dev_oct16550.c
projects/altix/sys/mips/conf/AR71XX
projects/altix/sys/mips/conf/SENTRY5
projects/altix/sys/mips/conf/SWARM
projects/altix/sys/mips/conf/XLR
projects/altix/sys/mips/include/_inttypes.h
projects/altix/sys/mips/include/_limits.h
projects/altix/sys/mips/include/asm.h
projects/altix/sys/mips/include/cpu.h
projects/altix/sys/mips/include/cpufunc.h
projects/altix/sys/mips/include/cpuregs.h
projects/altix/sys/mips/include/db_machdep.h
projects/altix/sys/mips/include/param.h
projects/altix/sys/mips/include/pcb.h
projects/altix/sys/mips/include/pmap.h
projects/altix/sys/mips/include/proc.h
projects/altix/sys/mips/include/profile.h
projects/altix/sys/mips/include/pte.h
projects/altix/sys/mips/include/regnum.h
projects/altix/sys/mips/include/sf_buf.h
projects/altix/sys/mips/include/trap.h
projects/altix/sys/mips/include/vmparam.h
projects/altix/sys/mips/malta/gt_pci.c
projects/altix/sys/mips/mips/autoconf.c
projects/altix/sys/mips/mips/db_trace.c
projects/altix/sys/mips/mips/exception.S
projects/altix/sys/mips/mips/fp.S
projects/altix/sys/mips/mips/genassym.c
projects/altix/sys/mips/mips/locore.S
projects/altix/sys/mips/mips/machdep.c
projects/altix/sys/mips/mips/mem.c
projects/altix/sys/mips/mips/mp_machdep.c
projects/altix/sys/mips/mips/mpboot.S
projects/altix/sys/mips/mips/nexus.c
projects/altix/sys/mips/mips/pmap.c
projects/altix/sys/mips/mips/psraccess.S
projects/altix/sys/mips/mips/support.S
projects/altix/sys/mips/mips/swtch.S
projects/altix/sys/mips/mips/tick.c
projects/altix/sys/mips/mips/tlb.S
projects/altix/sys/mips/mips/trap.c
projects/altix/sys/mips/mips/uio_machdep.c
projects/altix/sys/mips/mips/vm_machdep.c
projects/altix/sys/mips/rmi/clock.c
projects/altix/sys/mips/sibyte/sb_machdep.c
projects/altix/sys/modules/Makefile
projects/altix/sys/modules/acpi/acpi/Makefile
projects/altix/sys/modules/cyclic/Makefile
projects/altix/sys/modules/usb/usb/Makefile
projects/altix/sys/net/bpf.c
projects/altix/sys/net/bpf_zerocopy.c
projects/altix/sys/net/bpfdesc.h
projects/altix/sys/net/flowtable.c
projects/altix/sys/net/if.c
projects/altix/sys/net/if_ef.c
projects/altix/sys/net/if_gif.c
projects/altix/sys/net/if_gif.h
projects/altix/sys/net/if_gre.c
projects/altix/sys/net/if_stf.c
projects/altix/sys/net/route.c
projects/altix/sys/net/rtsock.c
projects/altix/sys/net/vnet.c
projects/altix/sys/net/vnet.h
projects/altix/sys/net80211/ieee80211.c
projects/altix/sys/net80211/ieee80211_amrr.c
projects/altix/sys/net80211/ieee80211_freebsd.h
projects/altix/sys/net80211/ieee80211_ht.h
projects/altix/sys/net80211/ieee80211_node.c
projects/altix/sys/net80211/ieee80211_rssadapt.c
projects/altix/sys/net80211/ieee80211_scan_sta.c
projects/altix/sys/net80211/ieee80211_var.h
projects/altix/sys/netgraph/ng_base.c
projects/altix/sys/netgraph/ng_bridge.c
projects/altix/sys/netgraph/ng_bridge.h
projects/altix/sys/netgraph/ng_eiface.c
projects/altix/sys/netgraph/ng_fec.c
projects/altix/sys/netgraph/ng_hub.c
projects/altix/sys/netgraph/ng_hub.h
projects/altix/sys/netgraph/ng_iface.c
projects/altix/sys/netgraph/ng_ksocket.c
projects/altix/sys/netgraph/ng_pipe.c
projects/altix/sys/netgraph/ng_tty.c
projects/altix/sys/netinet/icmp6.h
projects/altix/sys/netinet/if_ether.c
projects/altix/sys/netinet/igmp.c
projects/altix/sys/netinet/in.c
projects/altix/sys/netinet/in_gif.c
projects/altix/sys/netinet/in_proto.c
projects/altix/sys/netinet/in_rmx.c
projects/altix/sys/netinet/ip_dummynet.h
projects/altix/sys/netinet/ip_icmp.c
projects/altix/sys/netinet/ip_icmp.h
projects/altix/sys/netinet/ip_input.c
projects/altix/sys/netinet/ip_var.h
projects/altix/sys/netinet/ipfw/dn_sched.h
projects/altix/sys/netinet/ipfw/dn_sched_rr.c
projects/altix/sys/netinet/ipfw/dn_sched_wf2q.c
projects/altix/sys/netinet/ipfw/ip_dn_private.h
projects/altix/sys/netinet/ipfw/ip_dummynet.c
projects/altix/sys/netinet/ipfw/ip_fw_pfil.c
projects/altix/sys/netinet/ipfw/ip_fw_private.h
projects/altix/sys/netinet/raw_ip.c
projects/altix/sys/netinet/sctp_asconf.c
projects/altix/sys/netinet/sctp_indata.c
projects/altix/sys/netinet/sctp_output.c
projects/altix/sys/netinet/sctputil.c
projects/altix/sys/netinet/tcp_hostcache.c
projects/altix/sys/netinet/tcp_input.c
projects/altix/sys/netinet/tcp_output.c
projects/altix/sys/netinet/tcp_reass.c
projects/altix/sys/netinet/tcp_sack.c
projects/altix/sys/netinet/tcp_subr.c
projects/altix/sys/netinet/tcp_syncache.c
projects/altix/sys/netinet/tcp_timewait.c
projects/altix/sys/netinet/tcp_var.h
projects/altix/sys/netinet/udp_usrreq.c
projects/altix/sys/netinet/udp_var.h
projects/altix/sys/netinet6/frag6.c
projects/altix/sys/netinet6/icmp6.c
projects/altix/sys/netinet6/in6.c
projects/altix/sys/netinet6/in6_gif.c
projects/altix/sys/netinet6/in6_ifattach.c
projects/altix/sys/netinet6/in6_proto.c
projects/altix/sys/netinet6/in6_rmx.c
projects/altix/sys/netinet6/in6_src.c
projects/altix/sys/netinet6/in6_var.h
projects/altix/sys/netinet6/ip6_input.c
projects/altix/sys/netinet6/ip6_mroute.c
projects/altix/sys/netinet6/ip6_var.h
projects/altix/sys/netinet6/nd6.c
projects/altix/sys/netinet6/nd6.h
projects/altix/sys/netinet6/nd6_nbr.c
projects/altix/sys/netinet6/nd6_rtr.c
projects/altix/sys/netinet6/raw_ip6.c
projects/altix/sys/netinet6/scope6.c
projects/altix/sys/netipsec/ah_var.h
projects/altix/sys/netipsec/esp_var.h
projects/altix/sys/netipsec/ipcomp_var.h
projects/altix/sys/netipsec/ipip_var.h
projects/altix/sys/netipsec/ipsec.c
projects/altix/sys/netipsec/ipsec.h
projects/altix/sys/netipsec/ipsec6.h
projects/altix/sys/netipsec/key.c
projects/altix/sys/netipsec/xform_esp.c
projects/altix/sys/nfsclient/nfs_bio.c
projects/altix/sys/pc98/cbus/clock.c
projects/altix/sys/pc98/conf/GENERIC
projects/altix/sys/pc98/pc98/machdep.c
projects/altix/sys/pci/if_rl.c
projects/altix/sys/powerpc/aim/mmu_oea.c
projects/altix/sys/powerpc/aim/mmu_oea64.c
projects/altix/sys/powerpc/booke/pmap.c
projects/altix/sys/powerpc/conf/GENERIC
projects/altix/sys/powerpc/conf/MPC85XX
projects/altix/sys/powerpc/include/pmap.h
projects/altix/sys/powerpc/include/proc.h
projects/altix/sys/powerpc/powerpc/mmu_if.m
projects/altix/sys/powerpc/powerpc/pmap_dispatch.c
projects/altix/sys/security/audit/audit_bsm.c
projects/altix/sys/sparc64/conf/GENERIC
projects/altix/sys/sparc64/include/asi.h
projects/altix/sys/sparc64/include/cache.h
projects/altix/sys/sparc64/include/ofw_machdep.h
projects/altix/sys/sparc64/include/pmap.h
projects/altix/sys/sparc64/include/proc.h
projects/altix/sys/sparc64/isa/isa.c
projects/altix/sys/sparc64/sparc64/cache.c
projects/altix/sys/sparc64/sparc64/cheetah.c
projects/altix/sys/sparc64/sparc64/identcpu.c
projects/altix/sys/sparc64/sparc64/interrupt.S
projects/altix/sys/sparc64/sparc64/locore.S
projects/altix/sys/sparc64/sparc64/machdep.c
projects/altix/sys/sparc64/sparc64/mp_locore.S
projects/altix/sys/sparc64/sparc64/mp_machdep.c
projects/altix/sys/sparc64/sparc64/nexus.c
projects/altix/sys/sparc64/sparc64/ofw_machdep.c
projects/altix/sys/sparc64/sparc64/pmap.c
projects/altix/sys/sparc64/sparc64/tick.c
projects/altix/sys/sun4v/conf/GENERIC
projects/altix/sys/sun4v/include/ofw_machdep.h
projects/altix/sys/sun4v/include/pmap.h
projects/altix/sys/sun4v/include/proc.h
projects/altix/sys/sun4v/sun4v/pmap.c
projects/altix/sys/sys/_task.h
projects/altix/sys/sys/alq.h
projects/altix/sys/sys/buf.h
projects/altix/sys/sys/buf_ring.h
projects/altix/sys/sys/conf.h
projects/altix/sys/sys/dtrace_bsd.h
projects/altix/sys/sys/mbuf.h
projects/altix/sys/sys/mount.h
projects/altix/sys/sys/param.h
projects/altix/sys/sys/proc.h
projects/altix/sys/sys/resource.h
projects/altix/sys/sys/resourcevar.h
projects/altix/sys/sys/taskqueue.h
projects/altix/sys/sys/thr.h
projects/altix/sys/sys/user.h
projects/altix/sys/sys/vmmeter.h
projects/altix/sys/sys/vnode.h
projects/altix/sys/ufs/ffs/ffs_alloc.c
projects/altix/sys/ufs/ffs/ffs_balloc.c
projects/altix/sys/ufs/ffs/ffs_extern.h
projects/altix/sys/ufs/ffs/ffs_inode.c
projects/altix/sys/ufs/ffs/ffs_snapshot.c
projects/altix/sys/ufs/ffs/ffs_softdep.c
projects/altix/sys/ufs/ffs/ffs_subr.c
projects/altix/sys/ufs/ffs/ffs_vfsops.c
projects/altix/sys/ufs/ffs/ffs_vnops.c
projects/altix/sys/ufs/ffs/fs.h
projects/altix/sys/ufs/ffs/softdep.h
projects/altix/sys/ufs/ufs/dinode.h
projects/altix/sys/ufs/ufs/inode.h
projects/altix/sys/ufs/ufs/quota.h
projects/altix/sys/ufs/ufs/ufs_dirhash.c
projects/altix/sys/ufs/ufs/ufs_extern.h
projects/altix/sys/ufs/ufs/ufs_lookup.c
projects/altix/sys/ufs/ufs/ufs_quota.c
projects/altix/sys/ufs/ufs/ufs_vfsops.c
projects/altix/sys/ufs/ufs/ufs_vnops.c
projects/altix/sys/ufs/ufs/ufsmount.h
projects/altix/sys/vm/device_pager.c
projects/altix/sys/vm/phys_pager.c
projects/altix/sys/vm/pmap.h
projects/altix/sys/vm/sg_pager.c
projects/altix/sys/vm/swap_pager.c
projects/altix/sys/vm/uma_core.c
projects/altix/sys/vm/vm_contig.c
projects/altix/sys/vm/vm_extern.h
projects/altix/sys/vm/vm_fault.c
projects/altix/sys/vm/vm_glue.c
projects/altix/sys/vm/vm_kern.c
projects/altix/sys/vm/vm_map.c
projects/altix/sys/vm/vm_map.h
projects/altix/sys/vm/vm_mmap.c
projects/altix/sys/vm/vm_object.c
projects/altix/sys/vm/vm_page.c
projects/altix/sys/vm/vm_page.h
projects/altix/sys/vm/vm_pageout.c
projects/altix/sys/vm/vm_pageout.h
projects/altix/sys/vm/vm_param.h
projects/altix/sys/vm/vnode_pager.c
projects/altix/sys/x86/isa/clock.c
Directory Properties:
projects/altix/lib/libstand/ (props changed)
projects/altix/sys/ (props changed)
projects/altix/sys/amd64/include/xen/ (props changed)
projects/altix/sys/cddl/contrib/opensolaris/ (props changed)
projects/altix/sys/contrib/dev/acpica/ (props changed)
projects/altix/sys/contrib/pf/ (props changed)
projects/altix/sys/contrib/x86emu/ (props changed)
projects/altix/sys/dev/xen/xenpci/ (props changed)
projects/altix/sys/mips/rmi/debug.h (props changed)
projects/altix/sys/mips/rmi/dev/sec/desc.h (props changed)
projects/altix/sys/mips/rmi/msgring.h (props changed)
projects/altix/sys/mips/rmi/shared_structs.h (props changed)
projects/altix/sys/mips/rmi/shared_structs_func.h (props changed)
projects/altix/sys/mips/rmi/shared_structs_offsets.h (props changed)
Modified: projects/altix/sys/amd64/amd64/bpf_jit_machdep.c
==============================================================================
--- projects/altix/sys/amd64/amd64/bpf_jit_machdep.c Sat May 8 20:02:39 2010 (r207794)
+++ projects/altix/sys/amd64/amd64/bpf_jit_machdep.c Sat May 8 20:08:01 2010 (r207795)
@@ -419,62 +419,77 @@ bpf_jit_compile(struct bpf_insn *prog, u
break;
case BPF_JMP|BPF_JA:
- JMP(stream.refs[stream.bpf_pc + ins->k] -
- stream.refs[stream.bpf_pc]);
+ JUMP(ins->k);
break;
case BPF_JMP|BPF_JGT|BPF_K:
- if (ins->jt == 0 && ins->jf == 0)
+ if (ins->jt == ins->jf) {
+ JUMP(ins->jt);
break;
+ }
CMPid(ins->k, EAX);
JCC(JA, JBE);
break;
case BPF_JMP|BPF_JGE|BPF_K:
- if (ins->jt == 0 && ins->jf == 0)
+ if (ins->jt == ins->jf) {
+ JUMP(ins->jt);
break;
+ }
CMPid(ins->k, EAX);
JCC(JAE, JB);
break;
case BPF_JMP|BPF_JEQ|BPF_K:
- if (ins->jt == 0 && ins->jf == 0)
+ if (ins->jt == ins->jf) {
+ JUMP(ins->jt);
break;
+ }
CMPid(ins->k, EAX);
JCC(JE, JNE);
break;
case BPF_JMP|BPF_JSET|BPF_K:
- if (ins->jt == 0 && ins->jf == 0)
+ if (ins->jt == ins->jf) {
+ JUMP(ins->jt);
break;
+ }
TESTid(ins->k, EAX);
JCC(JNE, JE);
break;
case BPF_JMP|BPF_JGT|BPF_X:
- if (ins->jt == 0 && ins->jf == 0)
+ if (ins->jt == ins->jf) {
+ JUMP(ins->jt);
break;
+ }
CMPrd(EDX, EAX);
JCC(JA, JBE);
break;
case BPF_JMP|BPF_JGE|BPF_X:
- if (ins->jt == 0 && ins->jf == 0)
+ if (ins->jt == ins->jf) {
+ JUMP(ins->jt);
break;
+ }
CMPrd(EDX, EAX);
JCC(JAE, JB);
break;
case BPF_JMP|BPF_JEQ|BPF_X:
- if (ins->jt == 0 && ins->jf == 0)
+ if (ins->jt == ins->jf) {
+ JUMP(ins->jt);
break;
+ }
CMPrd(EDX, EAX);
JCC(JE, JNE);
break;
case BPF_JMP|BPF_JSET|BPF_X:
- if (ins->jt == 0 && ins->jf == 0)
+ if (ins->jt == ins->jf) {
+ JUMP(ins->jt);
break;
+ }
TESTrd(EDX, EAX);
JCC(JNE, JE);
break;
Modified: projects/altix/sys/amd64/amd64/bpf_jit_machdep.h
==============================================================================
--- projects/altix/sys/amd64/amd64/bpf_jit_machdep.h Sat May 8 20:02:39 2010 (r207794)
+++ projects/altix/sys/amd64/amd64/bpf_jit_machdep.h Sat May 8 20:08:01 2010 (r207795)
@@ -473,4 +473,10 @@ typedef void (*emit_func)(bpf_bin_stream
} \
} while (0)
+#define JUMP(off) do { \
+ if ((off) != 0) \
+ JMP(stream.refs[stream.bpf_pc + (off)] - \
+ stream.refs[stream.bpf_pc]); \
+} while (0)
+
#endif /* _BPF_JIT_MACHDEP_H_ */
Modified: projects/altix/sys/amd64/amd64/exception.S
==============================================================================
--- projects/altix/sys/amd64/amd64/exception.S Sat May 8 20:02:39 2010 (r207794)
+++ projects/altix/sys/amd64/amd64/exception.S Sat May 8 20:08:01 2010 (r207795)
@@ -50,14 +50,14 @@
.bss
.globl dtrace_invop_jump_addr
.align 8
- .type dtrace_invop_jump_addr, @object
- .size dtrace_invop_jump_addr, 8
+ .type dtrace_invop_jump_addr, at object
+ .size dtrace_invop_jump_addr,8
dtrace_invop_jump_addr:
.zero 8
.globl dtrace_invop_calltrap_addr
.align 8
- .type dtrace_invop_calltrap_addr, @object
- .size dtrace_invop_calltrap_addr, 8
+ .type dtrace_invop_calltrap_addr, at object
+ .size dtrace_invop_calltrap_addr,8
dtrace_invop_calltrap_addr:
.zero 8
#endif
@@ -157,7 +157,6 @@ IDTVEC(align)
* kernel from userland. Reenable interrupts if they were enabled
* before the trap. This approximates SDT_SYS386TGT on the i386 port.
*/
-
SUPERALIGN_TEXT
.globl alltraps
.type alltraps, at function
@@ -211,16 +210,16 @@ alltraps_pushregs_no_rdi:
* Set our jump address for the jump back in the event that
* the breakpoint wasn't caused by DTrace at all.
*/
- movq $calltrap, dtrace_invop_calltrap_addr(%rip)
+ movq $calltrap,dtrace_invop_calltrap_addr(%rip)
/* Jump to the code hooked in by DTrace. */
- movq dtrace_invop_jump_addr, %rax
+ movq dtrace_invop_jump_addr,%rax
jmpq *dtrace_invop_jump_addr
#endif
.globl calltrap
.type calltrap, at function
calltrap:
- movq %rsp, %rdi
+ movq %rsp,%rdi
call trap
MEXITCOUNT
jmp doreti /* Handle any pending ASTs */
@@ -274,9 +273,11 @@ IDTVEC(dblfault)
testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */
jz 1f /* already running with kernel GS.base */
swapgs
-1: movq %rsp, %rdi
+1:
+ movq %rsp,%rdi
call dblfault_handler
-2: hlt
+2:
+ hlt
jmp 2b
IDTVEC(page)
@@ -369,7 +370,7 @@ IDTVEC(fast_syscall)
movq %r15,TF_R15(%rsp) /* C preserved */
movl $TF_HASSEGS,TF_FLAGS(%rsp)
FAKE_MCOUNT(TF_RIP(%rsp))
- movq %rsp, %rdi
+ movq %rsp,%rdi
call syscall
movq PCPU(CURPCB),%rax
andq $~PCB_FULLCTX,PCB_FLAGS(%rax)
@@ -456,7 +457,7 @@ nmi_fromuserspace:
/* Note: this label is also used by ddb and gdb: */
nmi_calltrap:
FAKE_MCOUNT(TF_RIP(%rsp))
- movq %rsp, %rdi
+ movq %rsp,%rdi
call trap
MEXITCOUNT
#ifdef HWPMC_HOOKS
@@ -555,9 +556,9 @@ nmi_restoreregs:
iretq
ENTRY(fork_trampoline)
- movq %r12, %rdi /* function */
- movq %rbx, %rsi /* arg1 */
- movq %rsp, %rdx /* trapframe pointer */
+ movq %r12,%rdi /* function */
+ movq %rbx,%rsi /* arg1 */
+ movq %rsp,%rdx /* trapframe pointer */
call fork_exit
MEXITCOUNT
jmp doreti /* Handle any ASTs */
@@ -628,7 +629,7 @@ doreti_ast:
testl $TDF_ASTPENDING | TDF_NEEDRESCHED,TD_FLAGS(%rax)
je doreti_exit
sti
- movq %rsp, %rdi /* pass a pointer to the trapframe */
+ movq %rsp,%rdi /* pass a pointer to the trapframe */
call ast
jmp doreti_ast
@@ -648,8 +649,8 @@ doreti_exit:
* Do not reload segment registers for kernel.
* Since we do not reload segments registers with sane
* values on kernel entry, descriptors referenced by
- * segments registers may be not valid. This is fatal
- * for the usermode, but is innocent for the kernel.
+ * segments registers might be not valid. This is fatal
+ * for user mode, but is not a problem for the kernel.
*/
testb $SEL_RPL_MASK,TF_CS(%rsp)
jz ld_regs
@@ -662,14 +663,16 @@ do_segs:
/* Restore %fs and fsbase */
movw TF_FS(%rsp),%ax
.globl ld_fs
-ld_fs: movw %ax,%fs
+ld_fs:
+ movw %ax,%fs
cmpw $KUF32SEL,%ax
jne 1f
movl $MSR_FSBASE,%ecx
movl PCB_FSBASE(%r8),%eax
movl PCB_FSBASE+4(%r8),%edx
.globl ld_fsbase
-ld_fsbase: wrmsr
+ld_fsbase:
+ wrmsr
1:
/* Restore %gs and gsbase */
movw TF_GS(%rsp),%si
@@ -678,7 +681,8 @@ ld_fsbase: wrmsr
movl $MSR_GSBASE,%ecx
rdmsr
.globl ld_gs
-ld_gs: movw %si,%gs
+ld_gs:
+ movw %si,%gs
wrmsr
popfq
cmpw $KUG32SEL,%si
@@ -687,12 +691,17 @@ ld_gs: movw %si,%gs
movl PCB_GSBASE(%r8),%eax
movl PCB_GSBASE+4(%r8),%edx
.globl ld_gsbase
-ld_gsbase: wrmsr
-1: .globl ld_es
-ld_es: movw TF_ES(%rsp),%es
+ld_gsbase:
+ wrmsr
+1:
+ .globl ld_es
+ld_es:
+ movw TF_ES(%rsp),%es
.globl ld_ds
-ld_ds: movw TF_DS(%rsp),%ds
-ld_regs:movq TF_RDI(%rsp),%rdi
+ld_ds:
+ movw TF_DS(%rsp),%ds
+ld_regs:
+ movq TF_RDI(%rsp),%rdi
movq TF_RSI(%rsp),%rsi
movq TF_RDX(%rsp),%rdx
movq TF_RCX(%rsp),%rcx
@@ -711,7 +720,8 @@ ld_regs:movq TF_RDI(%rsp),%rdi
jz 1f /* keep running with kernel GS.base */
cli
swapgs
-1: addq $TF_RIP,%rsp /* skip over tf_err, tf_trapno */
+1:
+ addq $TF_RIP,%rsp /* skip over tf_err, tf_trapno */
.globl doreti_iret
doreti_iret:
iretq
@@ -738,7 +748,8 @@ doreti_iret_fault:
testl $PSL_I,TF_RFLAGS(%rsp)
jz 1f
sti
-1: movw %fs,TF_FS(%rsp)
+1:
+ movw %fs,TF_FS(%rsp)
movw %gs,TF_GS(%rsp)
movw %es,TF_ES(%rsp)
movw %ds,TF_DS(%rsp)
@@ -768,7 +779,7 @@ doreti_iret_fault:
.globl ds_load_fault
ds_load_fault:
movl $T_PROTFLT,TF_TRAPNO(%rsp)
- movq %rsp, %rdi
+ movq %rsp,%rdi
call trap
movw $KUDSEL,TF_DS(%rsp)
jmp doreti
@@ -777,7 +788,7 @@ ds_load_fault:
.globl es_load_fault
es_load_fault:
movl $T_PROTFLT,TF_TRAPNO(%rsp)
- movq %rsp, %rdi
+ movq %rsp,%rdi
call trap
movw $KUDSEL,TF_ES(%rsp)
jmp doreti
@@ -786,7 +797,7 @@ es_load_fault:
.globl fs_load_fault
fs_load_fault:
movl $T_PROTFLT,TF_TRAPNO(%rsp)
- movq %rsp, %rdi
+ movq %rsp,%rdi
call trap
movw $KUF32SEL,TF_FS(%rsp)
jmp doreti
@@ -796,7 +807,7 @@ fs_load_fault:
gs_load_fault:
popfq
movl $T_PROTFLT,TF_TRAPNO(%rsp)
- movq %rsp, %rdi
+ movq %rsp,%rdi
call trap
movw $KUG32SEL,TF_GS(%rsp)
jmp doreti
@@ -805,7 +816,7 @@ gs_load_fault:
.globl fsbase_load_fault
fsbase_load_fault:
movl $T_PROTFLT,TF_TRAPNO(%rsp)
- movq %rsp, %rdi
+ movq %rsp,%rdi
call trap
movq PCPU(CURTHREAD),%r8
movq TD_PCB(%r8),%r8
@@ -815,9 +826,8 @@ fsbase_load_fault:
ALIGN_TEXT
.globl gsbase_load_fault
gsbase_load_fault:
- popfq
movl $T_PROTFLT,TF_TRAPNO(%rsp)
- movq %rsp, %rdi
+ movq %rsp,%rdi
call trap
movq PCPU(CURTHREAD),%r8
movq TD_PCB(%r8),%r8
Modified: projects/altix/sys/amd64/amd64/identcpu.c
==============================================================================
--- projects/altix/sys/amd64/amd64/identcpu.c Sat May 8 20:02:39 2010 (r207794)
+++ projects/altix/sys/amd64/amd64/identcpu.c Sat May 8 20:08:01 2010 (r207795)
@@ -240,7 +240,7 @@ printcpuinfo(void)
printf("\n Features2=0x%b", cpu_feature2,
"\020"
"\001SSE3" /* SSE3 */
- "\002<b1>"
+ "\002PCLMULQDQ" /* Carry-Less Mul Quadword */
"\003DTES64" /* 64-bit Debug Trace */
"\004MON" /* MONITOR/MWAIT Instructions */
"\005DS_CPL" /* CPL Qualified Debug Store */
@@ -264,7 +264,7 @@ printcpuinfo(void)
"\027MOVBE"
"\030POPCNT"
"\031<b24>"
- "\032<b25>"
+ "\032AESNI" /* AES Crypto*/
"\033XSAVE"
"\034OSXSAVE"
"\035<b28>"
Modified: projects/altix/sys/amd64/amd64/io.c
==============================================================================
--- projects/altix/sys/amd64/amd64/io.c Sat May 8 20:02:39 2010 (r207794)
+++ projects/altix/sys/amd64/amd64/io.c Sat May 8 20:08:01 2010 (r207795)
@@ -28,60 +28,32 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
-#include <sys/conf.h>
-#include <sys/fcntl.h>
-#include <sys/lock.h>
-#include <sys/malloc.h>
-#include <sys/mutex.h>
-#include <sys/priv.h>
#include <sys/proc.h>
-#include <sys/signalvar.h>
-#include <sys/systm.h>
-#include <machine/db_machdep.h>
#include <machine/frame.h>
-#include <machine/psl.h>
-#include <machine/specialreg.h>
-
-#include <vm/vm.h>
-#include <vm/pmap.h>
-
#include <machine/iodev.h>
+#include <machine/psl.h>
-/* ARGSUSED */
int
-ioopen(struct cdev *dev __unused, int flags __unused, int fmt __unused,
- struct thread *td)
+iodev_open(struct thread *td)
{
- int error;
-
- error = priv_check(td, PRIV_IO);
- if (error != 0)
- return (error);
- error = securelevel_gt(td->td_ucred, 0);
- if (error != 0)
- return (error);
td->td_frame->tf_rflags |= PSL_IOPL;
-
return (0);
}
-/* ARGSUSED */
int
-ioclose(struct cdev *dev __unused, int flags __unused, int fmt __unused,
- struct thread *td)
+iodev_close(struct thread *td)
{
- td->td_frame->tf_rflags &= ~PSL_IOPL;
+ td->td_frame->tf_rflags &= ~PSL_IOPL;
return (0);
}
/* ARGSUSED */
int
-ioioctl(struct cdev *dev __unused, u_long cmd __unused, caddr_t data __unused,
- int fflag __unused, struct thread *td __unused)
+iodev_ioctl(u_long cmd __unused, caddr_t data __unused)
{
- return (ENXIO);
+ return (ENOIOCTL);
}
Modified: projects/altix/sys/amd64/amd64/local_apic.c
==============================================================================
--- projects/altix/sys/amd64/amd64/local_apic.c Sat May 8 20:02:39 2010 (r207794)
+++ projects/altix/sys/amd64/amd64/local_apic.c Sat May 8 20:08:01 2010 (r207795)
@@ -70,7 +70,7 @@ __FBSDID("$FreeBSD$");
#ifdef KDTRACE_HOOKS
#include <sys/dtrace_bsd.h>
-cyclic_clock_func_t lapic_cyclic_clock_func[MAXCPU];
+cyclic_clock_func_t cyclic_clock_func[MAXCPU];
#endif
/* Sanity checks on IDT vectors. */
@@ -778,8 +778,8 @@ lapic_handle_timer(struct trapframe *fra
* timers.
*/
int cpu = PCPU_GET(cpuid);
- if (lapic_cyclic_clock_func[cpu] != NULL)
- (*lapic_cyclic_clock_func[cpu])(frame);
+ if (cyclic_clock_func[cpu] != NULL)
+ (*cyclic_clock_func[cpu])(frame);
#endif
/* Fire hardclock at hz. */
Modified: projects/altix/sys/amd64/amd64/pmap.c
==============================================================================
--- projects/altix/sys/amd64/amd64/pmap.c Sat May 8 20:02:39 2010 (r207794)
+++ projects/altix/sys/amd64/amd64/pmap.c Sat May 8 20:08:01 2010 (r207795)
@@ -236,6 +236,7 @@ static void pmap_fill_ptp(pt_entry_t *fi
static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte);
static void pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva);
static boolean_t pmap_is_modified_pvh(struct md_page *pvh);
+static boolean_t pmap_is_referenced_pvh(struct md_page *pvh);
static void pmap_kenter_attr(vm_offset_t va, vm_paddr_t pa, int mode);
static vm_page_t pmap_lookup_pt_page(pmap_t pmap, vm_offset_t va);
static void pmap_pde_attr(pd_entry_t *pde, int cache_bits);
@@ -283,7 +284,7 @@ pmap_kmem_choose(vm_offset_t addr)
vm_offset_t newaddr = addr;
newaddr = (addr + (NBPDR - 1)) & ~(NBPDR - 1);
- return newaddr;
+ return (newaddr);
}
/********************/
@@ -294,7 +295,7 @@ pmap_kmem_choose(vm_offset_t addr)
static __inline vm_pindex_t
pmap_pde_pindex(vm_offset_t va)
{
- return va >> PDRSHIFT;
+ return (va >> PDRSHIFT);
}
@@ -353,7 +354,7 @@ pmap_pdpe(pmap_t pmap, vm_offset_t va)
pml4e = pmap_pml4e(pmap, va);
if ((*pml4e & PG_V) == 0)
- return NULL;
+ return (NULL);
return (pmap_pml4e_to_pdpe(pml4e, va));
}
@@ -375,7 +376,7 @@ pmap_pde(pmap_t pmap, vm_offset_t va)
pdpe = pmap_pdpe(pmap, va);
if (pdpe == NULL || (*pdpe & PG_V) == 0)
- return NULL;
+ return (NULL);
return (pmap_pdpe_to_pde(pdpe, va));
}
@@ -397,12 +398,27 @@ pmap_pte(pmap_t pmap, vm_offset_t va)
pde = pmap_pde(pmap, va);
if (pde == NULL || (*pde & PG_V) == 0)
- return NULL;
+ return (NULL);
if ((*pde & PG_PS) != 0) /* compat with i386 pmap_pte() */
return ((pt_entry_t *)pde);
return (pmap_pde_to_pte(pde, va));
}
+static __inline void
+pmap_resident_count_inc(pmap_t pmap, int count)
+{
+
+ PMAP_LOCK_ASSERT(pmap, MA_OWNED);
+ pmap->pm_stats.resident_count += count;
+}
+
+static __inline void
+pmap_resident_count_dec(pmap_t pmap, int count)
+{
+
+ PMAP_LOCK_ASSERT(pmap, MA_OWNED);
+ pmap->pm_stats.resident_count -= count;
+}
PMAP_INLINE pt_entry_t *
vtopte(vm_offset_t va)
@@ -777,7 +793,6 @@ static u_long pmap_pdpe_demotions;
SYSCTL_ULONG(_vm_pmap_pdpe, OID_AUTO, demotions, CTLFLAG_RD,
&pmap_pdpe_demotions, 0, "1GB page demotions");
-
/***************************************************
* Low level helper routines.....
***************************************************/
@@ -1184,15 +1199,20 @@ pmap_extract_and_hold(pmap_t pmap, vm_of
{
pd_entry_t pde, *pdep;
pt_entry_t pte;
+ vm_paddr_t pa;
vm_page_t m;
+ pa = 0;
m = NULL;
- vm_page_lock_queues();
PMAP_LOCK(pmap);
+retry:
pdep = pmap_pde(pmap, va);
if (pdep != NULL && (pde = *pdep)) {
if (pde & PG_PS) {
if ((pde & PG_RW) || (prot & VM_PROT_WRITE) == 0) {
+ if (vm_page_pa_tryrelock(pmap, (pde & PG_PS_FRAME) |
+ (va & PDRMASK), &pa))
+ goto retry;
m = PHYS_TO_VM_PAGE((pde & PG_PS_FRAME) |
(va & PDRMASK));
vm_page_hold(m);
@@ -1201,12 +1221,14 @@ pmap_extract_and_hold(pmap_t pmap, vm_of
pte = *pmap_pde_to_pte(pdep, va);
if ((pte & PG_V) &&
((pte & PG_RW) || (prot & VM_PROT_WRITE) == 0)) {
+ if (vm_page_pa_tryrelock(pmap, pte & PG_FRAME, &pa))
+ goto retry;
m = PHYS_TO_VM_PAGE(pte & PG_FRAME);
vm_page_hold(m);
}
}
}
- vm_page_unlock_queues();
+ PA_UNLOCK_COND(pa);
PMAP_UNLOCK(pmap);
return (m);
}
@@ -1236,7 +1258,7 @@ pmap_kextract(vm_offset_t va)
pa = (pa & PG_FRAME) | (va & PAGE_MASK);
}
}
- return pa;
+ return (pa);
}
/***************************************************
@@ -1466,9 +1488,9 @@ pmap_unwire_pte_hold(pmap_t pmap, vm_off
--m->wire_count;
if (m->wire_count == 0)
- return _pmap_unwire_pte_hold(pmap, va, m, free);
+ return (_pmap_unwire_pte_hold(pmap, va, m, free));
else
- return 0;
+ return (0);
}
static int
@@ -1476,6 +1498,7 @@ _pmap_unwire_pte_hold(pmap_t pmap, vm_of
vm_page_t *free)
{
+ PMAP_LOCK_ASSERT(pmap, MA_OWNED);
/*
* unmap the page table page
*/
@@ -1495,7 +1518,7 @@ _pmap_unwire_pte_hold(pmap_t pmap, vm_of
pd = pmap_pde(pmap, va);
*pd = 0;
}
- --pmap->pm_stats.resident_count;
+ pmap_resident_count_dec(pmap, 1);
if (m->pindex < NUPDE) {
/* We just released a PT, unhold the matching PD */
vm_page_t pdpg;
@@ -1524,7 +1547,7 @@ _pmap_unwire_pte_hold(pmap_t pmap, vm_of
*/
pmap_add_delayed_free_list(m, free, TRUE);
- return 1;
+ return (1);
}
/*
@@ -1537,10 +1560,10 @@ pmap_unuse_pt(pmap_t pmap, vm_offset_t v
vm_page_t mpte;
if (va >= VM_MAXUSER_ADDRESS)
- return 0;
+ return (0);
KASSERT(ptepde != 0, ("pmap_unuse_pt: ptepde != 0"));
mpte = PHYS_TO_VM_PAGE(ptepde & PG_FRAME);
- return pmap_unwire_pte_hold(pmap, va, mpte, free);
+ return (pmap_unwire_pte_hold(pmap, va, mpte, free));
}
void
@@ -1612,6 +1635,7 @@ _pmap_allocpte(pmap_t pmap, vm_pindex_t
(flags & (M_NOWAIT | M_WAITOK)) == M_WAITOK,
("_pmap_allocpte: flags is neither M_NOWAIT nor M_WAITOK"));
+ PMAP_LOCK_ASSERT(pmap, MA_OWNED);
/*
* Allocate a page table page.
*/
@@ -1729,9 +1753,9 @@ _pmap_allocpte(pmap_t pmap, vm_pindex_t
*pd = VM_PAGE_TO_PHYS(m) | PG_U | PG_RW | PG_V | PG_A | PG_M;
}
- pmap->pm_stats.resident_count++;
+ pmap_resident_count_inc(pmap, 1);
- return m;
+ return (m);
}
static vm_page_t
@@ -2036,7 +2060,7 @@ pmap_collect(pmap_t locked_pmap, struct
PMAP_LOCK(pmap);
else if (pmap != locked_pmap && !PMAP_TRYLOCK(pmap))
continue;
- pmap->pm_stats.resident_count--;
+ pmap_resident_count_dec(pmap, 1);
pde = pmap_pde(pmap, va);
KASSERT((*pde & PG_PS) == 0, ("pmap_collect: found"
" a 2mpage in page %p's pv list", m));
@@ -2437,7 +2461,7 @@ pmap_demote_pde(pmap_t pmap, pd_entry_t
return (FALSE);
}
if (va < VM_MAXUSER_ADDRESS)
- pmap->pm_stats.resident_count++;
+ pmap_resident_count_inc(pmap, 1);
}
mptepa = VM_PAGE_TO_PHYS(mpte);
firstpte = (pt_entry_t *)PHYS_TO_DMAP(mptepa);
@@ -2529,7 +2553,7 @@ pmap_remove_pde(pmap_t pmap, pd_entry_t
*/
if (oldpde & PG_G)
pmap_invalidate_page(kernel_pmap, sva);
- pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE;
+ pmap_resident_count_dec(pmap, NBPDR / PAGE_SIZE);
if (oldpde & PG_MANAGED) {
pvh = pa_to_pvh(oldpde & PG_PS_FRAME);
pmap_pvh_free(pvh, pmap, sva);
@@ -2552,7 +2576,7 @@ pmap_remove_pde(pmap_t pmap, pd_entry_t
mpte = pmap_lookup_pt_page(pmap, sva);
if (mpte != NULL) {
pmap_remove_pt_page(pmap, mpte);
- pmap->pm_stats.resident_count--;
+ pmap_resident_count_dec(pmap, 1);
KASSERT(mpte->wire_count == NPTEPG,
("pmap_remove_pde: pte page wire count error"));
mpte->wire_count = 0;
@@ -2583,7 +2607,7 @@ pmap_remove_pte(pmap_t pmap, pt_entry_t
*/
if (oldpte & PG_G)
pmap_invalidate_page(kernel_pmap, va);
- pmap->pm_stats.resident_count -= 1;
+ pmap_resident_count_dec(pmap, 1);
if (oldpte & PG_MANAGED) {
m = PHYS_TO_VM_PAGE(oldpte & PG_FRAME);
if ((oldpte & (PG_M | PG_RW)) == (PG_M | PG_RW))
@@ -2775,9 +2799,9 @@ pmap_remove_all(vm_page_t m)
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m));
while ((pv = TAILQ_FIRST(&pvh->pv_list)) != NULL) {
- va = pv->pv_va;
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
+ va = pv->pv_va;
pde = pmap_pde(pmap, va);
(void)pmap_demote_pde(pmap, pde, va);
PMAP_UNLOCK(pmap);
@@ -2785,7 +2809,7 @@ pmap_remove_all(vm_page_t m)
while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) {
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
- pmap->pm_stats.resident_count--;
+ pmap_resident_count_dec(pmap, 1);
pde = pmap_pde(pmap, pv->pv_va);
KASSERT((*pde & PG_PS) == 0, ("pmap_remove_all: found"
" a 2mpage in page %p's pv list", m));
@@ -2832,18 +2856,9 @@ retry:
if (oldpde & PG_MANAGED) {
eva = sva + NBPDR;
for (va = sva, m = PHYS_TO_VM_PAGE(oldpde & PG_PS_FRAME);
- va < eva; va += PAGE_SIZE, m++) {
- /*
- * In contrast to the analogous operation on a 4KB page
- * mapping, the mapping's PG_A flag is not cleared and
- * the page's PG_REFERENCED flag is not set. The
- * reason is that pmap_demote_pde() expects that a 2MB
- * page mapping with a stored page table page has PG_A
- * set.
- */
+ va < eva; va += PAGE_SIZE, m++)
if ((oldpde & (PG_M | PG_RW)) == (PG_M | PG_RW))
vm_page_dirty(m);
- }
}
if ((prot & VM_PROT_WRITE) == 0)
newpde &= ~(PG_RW | PG_M);
@@ -2952,23 +2967,15 @@ retry:
obits = pbits = *pte;
if ((pbits & PG_V) == 0)
continue;
- if (pbits & PG_MANAGED) {
- m = NULL;
- if (pbits & PG_A) {
+
+ if ((prot & VM_PROT_WRITE) == 0) {
+ if ((pbits & (PG_MANAGED | PG_M | PG_RW)) ==
+ (PG_MANAGED | PG_M | PG_RW)) {
m = PHYS_TO_VM_PAGE(pbits & PG_FRAME);
- vm_page_flag_set(m, PG_REFERENCED);
- pbits &= ~PG_A;
- }
- if ((pbits & (PG_M | PG_RW)) == (PG_M | PG_RW)) {
- if (m == NULL)
- m = PHYS_TO_VM_PAGE(pbits &
- PG_FRAME);
vm_page_dirty(m);
}
- }
-
- if ((prot & VM_PROT_WRITE) == 0)
pbits &= ~(PG_RW | PG_M);
+ }
if ((prot & VM_PROT_EXECUTE) == 0)
pbits |= pg_nx;
@@ -3142,9 +3149,8 @@ pmap_enter(pmap_t pmap, vm_offset_t va,
* In the case that a page table page is not
* resident, we are creating it here.
*/
- if (va < VM_MAXUSER_ADDRESS) {
+ if (va < VM_MAXUSER_ADDRESS)
mpte = pmap_allocpte(pmap, va, M_WAITOK);
- }
pde = pmap_pde(pmap, va);
if (pde != NULL && (*pde & PG_V) != 0) {
@@ -3208,7 +3214,7 @@ pmap_enter(pmap_t pmap, vm_offset_t va,
" va: 0x%lx", va));
}
} else
- pmap->pm_stats.resident_count++;
+ pmap_resident_count_inc(pmap, 1);
/*
* Enter on the PV list if part of our managed memory.
@@ -3342,7 +3348,7 @@ pmap_enter_pde(pmap_t pmap, vm_offset_t
/*
* Increment counters.
*/
- pmap->pm_stats.resident_count += NBPDR / PAGE_SIZE;
+ pmap_resident_count_inc(pmap, NBPDR / PAGE_SIZE);
/*
* Map the superpage.
@@ -3392,7 +3398,7 @@ pmap_enter_object(pmap_t pmap, vm_offset
mpte);
m = TAILQ_NEXT(m, listq);
}
- PMAP_UNLOCK(pmap);
+ PMAP_UNLOCK(pmap);
}
/*
@@ -3496,7 +3502,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_
/*
* Increment counters
*/
- pmap->pm_stats.resident_count++;
+ pmap_resident_count_inc(pmap, 1);
pa = VM_PAGE_TO_PHYS(m) | pmap_cache_bits(m->md.pat_mode, 0);
if ((prot & VM_PROT_EXECUTE) == 0)
@@ -3509,7 +3515,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_
pte_store(pte, pa | PG_V | PG_U);
else
pte_store(pte, pa | PG_V | PG_U | PG_MANAGED);
- return mpte;
+ return (mpte);
}
/*
@@ -3601,8 +3607,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offs
if ((*pde & PG_V) == 0) {
pde_store(pde, pa | PG_PS | PG_M | PG_A |
PG_U | PG_RW | PG_V);
- pmap->pm_stats.resident_count += NBPDR /
- PAGE_SIZE;
+ pmap_resident_count_inc(pmap, NBPDR / PAGE_SIZE);
pmap_pde_mappings++;
} else {
/* Continue on if the PDE is already valid. */
@@ -3669,8 +3674,6 @@ out:
PMAP_UNLOCK(pmap);
}
-
-
/*
* Copy the range specified by src_addr/len
* from the source map to the range dst_addr/len
@@ -3745,8 +3748,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pm
pmap_pv_insert_pde(dst_pmap, addr, srcptepaddr &
PG_PS_FRAME))) {
*pde = srcptepaddr & ~PG_W;
- dst_pmap->pm_stats.resident_count +=
- NBPDR / PAGE_SIZE;
+ pmap_resident_count_inc(dst_pmap, NBPDR / PAGE_SIZE);
} else
dstmpde->wire_count--;
continue;
@@ -3789,7 +3791,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pm
*/
*dst_pte = ptetemp & ~(PG_W | PG_M |
PG_A);
- dst_pmap->pm_stats.resident_count++;
+ pmap_resident_count_inc(dst_pmap, 1);
} else {
free = NULL;
if (pmap_unwire_pte_hold(dst_pmap,
@@ -3886,12 +3888,12 @@ pmap_page_exists_quick(pmap_t pmap, vm_p
int loops = 0;
if (m->flags & PG_FICTITIOUS)
- return FALSE;
+ return (FALSE);
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) {
if (PV_PMAP(pv) == pmap) {
- return TRUE;
+ return (TRUE);
}
loops++;
if (loops >= 16)
@@ -3959,16 +3961,15 @@ pmap_pvh_wired_mappings(struct md_page *
boolean_t
pmap_page_is_mapped(vm_page_t m)
{
- struct md_page *pvh;
+ boolean_t rv;
if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0)
return (FALSE);
- mtx_assert(&vm_page_queue_mtx, MA_OWNED);
- if (TAILQ_EMPTY(&m->md.pv_list)) {
- pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m));
- return (!TAILQ_EMPTY(&pvh->pv_list));
- } else
- return (TRUE);
+ vm_page_lock_queues();
+ rv = !TAILQ_EMPTY(&m->md.pv_list) ||
+ !TAILQ_EMPTY(&pa_to_pvh(VM_PAGE_TO_PHYS(m))->pv_list);
+ vm_page_unlock_queues();
+ return (rv);
}
/*
@@ -4062,7 +4063,7 @@ pmap_remove_pages(pmap_t pmap)
pv_entry_count--;
pc->pc_map[field] |= bitmask;
if ((tpte & PG_PS) != 0) {
- pmap->pm_stats.resident_count -= NBPDR / PAGE_SIZE;
+ pmap_resident_count_dec(pmap, NBPDR / PAGE_SIZE);
pvh = pa_to_pvh(tpte & PG_PS_FRAME);
TAILQ_REMOVE(&pvh->pv_list, pv, pv_list);
if (TAILQ_EMPTY(&pvh->pv_list)) {
@@ -4073,7 +4074,7 @@ pmap_remove_pages(pmap_t pmap)
mpte = pmap_lookup_pt_page(pmap, pv->pv_va);
if (mpte != NULL) {
pmap_remove_pt_page(pmap, mpte);
- pmap->pm_stats.resident_count--;
+ pmap_resident_count_dec(pmap, 1);
KASSERT(mpte->wire_count == NPTEPG,
("pmap_remove_pages: pte page wire count error"));
mpte->wire_count = 0;
@@ -4081,7 +4082,7 @@ pmap_remove_pages(pmap_t pmap)
atomic_subtract_int(&cnt.v_wire_count, 1);
}
} else {
- pmap->pm_stats.resident_count--;
+ pmap_resident_count_dec(pmap, 1);
TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
if (TAILQ_EMPTY(&m->md.pv_list)) {
pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m));
@@ -4178,6 +4179,49 @@ pmap_is_prefaultable(pmap_t pmap, vm_off
}
/*
+ * pmap_is_referenced:
+ *
+ * Return whether or not the specified physical page was referenced
+ * in any physical maps.
+ */
+boolean_t
+pmap_is_referenced(vm_page_t m)
+{
+
+ if (m->flags & PG_FICTITIOUS)
+ return (FALSE);
+ if (pmap_is_referenced_pvh(&m->md))
+ return (TRUE);
+ return (pmap_is_referenced_pvh(pa_to_pvh(VM_PAGE_TO_PHYS(m))));
+}
+
+/*
+ * Returns TRUE if any of the given mappings were referenced and FALSE
+ * otherwise. Both page and 2mpage mappings are supported.
+ */
+static boolean_t
+pmap_is_referenced_pvh(struct md_page *pvh)
+{
+ pv_entry_t pv;
+ pt_entry_t *pte;
+ pmap_t pmap;
+ boolean_t rv;
+
+ mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+ rv = FALSE;
+ TAILQ_FOREACH(pv, &pvh->pv_list, pv_list) {
+ pmap = PV_PMAP(pv);
+ PMAP_LOCK(pmap);
+ pte = pmap_pte(pmap, pv->pv_va);
+ rv = (*pte & (PG_A | PG_V)) == (PG_A | PG_V);
+ PMAP_UNLOCK(pmap);
+ if (rv)
+ break;
+ }
+ return (rv);
+}
+
+/*
* Clear the write and modified bits in each of the given page's mappings.
*/
void
@@ -4196,9 +4240,9 @@ pmap_remove_write(vm_page_t m)
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m));
TAILQ_FOREACH_SAFE(pv, &pvh->pv_list, pv_list, next_pv) {
- va = pv->pv_va;
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
+ va = pv->pv_va;
pde = pmap_pde(pmap, va);
if ((*pde & PG_RW) != 0)
(void)pmap_demote_pde(pmap, pde, va);
@@ -4254,9 +4298,9 @@ pmap_ts_referenced(vm_page_t m)
mtx_assert(&vm_page_queue_mtx, MA_OWNED);
pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m));
TAILQ_FOREACH_SAFE(pv, &pvh->pv_list, pv_list, pvn) {
- va = pv->pv_va;
pmap = PV_PMAP(pv);
PMAP_LOCK(pmap);
+ va = pv->pv_va;
pde = pmap_pde(pmap, va);
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list