Date: Fri, 19 Oct 2012 13:05:52 +0000 (UTC) From: Andre Oppermann <andre@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r241732 - in user/andre/tcp_workqueue/sys: amd64/amd64 amd64/conf amd64/include amd64/include/pc amd64/pci arm/arm arm/at91 arm/broadcom/bcm2835 arm/conf arm/econa arm/include arm/lpc a... Message-ID: <201210191305.q9JD5qub096243@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: andre Date: Fri Oct 19 13:05:51 2012 New Revision: 241732 URL: http://svn.freebsd.org/changeset/base/241732 Log: Integrate from HEAD @241731. Added: user/andre/tcp_workqueue/sys/arm/broadcom/bcm2835/dwc_otg_brcm.c - copied unchanged from r241731, head/sys/arm/broadcom/bcm2835/dwc_otg_brcm.c user/andre/tcp_workqueue/sys/arm/conf/AC100 - copied unchanged from r241731, head/sys/arm/conf/AC100 user/andre/tcp_workqueue/sys/boot/fdt/dts/db78460.dts - copied unchanged from r241731, head/sys/boot/fdt/dts/db78460.dts user/andre/tcp_workqueue/sys/boot/fdt/dts/tegra20-paz00.dts - copied unchanged from r241731, head/sys/boot/fdt/dts/tegra20-paz00.dts user/andre/tcp_workqueue/sys/boot/fdt/dts/tegra20.dtsi - copied unchanged from r241731, head/sys/boot/fdt/dts/tegra20.dtsi user/andre/tcp_workqueue/sys/cddl/compat/opensolaris/sys/assfail.h - copied unchanged from r241731, head/sys/cddl/compat/opensolaris/sys/assfail.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h - copied unchanged from r241731, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/trim_map.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c - copied unchanged from r241731, head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c user/andre/tcp_workqueue/sys/dev/cxgbe/firmware/t4fw-1.6.2.0.bin.uu - copied unchanged from r241731, head/sys/dev/cxgbe/firmware/t4fw-1.6.2.0.bin.uu user/andre/tcp_workqueue/sys/dev/nvd/ - copied from r241731, head/sys/dev/nvd/ user/andre/tcp_workqueue/sys/dev/nvme/ - copied from r241731, head/sys/dev/nvme/ user/andre/tcp_workqueue/sys/dev/sdhci/sdhci_if.m - copied unchanged from r241731, head/sys/dev/sdhci/sdhci_if.m user/andre/tcp_workqueue/sys/dev/sdhci/sdhci_pci.c - copied unchanged from r241731, head/sys/dev/sdhci/sdhci_pci.c user/andre/tcp_workqueue/sys/dev/virtio/scsi/ - copied from r241731, head/sys/dev/virtio/scsi/ user/andre/tcp_workqueue/sys/fs/fuse/ - copied from r241731, head/sys/fs/fuse/ user/andre/tcp_workqueue/sys/modules/fuse/ - copied from r241731, head/sys/modules/fuse/ user/andre/tcp_workqueue/sys/modules/nvd/ - copied from r241731, head/sys/modules/nvd/ user/andre/tcp_workqueue/sys/modules/nvme/ - copied from r241731, head/sys/modules/nvme/ user/andre/tcp_workqueue/sys/modules/sdhci_pci/ - copied from r241731, head/sys/modules/sdhci_pci/ user/andre/tcp_workqueue/sys/modules/virtio/scsi/ - copied from r241731, head/sys/modules/virtio/scsi/ user/andre/tcp_workqueue/sys/net/if_pflog.h - copied unchanged from r241731, head/sys/net/if_pflog.h user/andre/tcp_workqueue/sys/net/if_pfsync.h - copied unchanged from r241731, head/sys/net/if_pfsync.h user/andre/tcp_workqueue/sys/net/pf_mtag.h - copied unchanged from r241731, head/sys/net/pf_mtag.h user/andre/tcp_workqueue/sys/net/pfvar.h - copied unchanged from r241731, head/sys/net/pfvar.h user/andre/tcp_workqueue/sys/netpfil/ - copied from r241731, head/sys/netpfil/ Deleted: user/andre/tcp_workqueue/sys/boot/fdt/dts/db88f78160.dts user/andre/tcp_workqueue/sys/cam/scsi/scsi_low_pisa.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_low_pisa.h user/andre/tcp_workqueue/sys/compat/netbsd/physio_proc.h user/andre/tcp_workqueue/sys/contrib/pf/ user/andre/tcp_workqueue/sys/dev/mlx/mlx_compat.h user/andre/tcp_workqueue/sys/netinet/ipfw/ Modified: user/andre/tcp_workqueue/sys/amd64/amd64/identcpu.c user/andre/tcp_workqueue/sys/amd64/amd64/machdep.c user/andre/tcp_workqueue/sys/amd64/amd64/mp_machdep.c user/andre/tcp_workqueue/sys/amd64/amd64/pmap.c user/andre/tcp_workqueue/sys/amd64/amd64/trap.c user/andre/tcp_workqueue/sys/amd64/conf/GENERIC user/andre/tcp_workqueue/sys/amd64/conf/NOTES user/andre/tcp_workqueue/sys/amd64/include/atomic.h user/andre/tcp_workqueue/sys/amd64/include/intr_machdep.h user/andre/tcp_workqueue/sys/amd64/include/pc/bios.h user/andre/tcp_workqueue/sys/amd64/pci/pci_cfgreg.c user/andre/tcp_workqueue/sys/arm/arm/cpufunc.c user/andre/tcp_workqueue/sys/arm/arm/identcpu.c user/andre/tcp_workqueue/sys/arm/arm/machdep.c user/andre/tcp_workqueue/sys/arm/arm/pmap-v6.c user/andre/tcp_workqueue/sys/arm/arm/pmap.c user/andre/tcp_workqueue/sys/arm/arm/vm_machdep.c user/andre/tcp_workqueue/sys/arm/at91/at91_machdep.c user/andre/tcp_workqueue/sys/arm/at91/at91_rtc.c user/andre/tcp_workqueue/sys/arm/at91/at91_rtcreg.h user/andre/tcp_workqueue/sys/arm/broadcom/bcm2835/bcm2835_machdep.c user/andre/tcp_workqueue/sys/arm/broadcom/bcm2835/files.bcm2835 user/andre/tcp_workqueue/sys/arm/conf/ARMADAXP user/andre/tcp_workqueue/sys/arm/conf/BEAGLEBONE user/andre/tcp_workqueue/sys/arm/conf/CNS11XXNAS user/andre/tcp_workqueue/sys/arm/conf/DOCKSTAR user/andre/tcp_workqueue/sys/arm/conf/EA3250 user/andre/tcp_workqueue/sys/arm/conf/GUMSTIX-QEMU user/andre/tcp_workqueue/sys/arm/conf/HL201 user/andre/tcp_workqueue/sys/arm/conf/KB920X user/andre/tcp_workqueue/sys/arm/conf/LN2410SBC user/andre/tcp_workqueue/sys/arm/conf/PANDABOARD user/andre/tcp_workqueue/sys/arm/conf/QILA9G20 user/andre/tcp_workqueue/sys/arm/conf/RPI-B user/andre/tcp_workqueue/sys/arm/conf/SAM9G20EK user/andre/tcp_workqueue/sys/arm/conf/SAM9X25EK user/andre/tcp_workqueue/sys/arm/conf/SHEEVAPLUG user/andre/tcp_workqueue/sys/arm/conf/SN9G45 user/andre/tcp_workqueue/sys/arm/conf/TS7800 user/andre/tcp_workqueue/sys/arm/econa/econa_machdep.c user/andre/tcp_workqueue/sys/arm/include/armreg.h user/andre/tcp_workqueue/sys/arm/include/atomic.h user/andre/tcp_workqueue/sys/arm/include/intr.h user/andre/tcp_workqueue/sys/arm/include/machdep.h user/andre/tcp_workqueue/sys/arm/include/pmap.h user/andre/tcp_workqueue/sys/arm/lpc/lpc_machdep.c user/andre/tcp_workqueue/sys/arm/mv/armadaxp/armadaxp.c user/andre/tcp_workqueue/sys/arm/mv/common.c user/andre/tcp_workqueue/sys/arm/mv/mpic.c user/andre/tcp_workqueue/sys/arm/mv/mv_machdep.c user/andre/tcp_workqueue/sys/arm/mv/mv_pci.c user/andre/tcp_workqueue/sys/arm/mv/mvreg.h user/andre/tcp_workqueue/sys/arm/mv/mvvar.h user/andre/tcp_workqueue/sys/arm/mv/mvwin.h user/andre/tcp_workqueue/sys/arm/mv/timer.c user/andre/tcp_workqueue/sys/arm/s3c2xx0/s3c24x0_machdep.c user/andre/tcp_workqueue/sys/arm/sa11x0/assabet_machdep.c user/andre/tcp_workqueue/sys/arm/tegra/common.c user/andre/tcp_workqueue/sys/arm/tegra/std.tegra2 user/andre/tcp_workqueue/sys/arm/tegra/tegra2_machdep.c user/andre/tcp_workqueue/sys/arm/ti/cpsw/if_cpsw.c user/andre/tcp_workqueue/sys/arm/ti/ti_machdep.c user/andre/tcp_workqueue/sys/arm/ti/ti_scm.c user/andre/tcp_workqueue/sys/arm/ti/usb/omap_ehci.c user/andre/tcp_workqueue/sys/arm/xscale/i80321/ep80219_machdep.c user/andre/tcp_workqueue/sys/arm/xscale/i80321/iq31244_machdep.c user/andre/tcp_workqueue/sys/arm/xscale/i8134x/crb_machdep.c user/andre/tcp_workqueue/sys/arm/xscale/ixp425/avila_machdep.c user/andre/tcp_workqueue/sys/arm/xscale/pxa/pxa_machdep.c user/andre/tcp_workqueue/sys/boot/arm/uboot/Makefile user/andre/tcp_workqueue/sys/boot/common/bootstrap.h user/andre/tcp_workqueue/sys/boot/common/console.c user/andre/tcp_workqueue/sys/boot/common/disk.c user/andre/tcp_workqueue/sys/boot/common/disk.h user/andre/tcp_workqueue/sys/boot/common/load_elf.c user/andre/tcp_workqueue/sys/boot/common/module.c user/andre/tcp_workqueue/sys/boot/common/part.c user/andre/tcp_workqueue/sys/boot/common/reloc_elf.c user/andre/tcp_workqueue/sys/boot/forth/beastie.4th user/andre/tcp_workqueue/sys/boot/forth/color.4th.8 user/andre/tcp_workqueue/sys/boot/forth/loader.4th user/andre/tcp_workqueue/sys/boot/forth/loader.conf user/andre/tcp_workqueue/sys/boot/forth/menu-commands.4th user/andre/tcp_workqueue/sys/boot/forth/menu.4th user/andre/tcp_workqueue/sys/boot/forth/menu.rc user/andre/tcp_workqueue/sys/boot/i386/boot2/boot2.c user/andre/tcp_workqueue/sys/boot/i386/boot2/lib.h user/andre/tcp_workqueue/sys/boot/i386/boot2/sio.S user/andre/tcp_workqueue/sys/boot/i386/btx/btx/btx.S user/andre/tcp_workqueue/sys/boot/i386/gptboot/gptboot.c user/andre/tcp_workqueue/sys/boot/i386/libi386/biosdisk.c user/andre/tcp_workqueue/sys/boot/i386/libi386/comconsole.c user/andre/tcp_workqueue/sys/boot/i386/libi386/pxe.c user/andre/tcp_workqueue/sys/boot/i386/libi386/pxe.h user/andre/tcp_workqueue/sys/boot/i386/loader/Makefile user/andre/tcp_workqueue/sys/boot/i386/loader/conf.c user/andre/tcp_workqueue/sys/boot/i386/loader/main.c user/andre/tcp_workqueue/sys/boot/i386/zfsboot/zfsboot.c user/andre/tcp_workqueue/sys/boot/ofw/libofw/devicename.c user/andre/tcp_workqueue/sys/boot/pc98/loader/main.c user/andre/tcp_workqueue/sys/boot/powerpc/uboot/Makefile user/andre/tcp_workqueue/sys/boot/sparc64/loader/main.c user/andre/tcp_workqueue/sys/boot/uboot/common/main.c user/andre/tcp_workqueue/sys/boot/uboot/lib/Makefile user/andre/tcp_workqueue/sys/boot/uboot/lib/devicename.c user/andre/tcp_workqueue/sys/boot/uboot/lib/disk.c user/andre/tcp_workqueue/sys/boot/uboot/lib/libuboot.h user/andre/tcp_workqueue/sys/boot/userboot/test/test.c user/andre/tcp_workqueue/sys/boot/userboot/userboot.h user/andre/tcp_workqueue/sys/boot/userboot/userboot/libuserboot.h user/andre/tcp_workqueue/sys/boot/userboot/userboot/main.c user/andre/tcp_workqueue/sys/boot/userboot/userboot/userboot_disk.c user/andre/tcp_workqueue/sys/boot/zfs/libzfs.h user/andre/tcp_workqueue/sys/boot/zfs/zfs.c user/andre/tcp_workqueue/sys/boot/zfs/zfsimpl.c user/andre/tcp_workqueue/sys/cam/ata/ata_da.c user/andre/tcp_workqueue/sys/cam/ata/ata_pmp.c user/andre/tcp_workqueue/sys/cam/ata/ata_xpt.c user/andre/tcp_workqueue/sys/cam/cam_periph.c user/andre/tcp_workqueue/sys/cam/cam_queue.c user/andre/tcp_workqueue/sys/cam/cam_xpt.c user/andre/tcp_workqueue/sys/cam/ctl/ctl.c user/andre/tcp_workqueue/sys/cam/ctl/ctl_backend_block.c user/andre/tcp_workqueue/sys/cam/ctl/ctl_backend_ramdisk.c user/andre/tcp_workqueue/sys/cam/ctl/ctl_frontend_cam_sim.c user/andre/tcp_workqueue/sys/cam/ctl/scsi_ctl.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_cd.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_ch.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_da.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_enc.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_enc_ses.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_low.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_low.h user/andre/tcp_workqueue/sys/cam/scsi/scsi_pass.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_sa.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_sg.c user/andre/tcp_workqueue/sys/cam/scsi/scsi_xpt.c user/andre/tcp_workqueue/sys/cddl/boot/zfs/zfsimpl.h user/andre/tcp_workqueue/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c user/andre/tcp_workqueue/sys/cddl/compat/opensolaris/sys/debug.h user/andre/tcp_workqueue/sys/cddl/compat/opensolaris/sys/dkio.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/common/nvpair/fnvpair.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/bptree.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/sa_impl.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_debug.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio_impl.h user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/uts/common/sys/debug.h user/andre/tcp_workqueue/sys/compat/linux/linux_file.c user/andre/tcp_workqueue/sys/compat/linux/linux_misc.c user/andre/tcp_workqueue/sys/conf/Makefile.amd64 user/andre/tcp_workqueue/sys/conf/Makefile.arm user/andre/tcp_workqueue/sys/conf/Makefile.powerpc user/andre/tcp_workqueue/sys/conf/NOTES user/andre/tcp_workqueue/sys/conf/files user/andre/tcp_workqueue/sys/conf/files.amd64 user/andre/tcp_workqueue/sys/conf/files.arm user/andre/tcp_workqueue/sys/conf/files.i386 user/andre/tcp_workqueue/sys/conf/files.ia64 user/andre/tcp_workqueue/sys/conf/files.mips user/andre/tcp_workqueue/sys/conf/files.pc98 user/andre/tcp_workqueue/sys/conf/files.powerpc user/andre/tcp_workqueue/sys/conf/files.sparc64 user/andre/tcp_workqueue/sys/conf/kern.mk user/andre/tcp_workqueue/sys/conf/kern.pre.mk user/andre/tcp_workqueue/sys/conf/kmod.mk user/andre/tcp_workqueue/sys/conf/newvers.sh user/andre/tcp_workqueue/sys/conf/options user/andre/tcp_workqueue/sys/conf/options.amd64 user/andre/tcp_workqueue/sys/conf/options.i386 user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_cbq.c user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_hfsc.c user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_priq.c user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_red.c user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_rio.c user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_rmclass.c user/andre/tcp_workqueue/sys/contrib/altq/altq/altq_subr.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/changes.txt (contents, props changed) user/andre/tcp_workqueue/sys/contrib/dev/acpica/common/dmrestag.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslcompile.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslcompiler.h user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslerror.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslfiles.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslfold.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslglobal.h user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslmain.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslmessages.h user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/asloperands.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslopt.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslstartup.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslsupport.l user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/asltypes.h user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/aslutils.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/dtio.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/preprocess.h user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbexec.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbinput.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbmethod.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbnames.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbstats.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/dbutils.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/disassembler/dmopcode.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/tables/tbinstal.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/tables/tbxface.c user/andre/tcp_workqueue/sys/contrib/dev/acpica/include/acdebug.h user/andre/tcp_workqueue/sys/contrib/dev/acpica/include/acpixf.h user/andre/tcp_workqueue/sys/contrib/dev/acpica/include/actbl1.h user/andre/tcp_workqueue/sys/contrib/ipfilter/netinet/fil.c user/andre/tcp_workqueue/sys/contrib/ipfilter/netinet/ip_auth.c user/andre/tcp_workqueue/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c user/andre/tcp_workqueue/sys/contrib/rdma/rdma_addr.c user/andre/tcp_workqueue/sys/dev/aac/aac_cam.c user/andre/tcp_workqueue/sys/dev/acpi_support/acpi_wmi.c user/andre/tcp_workqueue/sys/dev/acpica/acpi_cpu.c user/andre/tcp_workqueue/sys/dev/acpica/acpi_hpet.c user/andre/tcp_workqueue/sys/dev/acpica/acpi_pcib_acpi.c user/andre/tcp_workqueue/sys/dev/acpica/acpi_thermal.c user/andre/tcp_workqueue/sys/dev/advansys/adv_eisa.c user/andre/tcp_workqueue/sys/dev/advansys/adv_isa.c user/andre/tcp_workqueue/sys/dev/advansys/adv_pci.c user/andre/tcp_workqueue/sys/dev/advansys/advansys.c user/andre/tcp_workqueue/sys/dev/advansys/advansys.h user/andre/tcp_workqueue/sys/dev/advansys/advlib.c user/andre/tcp_workqueue/sys/dev/advansys/advlib.h user/andre/tcp_workqueue/sys/dev/advansys/adw_pci.c user/andre/tcp_workqueue/sys/dev/advansys/adwcam.c user/andre/tcp_workqueue/sys/dev/advansys/adwlib.c user/andre/tcp_workqueue/sys/dev/advansys/adwlib.h user/andre/tcp_workqueue/sys/dev/advansys/adwvar.h user/andre/tcp_workqueue/sys/dev/aha/aha.c user/andre/tcp_workqueue/sys/dev/aha/aha_isa.c user/andre/tcp_workqueue/sys/dev/aha/aha_mca.c user/andre/tcp_workqueue/sys/dev/aha/ahareg.h user/andre/tcp_workqueue/sys/dev/ahb/ahb.c user/andre/tcp_workqueue/sys/dev/ahb/ahbreg.h user/andre/tcp_workqueue/sys/dev/ahci/ahci.c user/andre/tcp_workqueue/sys/dev/aic/aic.c user/andre/tcp_workqueue/sys/dev/aic/aic_cbus.c user/andre/tcp_workqueue/sys/dev/aic/aic_isa.c user/andre/tcp_workqueue/sys/dev/aic/aic_pccard.c user/andre/tcp_workqueue/sys/dev/aic/aicvar.h user/andre/tcp_workqueue/sys/dev/alc/if_alc.c user/andre/tcp_workqueue/sys/dev/ale/if_ale.c user/andre/tcp_workqueue/sys/dev/altera/jtag_uart/altera_jtag_uart_cons.c user/andre/tcp_workqueue/sys/dev/amr/amr.c user/andre/tcp_workqueue/sys/dev/arcmsr/arcmsr.c user/andre/tcp_workqueue/sys/dev/ata/ata-all.c user/andre/tcp_workqueue/sys/dev/ata/ata-all.h user/andre/tcp_workqueue/sys/dev/ata/ata-lowlevel.c user/andre/tcp_workqueue/sys/dev/ata/ata-sata.c user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ah.c user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ah.h user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ah_internal.h user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar2133.c user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar5416/ar5416reg.h user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar9002/ar9280.c user/andre/tcp_workqueue/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c user/andre/tcp_workqueue/sys/dev/ath/ath_rate/sample/sample.c user/andre/tcp_workqueue/sys/dev/ath/if_ath.c user/andre/tcp_workqueue/sys/dev/ath/if_ath_debug.c user/andre/tcp_workqueue/sys/dev/ath/if_ath_debug.h user/andre/tcp_workqueue/sys/dev/ath/if_ath_misc.h user/andre/tcp_workqueue/sys/dev/ath/if_ath_rx.c user/andre/tcp_workqueue/sys/dev/ath/if_ath_rx_edma.c user/andre/tcp_workqueue/sys/dev/ath/if_ath_sysctl.c user/andre/tcp_workqueue/sys/dev/ath/if_ath_tx.c user/andre/tcp_workqueue/sys/dev/ath/if_ath_tx.h user/andre/tcp_workqueue/sys/dev/ath/if_ath_tx_ht.c user/andre/tcp_workqueue/sys/dev/ath/if_athioctl.h user/andre/tcp_workqueue/sys/dev/ath/if_athvar.h user/andre/tcp_workqueue/sys/dev/atkbdc/psm.c user/andre/tcp_workqueue/sys/dev/bge/if_bge.c user/andre/tcp_workqueue/sys/dev/bge/if_bgereg.h user/andre/tcp_workqueue/sys/dev/buslogic/bt.c user/andre/tcp_workqueue/sys/dev/buslogic/bt_eisa.c user/andre/tcp_workqueue/sys/dev/buslogic/bt_isa.c user/andre/tcp_workqueue/sys/dev/buslogic/bt_mca.c user/andre/tcp_workqueue/sys/dev/buslogic/bt_pci.c user/andre/tcp_workqueue/sys/dev/buslogic/btreg.h user/andre/tcp_workqueue/sys/dev/bxe/if_bxe.c user/andre/tcp_workqueue/sys/dev/ct/bshw_machdep.c user/andre/tcp_workqueue/sys/dev/ct/ct.c user/andre/tcp_workqueue/sys/dev/ct/ct_isa.c user/andre/tcp_workqueue/sys/dev/ct/ct_machdep.h user/andre/tcp_workqueue/sys/dev/ct/ctvar.h user/andre/tcp_workqueue/sys/dev/cxgb/cxgb_main.c user/andre/tcp_workqueue/sys/dev/cxgb/cxgb_osdep.h user/andre/tcp_workqueue/sys/dev/cxgbe/adapter.h user/andre/tcp_workqueue/sys/dev/cxgbe/common/common.h user/andre/tcp_workqueue/sys/dev/cxgbe/common/t4_hw.c user/andre/tcp_workqueue/sys/dev/cxgbe/firmware/t4fw_interface.h user/andre/tcp_workqueue/sys/dev/cxgbe/osdep.h user/andre/tcp_workqueue/sys/dev/cxgbe/t4_ioctl.h user/andre/tcp_workqueue/sys/dev/cxgbe/t4_l2t.h user/andre/tcp_workqueue/sys/dev/cxgbe/t4_main.c user/andre/tcp_workqueue/sys/dev/cxgbe/t4_sge.c user/andre/tcp_workqueue/sys/dev/cxgbe/tom/t4_cpl_io.c user/andre/tcp_workqueue/sys/dev/cxgbe/tom/t4_ddp.c user/andre/tcp_workqueue/sys/dev/cxgbe/tom/t4_listen.c user/andre/tcp_workqueue/sys/dev/dpt/dpt.h user/andre/tcp_workqueue/sys/dev/dpt/dpt_eisa.c user/andre/tcp_workqueue/sys/dev/dpt/dpt_isa.c user/andre/tcp_workqueue/sys/dev/dpt/dpt_pci.c user/andre/tcp_workqueue/sys/dev/dpt/dpt_scsi.c user/andre/tcp_workqueue/sys/dev/drm2/drm_gem.c user/andre/tcp_workqueue/sys/dev/drm2/i915/i915_drv.c user/andre/tcp_workqueue/sys/dev/drm2/i915/i915_drv.h user/andre/tcp_workqueue/sys/dev/e1000/e1000_82575.c user/andre/tcp_workqueue/sys/dev/e1000/e1000_ich8lan.c user/andre/tcp_workqueue/sys/dev/e1000/if_em.c user/andre/tcp_workqueue/sys/dev/e1000/if_igb.c user/andre/tcp_workqueue/sys/dev/e1000/if_igb.h user/andre/tcp_workqueue/sys/dev/e1000/if_lem.c user/andre/tcp_workqueue/sys/dev/et/if_et.c user/andre/tcp_workqueue/sys/dev/etherswitch/arswitch/arswitch.c user/andre/tcp_workqueue/sys/dev/etherswitch/arswitch/arswitch_phy.c user/andre/tcp_workqueue/sys/dev/etherswitch/arswitch/arswitch_reg.c user/andre/tcp_workqueue/sys/dev/etherswitch/arswitch/arswitchvar.h user/andre/tcp_workqueue/sys/dev/etherswitch/etherswitch.c user/andre/tcp_workqueue/sys/dev/etherswitch/etherswitch_if.m user/andre/tcp_workqueue/sys/dev/fdt/fdt_common.c user/andre/tcp_workqueue/sys/dev/fdt/fdt_common.h user/andre/tcp_workqueue/sys/dev/fdt/fdt_pci.c user/andre/tcp_workqueue/sys/dev/flash/mx25l.c user/andre/tcp_workqueue/sys/dev/hptmv/entry.c user/andre/tcp_workqueue/sys/dev/hwpmc/hwpmc_amd.c user/andre/tcp_workqueue/sys/dev/hwpmc/hwpmc_arm.c user/andre/tcp_workqueue/sys/dev/hwpmc/hwpmc_core.c user/andre/tcp_workqueue/sys/dev/hwpmc/hwpmc_x86.c user/andre/tcp_workqueue/sys/dev/ie/if_ie_isa.c user/andre/tcp_workqueue/sys/dev/iicbus/pcf8563.c user/andre/tcp_workqueue/sys/dev/iicbus/s35390a.c user/andre/tcp_workqueue/sys/dev/ipmi/ipmi_smbios.c user/andre/tcp_workqueue/sys/dev/isci/isci.c user/andre/tcp_workqueue/sys/dev/isci/isci.h user/andre/tcp_workqueue/sys/dev/isci/isci_controller.c user/andre/tcp_workqueue/sys/dev/isci/scil/sati.c user/andre/tcp_workqueue/sys/dev/isci/scil/sati_callbacks.h user/andre/tcp_workqueue/sys/dev/isci/scil/sati_util.c user/andre/tcp_workqueue/sys/dev/isci/scil/sati_write_buffer.c user/andre/tcp_workqueue/sys/dev/isci/scil/sci_base_controller.h user/andre/tcp_workqueue/sys/dev/isci/scil/sci_base_domain.h user/andre/tcp_workqueue/sys/dev/isci/scil/sci_base_phy.h user/andre/tcp_workqueue/sys/dev/isci/scil/sci_base_remote_device.h user/andre/tcp_workqueue/sys/dev/isci/scil/scic_io_request.h user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_phy.c user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_port.h user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_remote_device.h user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_remote_node_context.h user/andre/tcp_workqueue/sys/dev/isci/scil/scic_sds_request.c user/andre/tcp_workqueue/sys/dev/isci/scil/scu_bios_definitions.h user/andre/tcp_workqueue/sys/dev/isp/isp_freebsd.c user/andre/tcp_workqueue/sys/dev/isp/isp_pci.c user/andre/tcp_workqueue/sys/dev/ixgbe/ixgbe.c user/andre/tcp_workqueue/sys/dev/ixgbe/ixgbe.h user/andre/tcp_workqueue/sys/dev/ixgbe/ixgbe_osdep.h user/andre/tcp_workqueue/sys/dev/ixgbe/ixv.c user/andre/tcp_workqueue/sys/dev/jme/if_jme.c user/andre/tcp_workqueue/sys/dev/mfi/mfi.c user/andre/tcp_workqueue/sys/dev/mii/brgphy.c user/andre/tcp_workqueue/sys/dev/mii/smscphy.c user/andre/tcp_workqueue/sys/dev/mlx/mlx.c user/andre/tcp_workqueue/sys/dev/mlx/mlx_disk.c user/andre/tcp_workqueue/sys/dev/mlx/mlx_pci.c user/andre/tcp_workqueue/sys/dev/mlx/mlxreg.h user/andre/tcp_workqueue/sys/dev/mlx/mlxvar.h user/andre/tcp_workqueue/sys/dev/mly/mly.c user/andre/tcp_workqueue/sys/dev/mmc/mmc.c user/andre/tcp_workqueue/sys/dev/mps/mps_sas.c user/andre/tcp_workqueue/sys/dev/mxge/if_mxge.c user/andre/tcp_workqueue/sys/dev/ncv/ncr53c500.c user/andre/tcp_workqueue/sys/dev/ncv/ncr53c500_pccard.c user/andre/tcp_workqueue/sys/dev/ncv/ncr53c500hw.h user/andre/tcp_workqueue/sys/dev/ncv/ncr53c500var.h user/andre/tcp_workqueue/sys/dev/netmap/netmap.c user/andre/tcp_workqueue/sys/dev/netmap/netmap_kern.h user/andre/tcp_workqueue/sys/dev/netmap/netmap_mem2.c user/andre/tcp_workqueue/sys/dev/nsp/nsp.c user/andre/tcp_workqueue/sys/dev/nsp/nsp_pccard.c user/andre/tcp_workqueue/sys/dev/nsp/nspvar.h user/andre/tcp_workqueue/sys/dev/nve/if_nvereg.h user/andre/tcp_workqueue/sys/dev/oce/oce_if.c user/andre/tcp_workqueue/sys/dev/pci/pci.c user/andre/tcp_workqueue/sys/dev/pci/pci_user.c user/andre/tcp_workqueue/sys/dev/pci/pcireg.h user/andre/tcp_workqueue/sys/dev/random/ivy.c user/andre/tcp_workqueue/sys/dev/random/probe.c user/andre/tcp_workqueue/sys/dev/re/if_re.c user/andre/tcp_workqueue/sys/dev/sdhci/sdhci.c user/andre/tcp_workqueue/sys/dev/sdhci/sdhci.h user/andre/tcp_workqueue/sys/dev/sound/pci/hda/hdaa.c user/andre/tcp_workqueue/sys/dev/sound/pci/hda/hdaa_patches.c user/andre/tcp_workqueue/sys/dev/sound/pci/hdspe-pcm.c user/andre/tcp_workqueue/sys/dev/sound/pci/hdspe.c user/andre/tcp_workqueue/sys/dev/sound/usb/uaudio.c user/andre/tcp_workqueue/sys/dev/sound/usb/uaudioreg.h user/andre/tcp_workqueue/sys/dev/stg/tmc18c30.c user/andre/tcp_workqueue/sys/dev/stg/tmc18c30_isa.c user/andre/tcp_workqueue/sys/dev/stg/tmc18c30_pccard.c user/andre/tcp_workqueue/sys/dev/stg/tmc18c30_pci.c user/andre/tcp_workqueue/sys/dev/stg/tmc18c30_subr.c user/andre/tcp_workqueue/sys/dev/stg/tmc18c30var.h user/andre/tcp_workqueue/sys/dev/twe/twe.c user/andre/tcp_workqueue/sys/dev/twe/twe_compat.h user/andre/tcp_workqueue/sys/dev/twe/twe_freebsd.c user/andre/tcp_workqueue/sys/dev/twe/twevar.h user/andre/tcp_workqueue/sys/dev/tws/tws.c user/andre/tcp_workqueue/sys/dev/tws/tws_cam.c user/andre/tcp_workqueue/sys/dev/usb/controller/at91dci.c user/andre/tcp_workqueue/sys/dev/usb/controller/at91dci_atmelarm.c user/andre/tcp_workqueue/sys/dev/usb/controller/atmegadci.c user/andre/tcp_workqueue/sys/dev/usb/controller/avr32dci.c user/andre/tcp_workqueue/sys/dev/usb/controller/dwc_otg.c user/andre/tcp_workqueue/sys/dev/usb/controller/dwc_otg.h user/andre/tcp_workqueue/sys/dev/usb/controller/dwc_otgreg.h user/andre/tcp_workqueue/sys/dev/usb/controller/ehci.c user/andre/tcp_workqueue/sys/dev/usb/controller/musb_otg.c user/andre/tcp_workqueue/sys/dev/usb/controller/ohci.c user/andre/tcp_workqueue/sys/dev/usb/controller/uhci.c user/andre/tcp_workqueue/sys/dev/usb/controller/usb_controller.c user/andre/tcp_workqueue/sys/dev/usb/controller/uss820dci.c user/andre/tcp_workqueue/sys/dev/usb/controller/xhci.c user/andre/tcp_workqueue/sys/dev/usb/input/ums.c user/andre/tcp_workqueue/sys/dev/usb/net/if_smsc.c user/andre/tcp_workqueue/sys/dev/usb/net/uhso.c user/andre/tcp_workqueue/sys/dev/usb/quirk/usb_quirk.c user/andre/tcp_workqueue/sys/dev/usb/quirk/usb_quirk.h user/andre/tcp_workqueue/sys/dev/usb/serial/u3g.c user/andre/tcp_workqueue/sys/dev/usb/serial/uchcom.c user/andre/tcp_workqueue/sys/dev/usb/serial/ufoma.c user/andre/tcp_workqueue/sys/dev/usb/serial/uftdi_reg.h user/andre/tcp_workqueue/sys/dev/usb/storage/umass.c user/andre/tcp_workqueue/sys/dev/usb/usb_hub.c user/andre/tcp_workqueue/sys/dev/usb/usb_pf.c user/andre/tcp_workqueue/sys/dev/usb/usb_request.c user/andre/tcp_workqueue/sys/dev/usb/usbdevs user/andre/tcp_workqueue/sys/dev/virtio/virtio.c user/andre/tcp_workqueue/sys/dev/virtio/virtio.h user/andre/tcp_workqueue/sys/dev/virtio/virtqueue.c user/andre/tcp_workqueue/sys/dev/vxge/include/vxgehal-ll.h user/andre/tcp_workqueue/sys/dev/vxge/vxge.c user/andre/tcp_workqueue/sys/dev/xen/netback/netback_unit_tests.c user/andre/tcp_workqueue/sys/fs/coda/coda_subr.c user/andre/tcp_workqueue/sys/fs/deadfs/dead_vnops.c user/andre/tcp_workqueue/sys/fs/devfs/devfs_int.h user/andre/tcp_workqueue/sys/fs/ext2fs/ext2_alloc.c user/andre/tcp_workqueue/sys/fs/ext2fs/ext2_inode.c user/andre/tcp_workqueue/sys/fs/ext2fs/ext2_inode_cnv.c user/andre/tcp_workqueue/sys/fs/hpfs/hpfs_vfsops.c user/andre/tcp_workqueue/sys/fs/nandfs/bmap.c user/andre/tcp_workqueue/sys/fs/nfs/nfs.h user/andre/tcp_workqueue/sys/fs/nfs/nfs_commonacl.c user/andre/tcp_workqueue/sys/fs/nfs/nfs_commonport.c user/andre/tcp_workqueue/sys/fs/nfs/nfs_commonsubs.c user/andre/tcp_workqueue/sys/fs/nfs/nfs_var.h user/andre/tcp_workqueue/sys/fs/nfs/nfscl.h user/andre/tcp_workqueue/sys/fs/nfsclient/nfs_clcomsubs.c user/andre/tcp_workqueue/sys/fs/nfsclient/nfs_clrpcops.c user/andre/tcp_workqueue/sys/fs/nfsserver/nfs_nfsdkrpc.c user/andre/tcp_workqueue/sys/fs/nfsserver/nfs_nfsdport.c user/andre/tcp_workqueue/sys/fs/ntfs/ntfs_subr.c user/andre/tcp_workqueue/sys/fs/ntfs/ntfs_vfsops.c user/andre/tcp_workqueue/sys/fs/ntfs/ntfs_vnops.c user/andre/tcp_workqueue/sys/fs/nullfs/null.h user/andre/tcp_workqueue/sys/fs/nullfs/null_subr.c user/andre/tcp_workqueue/sys/fs/nullfs/null_vfsops.c user/andre/tcp_workqueue/sys/fs/nullfs/null_vnops.c user/andre/tcp_workqueue/sys/fs/tmpfs/tmpfs_vfsops.c user/andre/tcp_workqueue/sys/geom/geom_disk.c user/andre/tcp_workqueue/sys/geom/mirror/g_mirror.c user/andre/tcp_workqueue/sys/geom/part/g_part.c user/andre/tcp_workqueue/sys/geom/raid/g_raid.c user/andre/tcp_workqueue/sys/geom/raid/g_raid.h user/andre/tcp_workqueue/sys/geom/raid/g_raid_ctl.c user/andre/tcp_workqueue/sys/geom/raid/md_ddf.c user/andre/tcp_workqueue/sys/geom/raid/md_intel.c user/andre/tcp_workqueue/sys/geom/raid/md_jmicron.c user/andre/tcp_workqueue/sys/geom/raid/md_nvidia.c user/andre/tcp_workqueue/sys/geom/raid/md_promise.c user/andre/tcp_workqueue/sys/geom/raid/md_sii.c user/andre/tcp_workqueue/sys/geom/raid/tr_concat.c user/andre/tcp_workqueue/sys/geom/raid/tr_raid0.c user/andre/tcp_workqueue/sys/geom/raid/tr_raid1.c user/andre/tcp_workqueue/sys/geom/raid/tr_raid1e.c user/andre/tcp_workqueue/sys/geom/raid/tr_raid5.c user/andre/tcp_workqueue/sys/geom/raid3/g_raid3.c user/andre/tcp_workqueue/sys/gnu/fs/xfs/FreeBSD/xfs_compat.h user/andre/tcp_workqueue/sys/gnu/fs/xfs/FreeBSD/xfs_freebsd.h user/andre/tcp_workqueue/sys/gnu/fs/xfs/FreeBSD/xfs_mountops.c user/andre/tcp_workqueue/sys/i386/bios/smapi.c user/andre/tcp_workqueue/sys/i386/conf/GENERIC user/andre/tcp_workqueue/sys/i386/conf/NOTES user/andre/tcp_workqueue/sys/i386/i386/identcpu.c user/andre/tcp_workqueue/sys/i386/i386/machdep.c user/andre/tcp_workqueue/sys/i386/i386/mp_machdep.c user/andre/tcp_workqueue/sys/i386/i386/pmap.c user/andre/tcp_workqueue/sys/i386/i386/trap.c user/andre/tcp_workqueue/sys/i386/include/atomic.h user/andre/tcp_workqueue/sys/i386/include/intr_machdep.h user/andre/tcp_workqueue/sys/i386/include/pc/bios.h user/andre/tcp_workqueue/sys/i386/include/xen/xen-os.h user/andre/tcp_workqueue/sys/i386/pci/pci_cfgreg.c user/andre/tcp_workqueue/sys/i386/xen/mp_machdep.c user/andre/tcp_workqueue/sys/i386/xen/pmap.c user/andre/tcp_workqueue/sys/i386/xen/xen_machdep.c user/andre/tcp_workqueue/sys/ia64/ia32/ia32_trap.c user/andre/tcp_workqueue/sys/ia64/ia64/pmap.c user/andre/tcp_workqueue/sys/ia64/ia64/trap.c user/andre/tcp_workqueue/sys/kern/Make.tags.inc user/andre/tcp_workqueue/sys/kern/dtio_kdtrace.c user/andre/tcp_workqueue/sys/kern/imgact_elf.c user/andre/tcp_workqueue/sys/kern/kern_clocksource.c user/andre/tcp_workqueue/sys/kern/kern_condvar.c user/andre/tcp_workqueue/sys/kern/kern_cons.c user/andre/tcp_workqueue/sys/kern/kern_exec.c user/andre/tcp_workqueue/sys/kern/kern_exit.c user/andre/tcp_workqueue/sys/kern/kern_fork.c user/andre/tcp_workqueue/sys/kern/kern_intr.c user/andre/tcp_workqueue/sys/kern/kern_lock.c user/andre/tcp_workqueue/sys/kern/kern_mutex.c user/andre/tcp_workqueue/sys/kern/kern_rmlock.c user/andre/tcp_workqueue/sys/kern/kern_rwlock.c user/andre/tcp_workqueue/sys/kern/kern_sig.c user/andre/tcp_workqueue/sys/kern/kern_sx.c user/andre/tcp_workqueue/sys/kern/kern_thread.c user/andre/tcp_workqueue/sys/kern/link_elf.c user/andre/tcp_workqueue/sys/kern/sched_ule.c user/andre/tcp_workqueue/sys/kern/subr_bus.c user/andre/tcp_workqueue/sys/kern/subr_sleepqueue.c user/andre/tcp_workqueue/sys/kern/subr_syscall.c user/andre/tcp_workqueue/sys/kern/subr_trap.c user/andre/tcp_workqueue/sys/kern/subr_turnstile.c user/andre/tcp_workqueue/sys/kern/subr_unit.c user/andre/tcp_workqueue/sys/kern/sys_generic.c user/andre/tcp_workqueue/sys/kern/tty_ttydisc.c user/andre/tcp_workqueue/sys/kern/uipc_domain.c user/andre/tcp_workqueue/sys/kern/uipc_mqueue.c user/andre/tcp_workqueue/sys/kern/uipc_socket.c user/andre/tcp_workqueue/sys/kern/uipc_usrreq.c user/andre/tcp_workqueue/sys/kern/vfs_default.c user/andre/tcp_workqueue/sys/kern/vfs_lookup.c user/andre/tcp_workqueue/sys/kern/vfs_mount.c user/andre/tcp_workqueue/sys/kern/vfs_subr.c user/andre/tcp_workqueue/sys/kern/vfs_syscalls.c user/andre/tcp_workqueue/sys/kern/vfs_vnops.c user/andre/tcp_workqueue/sys/kern/vnode_if.src user/andre/tcp_workqueue/sys/libkern/jenkins_hash.c user/andre/tcp_workqueue/sys/mips/cavium/usb/octusb.c user/andre/tcp_workqueue/sys/mips/include/cpufunc.h user/andre/tcp_workqueue/sys/mips/include/tlb.h user/andre/tcp_workqueue/sys/mips/mips/pmap.c user/andre/tcp_workqueue/sys/mips/mips/tlb.c user/andre/tcp_workqueue/sys/mips/mips/trap.c user/andre/tcp_workqueue/sys/mips/rmi/rootfs_list.txt user/andre/tcp_workqueue/sys/modules/Makefile user/andre/tcp_workqueue/sys/modules/cxgbe/firmware/Makefile user/andre/tcp_workqueue/sys/modules/dummynet/Makefile user/andre/tcp_workqueue/sys/modules/ipfw/Makefile user/andre/tcp_workqueue/sys/modules/ipfw_nat/Makefile user/andre/tcp_workqueue/sys/modules/pf/Makefile user/andre/tcp_workqueue/sys/modules/pflog/Makefile user/andre/tcp_workqueue/sys/modules/pfsync/Makefile user/andre/tcp_workqueue/sys/modules/scsi_low/Makefile user/andre/tcp_workqueue/sys/modules/sdhci/Makefile user/andre/tcp_workqueue/sys/modules/virtio/Makefile user/andre/tcp_workqueue/sys/modules/zfs/Makefile user/andre/tcp_workqueue/sys/net/bpf.h user/andre/tcp_workqueue/sys/net/if.c user/andre/tcp_workqueue/sys/net/if.h user/andre/tcp_workqueue/sys/net/if_bridge.c user/andre/tcp_workqueue/sys/net/if_clone.c user/andre/tcp_workqueue/sys/net/if_clone.h user/andre/tcp_workqueue/sys/net/if_disc.c user/andre/tcp_workqueue/sys/net/if_edsc.c user/andre/tcp_workqueue/sys/net/if_ef.c user/andre/tcp_workqueue/sys/net/if_enc.c user/andre/tcp_workqueue/sys/net/if_epair.c user/andre/tcp_workqueue/sys/net/if_faith.c user/andre/tcp_workqueue/sys/net/if_gif.c user/andre/tcp_workqueue/sys/net/if_gre.c user/andre/tcp_workqueue/sys/net/if_lagg.c user/andre/tcp_workqueue/sys/net/if_loop.c user/andre/tcp_workqueue/sys/net/if_spppsubr.c user/andre/tcp_workqueue/sys/net/if_stf.c user/andre/tcp_workqueue/sys/net/if_tap.c user/andre/tcp_workqueue/sys/net/if_tun.c user/andre/tcp_workqueue/sys/net/if_var.h user/andre/tcp_workqueue/sys/net/if_vlan.c user/andre/tcp_workqueue/sys/net/netmap_user.h user/andre/tcp_workqueue/sys/net/rtsock.c user/andre/tcp_workqueue/sys/net80211/ieee80211_adhoc.c user/andre/tcp_workqueue/sys/net80211/ieee80211_freebsd.c user/andre/tcp_workqueue/sys/net80211/ieee80211_hostap.c user/andre/tcp_workqueue/sys/net80211/ieee80211_hostap.h user/andre/tcp_workqueue/sys/net80211/ieee80211_mesh.c user/andre/tcp_workqueue/sys/net80211/ieee80211_node.c user/andre/tcp_workqueue/sys/net80211/ieee80211_power.c user/andre/tcp_workqueue/sys/net80211/ieee80211_power.h user/andre/tcp_workqueue/sys/net80211/ieee80211_scan.c user/andre/tcp_workqueue/sys/net80211/ieee80211_sta.c user/andre/tcp_workqueue/sys/net80211/ieee80211_var.h user/andre/tcp_workqueue/sys/netgraph/atm/ccatm/ng_ccatm.c user/andre/tcp_workqueue/sys/netgraph/atm/sscfu/ng_sscfu.c user/andre/tcp_workqueue/sys/netgraph/atm/sscop/ng_sscop.c user/andre/tcp_workqueue/sys/netgraph/atm/uni/ng_uni.c user/andre/tcp_workqueue/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c user/andre/tcp_workqueue/sys/netgraph/netflow/netflow_v9.c user/andre/tcp_workqueue/sys/netgraph/netflow/ng_netflow.c user/andre/tcp_workqueue/sys/netgraph/netflow/ng_netflow.h user/andre/tcp_workqueue/sys/netgraph/ng_base.c user/andre/tcp_workqueue/sys/netgraph/ng_eiface.c user/andre/tcp_workqueue/sys/netgraph/ng_ether.c user/andre/tcp_workqueue/sys/netgraph/ng_fec.c user/andre/tcp_workqueue/sys/netgraph/ng_gif.c user/andre/tcp_workqueue/sys/netgraph/ng_ipfw.c user/andre/tcp_workqueue/sys/netgraph/ng_ksocket.c user/andre/tcp_workqueue/sys/netgraph/ng_nat.c user/andre/tcp_workqueue/sys/netgraph/ng_source.c user/andre/tcp_workqueue/sys/netinet/in_gif.c user/andre/tcp_workqueue/sys/netinet/in_pcb.c user/andre/tcp_workqueue/sys/netinet/in_pcb.h user/andre/tcp_workqueue/sys/netinet/in_rmx.c user/andre/tcp_workqueue/sys/netinet/in_var.h user/andre/tcp_workqueue/sys/netinet/ip_carp.c user/andre/tcp_workqueue/sys/netinet/ip_divert.c user/andre/tcp_workqueue/sys/netinet/ip_fastfwd.c user/andre/tcp_workqueue/sys/netinet/ip_icmp.c user/andre/tcp_workqueue/sys/netinet/ip_input.c user/andre/tcp_workqueue/sys/netinet/ip_ipsec.c user/andre/tcp_workqueue/sys/netinet/ip_mroute.c user/andre/tcp_workqueue/sys/netinet/ip_options.c user/andre/tcp_workqueue/sys/netinet/ip_options.h user/andre/tcp_workqueue/sys/netinet/ip_output.c user/andre/tcp_workqueue/sys/netinet/ip_var.h user/andre/tcp_workqueue/sys/netinet/libalias/alias_proxy.c user/andre/tcp_workqueue/sys/netinet/libalias/alias_skinny.c user/andre/tcp_workqueue/sys/netinet/raw_ip.c user/andre/tcp_workqueue/sys/netinet/sctp_asconf.c user/andre/tcp_workqueue/sys/netinet/sctp_header.h user/andre/tcp_workqueue/sys/netinet/sctp_indata.c user/andre/tcp_workqueue/sys/netinet/sctp_input.c user/andre/tcp_workqueue/sys/netinet/sctp_input.h user/andre/tcp_workqueue/sys/netinet/sctp_output.c user/andre/tcp_workqueue/sys/netinet/sctp_output.h user/andre/tcp_workqueue/sys/netinet/sctp_pcb.c user/andre/tcp_workqueue/sys/netinet/sctp_structs.h user/andre/tcp_workqueue/sys/netinet/sctputil.c user/andre/tcp_workqueue/sys/netinet/tcp_input.c user/andre/tcp_workqueue/sys/netinet/tcp_subr.c user/andre/tcp_workqueue/sys/netinet/tcp_usrreq.c user/andre/tcp_workqueue/sys/netinet/udp_usrreq.c user/andre/tcp_workqueue/sys/netinet6/icmp6.c user/andre/tcp_workqueue/sys/netinet6/in6.c user/andre/tcp_workqueue/sys/netinet6/in6_gif.c user/andre/tcp_workqueue/sys/netinet6/in6_rmx.c user/andre/tcp_workqueue/sys/netinet6/ip6_ipsec.c user/andre/tcp_workqueue/sys/netinet6/nd6.c user/andre/tcp_workqueue/sys/netinet6/nd6_nbr.c user/andre/tcp_workqueue/sys/netinet6/nd6_rtr.c user/andre/tcp_workqueue/sys/netinet6/udp6_usrreq.c user/andre/tcp_workqueue/sys/netipsec/ipsec_input.c user/andre/tcp_workqueue/sys/netipsec/ipsec_output.c user/andre/tcp_workqueue/sys/netipsec/key.c user/andre/tcp_workqueue/sys/netipsec/xform_ipip.c user/andre/tcp_workqueue/sys/nfs/nfs_nfssvc.c user/andre/tcp_workqueue/sys/nfs/nfssvc.h user/andre/tcp_workqueue/sys/nfsserver/nfs_serv.c user/andre/tcp_workqueue/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c user/andre/tcp_workqueue/sys/ofed/drivers/net/mlx4/en_tx.c user/andre/tcp_workqueue/sys/ofed/include/linux/pci.h user/andre/tcp_workqueue/sys/ofed/include/rdma/ib_addr.h user/andre/tcp_workqueue/sys/pc98/include/bus.h user/andre/tcp_workqueue/sys/pc98/pc98/machdep.c user/andre/tcp_workqueue/sys/powerpc/aim/mmu_oea.c user/andre/tcp_workqueue/sys/powerpc/aim/mmu_oea64.c user/andre/tcp_workqueue/sys/powerpc/aim/trap.c user/andre/tcp_workqueue/sys/powerpc/booke/trap.c user/andre/tcp_workqueue/sys/powerpc/include/cpu.h user/andre/tcp_workqueue/sys/powerpc/include/pcb.h user/andre/tcp_workqueue/sys/powerpc/mpc85xx/pci_fdt.c user/andre/tcp_workqueue/sys/powerpc/ofw/ofw_real.c user/andre/tcp_workqueue/sys/powerpc/wii/wii_bus.c user/andre/tcp_workqueue/sys/rpc/auth.h user/andre/tcp_workqueue/sys/rpc/rpcb_clnt.c user/andre/tcp_workqueue/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c user/andre/tcp_workqueue/sys/sparc64/include/atomic.h user/andre/tcp_workqueue/sys/sparc64/include/intr_machdep.h user/andre/tcp_workqueue/sys/sparc64/include/vmparam.h user/andre/tcp_workqueue/sys/sparc64/sparc64/ata_machdep.c user/andre/tcp_workqueue/sys/sparc64/sparc64/intr_machdep.c user/andre/tcp_workqueue/sys/sparc64/sparc64/machdep.c user/andre/tcp_workqueue/sys/sparc64/sparc64/pmap.c user/andre/tcp_workqueue/sys/sparc64/sparc64/trap.c user/andre/tcp_workqueue/sys/sys/_rmlock.h user/andre/tcp_workqueue/sys/sys/buf_ring.h user/andre/tcp_workqueue/sys/sys/capability.h user/andre/tcp_workqueue/sys/sys/cdefs.h user/andre/tcp_workqueue/sys/sys/kernel.h user/andre/tcp_workqueue/sys/sys/mbuf.h user/andre/tcp_workqueue/sys/sys/mount.h user/andre/tcp_workqueue/sys/sys/param.h user/andre/tcp_workqueue/sys/sys/pcpu.h user/andre/tcp_workqueue/sys/sys/proc.h user/andre/tcp_workqueue/sys/sys/queue.h user/andre/tcp_workqueue/sys/sys/socketvar.h user/andre/tcp_workqueue/sys/sys/vnode.h user/andre/tcp_workqueue/sys/ufs/ffs/ffs_alloc.c user/andre/tcp_workqueue/sys/ufs/ffs/ffs_snapshot.c user/andre/tcp_workqueue/sys/ufs/ffs/ffs_softdep.c user/andre/tcp_workqueue/sys/ufs/ufs/inode.h user/andre/tcp_workqueue/sys/ufs/ufs/ufs_acl.c user/andre/tcp_workqueue/sys/ufs/ufs/ufs_lookup.c user/andre/tcp_workqueue/sys/ufs/ufs/ufs_vnops.c user/andre/tcp_workqueue/sys/vm/uma_core.c user/andre/tcp_workqueue/sys/vm/vm_object.c user/andre/tcp_workqueue/sys/vm/vm_page.c user/andre/tcp_workqueue/sys/vm/vm_page.h user/andre/tcp_workqueue/sys/vm/vm_pageout.c user/andre/tcp_workqueue/sys/vm/vnode_pager.c user/andre/tcp_workqueue/sys/x86/bios/smbios.c user/andre/tcp_workqueue/sys/x86/include/bus.h user/andre/tcp_workqueue/sys/x86/x86/intr_machdep.c Directory Properties: user/andre/tcp_workqueue/sys/ (props changed) user/andre/tcp_workqueue/sys/boot/ (props changed) user/andre/tcp_workqueue/sys/cddl/contrib/opensolaris/ (props changed) user/andre/tcp_workqueue/sys/conf/ (props changed) user/andre/tcp_workqueue/sys/contrib/dev/acpica/ (props changed) user/andre/tcp_workqueue/sys/contrib/dev/acpica/common/ (props changed) user/andre/tcp_workqueue/sys/contrib/dev/acpica/compiler/ (props changed) user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/debugger/ (props changed) user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/disassembler/ (props changed) user/andre/tcp_workqueue/sys/contrib/dev/acpica/components/tables/ (props changed) user/andre/tcp_workqueue/sys/contrib/dev/acpica/include/ (props changed) Modified: user/andre/tcp_workqueue/sys/amd64/amd64/identcpu.c ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/amd64/identcpu.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/amd64/identcpu.c Fri Oct 19 13:05:51 2012 (r241732) @@ -213,8 +213,8 @@ printcpuinfo(void) if (cpu_vendor_id == CPU_VENDOR_INTEL || cpu_vendor_id == CPU_VENDOR_AMD || cpu_vendor_id == CPU_VENDOR_CENTAUR) { - printf(" Family = %x", CPUID_TO_FAMILY(cpu_id)); - printf(" Model = %x", CPUID_TO_MODEL(cpu_id)); + printf(" Family = 0x%x", CPUID_TO_FAMILY(cpu_id)); + printf(" Model = 0x%x", CPUID_TO_MODEL(cpu_id)); printf(" Stepping = %u", cpu_id & CPUID_STEPPING); /* Modified: user/andre/tcp_workqueue/sys/amd64/amd64/machdep.c ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/amd64/machdep.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/amd64/machdep.c Fri Oct 19 13:05:51 2012 (r241732) @@ -298,11 +298,6 @@ cpu_startup(dummy) vm_pager_bufferinit(); cpu_setregs(); - - /* - * Add BSP as an interrupt target. - */ - intr_add_cpu(0); } /* Modified: user/andre/tcp_workqueue/sys/amd64/amd64/mp_machdep.c ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/amd64/mp_machdep.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/amd64/mp_machdep.c Fri Oct 19 13:05:51 2012 (r241732) @@ -784,6 +784,8 @@ init_secondary(void) * We tell the I/O APIC code about all the CPUs we want to receive * interrupts. If we don't want certain CPUs to receive IRQs we * can simply not tell the I/O APIC code about them in this function. + * We also do not tell it about the BSP since it tells itself about + * the BSP internally to work with UP kernels and on UP machines. */ static void set_interrupt_apic_ids(void) @@ -794,6 +796,8 @@ set_interrupt_apic_ids(void) apic_id = cpu_apic_ids[i]; if (apic_id == -1) continue; + if (cpu_info[apic_id].cpu_bsp) + continue; if (cpu_info[apic_id].cpu_disabled) continue; Modified: user/andre/tcp_workqueue/sys/amd64/amd64/pmap.c ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/amd64/pmap.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/amd64/pmap.c Fri Oct 19 13:05:51 2012 (r241732) @@ -82,13 +82,6 @@ __FBSDID("$FreeBSD$"); /* * Manages physical address maps. * - * In addition to hardware address maps, this - * module is called upon to provide software-use-only - * maps which may or may not be stored in the same - * form as hardware maps. These pseudo-maps are - * used to store intermediate results from copy - * operations to and from address spaces. - * * Since the information managed by this module is * also stored by the logical address mapping module, * this module may throw away valid virtual-to-physical @@ -4998,7 +4991,7 @@ pmap_mapbios(vm_paddr_t pa, vm_size_t si void pmap_unmapdev(vm_offset_t va, vm_size_t size) { - vm_offset_t base, offset, tmpva; + vm_offset_t base, offset; /* If we gave a direct map region in pmap_mapdev, do nothing */ if (va >= DMAP_MIN_ADDRESS && va < DMAP_MAX_ADDRESS) @@ -5006,9 +4999,6 @@ pmap_unmapdev(vm_offset_t va, vm_size_t base = trunc_page(va); offset = va & PAGE_MASK; size = roundup(offset + size, PAGE_SIZE); - for (tmpva = base; tmpva < (base + size); tmpva += PAGE_SIZE) - pmap_kremove(tmpva); - pmap_invalidate_range(kernel_pmap, va, tmpva); kmem_free(kernel_map, base, size); } Modified: user/andre/tcp_workqueue/sys/amd64/amd64/trap.c ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/amd64/trap.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/amd64/trap.c Fri Oct 19 13:05:51 2012 (r241732) @@ -617,8 +617,10 @@ trap(struct trapframe *frame) ksi.ksi_addr = (void *)addr; if (uprintf_signal) { uprintf("pid %d comm %s: signal %d err %lx code %d type %d " - "addr 0x%lx <%02x %02x %02x %02x %02x %02x %02x %02x>\n", + "addr 0x%lx rip 0x%lx " + "<%02x %02x %02x %02x %02x %02x %02x %02x>\n", p->p_pid, p->p_comm, i, frame->tf_err, ucode, type, addr, + frame->tf_rip, fubyte((void *)(frame->tf_rip + 0)), fubyte((void *)(frame->tf_rip + 1)), fubyte((void *)(frame->tf_rip + 2)), @@ -632,7 +634,6 @@ trap(struct trapframe *frame) user: userret(td, frame); - mtx_assert(&Giant, MA_NOTOWNED); KASSERT(PCB_USER_FPU(td->td_pcb), ("Return from trap with kernel FPU ctx leaked")); userout: Modified: user/andre/tcp_workqueue/sys/amd64/conf/GENERIC ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/conf/GENERIC Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/conf/GENERIC Fri Oct 19 13:05:51 2012 (r241732) @@ -293,7 +293,7 @@ device wpi # Intel 3945ABG wireless NI device loop # Network loopback device random # Entropy device options PADLOCK_RNG # VIA Padlock RNG -options IVY_RNG # Intel Bull Mountain RNG +options RDRAND_RNG # Intel Bull Mountain RNG device ether # Ethernet support device vlan # 802.1Q VLAN support device tun # Packet tunnel. Modified: user/andre/tcp_workqueue/sys/amd64/conf/NOTES ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/conf/NOTES Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/conf/NOTES Fri Oct 19 13:05:51 2012 (r241732) @@ -428,6 +428,11 @@ device isci options ISCI_LOGGING # enable debugging in isci HAL # +# NVM Express (NVMe) support +device nvme # base NVMe driver +device nvd # expose NVMe namespaces as disks, depends on nvme + +# # SafeNet crypto driver: can be moved to the MI NOTES as soon as # it's tested on a big-endian machine # Modified: user/andre/tcp_workqueue/sys/amd64/include/atomic.h ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/include/atomic.h Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/include/atomic.h Fri Oct 19 13:05:51 2012 (r241732) @@ -226,7 +226,7 @@ atomic_fetchadd_long(volatile u_long *p, static __inline void \ atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ { \ - __asm __volatile("" : : : "memory"); \ + __compiler_membar(); \ *p = v; \ } \ struct __hack @@ -240,7 +240,7 @@ atomic_load_acq_##TYPE(volatile u_##TYPE u_##TYPE tmp; \ \ tmp = *p; \ - __asm __volatile("" : : : "memory"); \ + __compiler_membar(); \ return (tmp); \ } \ struct __hack Modified: user/andre/tcp_workqueue/sys/amd64/include/intr_machdep.h ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/include/intr_machdep.h Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/include/intr_machdep.h Fri Oct 19 13:05:51 2012 (r241732) @@ -140,7 +140,9 @@ int elcr_probe(void); enum intr_trigger elcr_read_trigger(u_int irq); void elcr_resume(void); void elcr_write_trigger(u_int irq, enum intr_trigger trigger); +#ifdef SMP void intr_add_cpu(u_int cpu); +#endif int intr_add_handler(const char *name, int vector, driver_filter_t filter, driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep); Modified: user/andre/tcp_workqueue/sys/amd64/include/pc/bios.h ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/include/pc/bios.h Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/include/pc/bios.h Fri Oct 19 13:05:51 2012 (r241732) @@ -30,16 +30,9 @@ #ifndef _MACHINE_PC_BIOS_H_ #define _MACHINE_PC_BIOS_H_ -extern u_int32_t bios_sigsearch(u_int32_t start, u_char *sig, int siglen, - int paralen, int sigofs); - -#define BIOS_PADDRTOVADDR(x) ((x) + KERNBASE) -#define BIOS_VADDRTOPADDR(x) ((x) - KERNBASE) - /* * Int 15:E820 'SMAP' structure */ - #define SMAP_SIG 0x534D4150 /* 'SMAP' */ #define SMAP_TYPE_MEMORY 1 @@ -58,22 +51,61 @@ struct bios_smap { u_int32_t type; } __packed; +/* + * System Management BIOS + */ +#define SMBIOS_START 0xf0000 +#define SMBIOS_STEP 0x10 +#define SMBIOS_OFF 0 +#define SMBIOS_LEN 4 +#define SMBIOS_SIG "_SM_" + +struct smbios_eps { + uint8_t anchor_string[4]; /* '_SM_' */ + uint8_t checksum; + uint8_t length; + uint8_t major_version; + uint8_t minor_version; + uint16_t maximum_structure_size; + uint8_t entry_point_revision; + uint8_t formatted_area[5]; + uint8_t intermediate_anchor_string[5]; /* '_DMI_' */ + uint8_t intermediate_checksum; + uint16_t structure_table_length; + uint32_t structure_table_address; + uint16_t number_structures; + uint8_t BCD_revision; +}; + +struct smbios_structure_header { + uint8_t type; + uint8_t length; + uint16_t handle; +}; + +#ifdef _KERNEL +#define BIOS_PADDRTOVADDR(x) ((x) + KERNBASE) +#define BIOS_VADDRTOPADDR(x) ((x) - KERNBASE) + struct bios_oem_signature { char * anchor; /* search anchor string in BIOS memory */ size_t offset; /* offset from anchor (may be negative) */ size_t totlen; /* total length of BIOS string to copy */ } __packed; + struct bios_oem_range { u_int from; /* shouldn't be below 0xe0000 */ u_int to; /* shouldn't be above 0xfffff */ } __packed; + struct bios_oem { struct bios_oem_range range; struct bios_oem_signature signature[]; } __packed; -extern int -bios_oem_strings(struct bios_oem *oem, u_char *buffer, size_t maxlen); - +int bios_oem_strings(struct bios_oem *oem, u_char *buffer, size_t maxlen); +uint32_t bios_sigsearch(uint32_t start, u_char *sig, int siglen, int paralen, + int sigofs); +#endif #endif /* _MACHINE_PC_BIOS_H_ */ Modified: user/andre/tcp_workqueue/sys/amd64/pci/pci_cfgreg.c ============================================================================== --- user/andre/tcp_workqueue/sys/amd64/pci/pci_cfgreg.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/amd64/pci/pci_cfgreg.c Fri Oct 19 13:05:51 2012 (r241732) @@ -295,6 +295,13 @@ pcie_cfgregopen(uint64_t base, uint8_t m return (1); } +/* + * AMD BIOS And Kernel Developer's Guides for CPU families starting with 10h + * have a requirement that all accesses to the memory mapped PCI configuration + * space are done using AX class of registers. + * Since other vendors do not currently have any contradicting requirements + * the AMD access pattern is applied universally. + */ #define PCIE_VADDR(base, reg, bus, slot, func) \ ((base) + \ ((((bus) & 0xff) << 20) | \ @@ -317,13 +324,16 @@ pciereg_cfgread(int bus, unsigned slot, switch (bytes) { case 4: - data = *(volatile uint32_t *)(va); + __asm __volatile("mov %1, %%eax" : "=a" (data) + : "m" (*(uint32_t *)va)); break; case 2: - data = *(volatile uint16_t *)(va); + __asm __volatile("movzwl %1, %%eax" : "=a" (data) + : "m" (*(uint16_t *)va)); break; case 1: - data = *(volatile uint8_t *)(va); + __asm __volatile("movzbl %1, %%eax" : "=a" (data) + : "m" (*(uint8_t *)va)); break; } @@ -344,13 +354,16 @@ pciereg_cfgwrite(int bus, unsigned slot, switch (bytes) { case 4: - *(volatile uint32_t *)(va) = data; + __asm __volatile("mov %%eax, %0" : "=m" (*(uint32_t *)va) + : "a" (data)); break; case 2: - *(volatile uint16_t *)(va) = data; + __asm __volatile("mov %%ax, %0" : "=m" (*(uint16_t *)va) + : "a" (data)); break; case 1: - *(volatile uint8_t *)(va) = data; + __asm __volatile("mov %%al, %0" : "=m" (*(uint8_t *)va) + : "a" (data)); break; } } Modified: user/andre/tcp_workqueue/sys/arm/arm/cpufunc.c ============================================================================== --- user/andre/tcp_workqueue/sys/arm/arm/cpufunc.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/arm/arm/cpufunc.c Fri Oct 19 13:05:51 2012 (r241732) @@ -1415,6 +1415,7 @@ set_cpufuncs() #if defined(CPU_MV_PJ4B) if (cputype == CPU_ID_MV88SV581X_V6 || cputype == CPU_ID_MV88SV581X_V7 || + cputype == CPU_ID_MV88SV584X_V7 || cputype == CPU_ID_ARM_88SV581X_V6 || cputype == CPU_ID_ARM_88SV581X_V7) { if (cpu_pfr(0) & ARM_PFR0_THUMBEE_MASK) @@ -1425,8 +1426,8 @@ set_cpufuncs() get_cachetype_cp15(); pmap_pte_init_mmu_v6(); goto out; - } else if (cputype == CPU_ID_ARM_88SV584X || - cputype == CPU_ID_MV88SV584X) { + } else if (cputype == CPU_ID_ARM_88SV584X_V6 || + cputype == CPU_ID_MV88SV584X_V6) { cpufuncs = pj4bv6_cpufuncs; get_cachetype_cp15(); pmap_pte_init_mmu_v6(); Modified: user/andre/tcp_workqueue/sys/arm/arm/identcpu.c ============================================================================== --- user/andre/tcp_workqueue/sys/arm/arm/identcpu.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/arm/arm/identcpu.c Fri Oct 19 13:05:51 2012 (r241732) @@ -321,9 +321,11 @@ const struct cpuidtab cpuids[] = { generic_steppings }, { CPU_ID_ARM_88SV581X_V7, CPU_CLASS_MARVELL, "Sheeva 88SV581x", generic_steppings }, - { CPU_ID_MV88SV584X, CPU_CLASS_MARVELL, "Sheeva 88SV584x", + { CPU_ID_MV88SV584X_V6, CPU_CLASS_MARVELL, "Sheeva 88SV584x", generic_steppings }, - { CPU_ID_ARM_88SV584X, CPU_CLASS_MARVELL, "Sheeva 88SV584x", + { CPU_ID_ARM_88SV584X_V6, CPU_CLASS_MARVELL, "Sheeva 88SV584x", + generic_steppings }, + { CPU_ID_MV88SV584X_V7, CPU_CLASS_MARVELL, "Sheeva 88SV584x", generic_steppings }, { 0, CPU_CLASS_NONE, NULL, NULL } Modified: user/andre/tcp_workqueue/sys/arm/arm/machdep.c ============================================================================== --- user/andre/tcp_workqueue/sys/arm/arm/machdep.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/arm/arm/machdep.c Fri Oct 19 13:05:51 2012 (r241732) @@ -948,3 +948,16 @@ init_proc0(vm_offset_t kstack) thread0.td_frame = &proc0_tf; pcpup->pc_curpcb = thread0.td_pcb; } + +void +set_stackptrs(int cpu) +{ + + set_stackptr(PSR_IRQ32_MODE, + irqstack.pv_va + ((IRQ_STACK_SIZE * PAGE_SIZE) * (cpu + 1))); + set_stackptr(PSR_ABT32_MODE, + abtstack.pv_va + ((ABT_STACK_SIZE * PAGE_SIZE) * (cpu + 1))); + set_stackptr(PSR_UND32_MODE, + undstack.pv_va + ((UND_STACK_SIZE * PAGE_SIZE) * (cpu + 1))); +} + Modified: user/andre/tcp_workqueue/sys/arm/arm/pmap-v6.c ============================================================================== --- user/andre/tcp_workqueue/sys/arm/arm/pmap-v6.c Fri Oct 19 12:44:22 2012 (r241731) +++ user/andre/tcp_workqueue/sys/arm/arm/pmap-v6.c Fri Oct 19 13:05:51 2012 (r241732) @@ -148,15 +148,19 @@ __FBSDID("$FreeBSD$"); #include <sys/systm.h> #include <sys/kernel.h> #include <sys/ktr.h> +#include <sys/lock.h> #include <sys/proc.h> #include <sys/malloc.h> #include <sys/msgbuf.h> +#include <sys/mutex.h> #include <sys/vmmeter.h> #include <sys/mman.h> +#include <sys/rwlock.h> #include <sys/smp.h> #include <sys/sched.h> #include <vm/vm.h> +#include <vm/vm_param.h> #include <vm/uma.h> #include <vm/pmap.h> #include <vm/vm_kern.h> @@ -164,12 +168,9 @@ __FBSDID("$FreeBSD$"); #include <vm/vm_map.h> #include <vm/vm_page.h> #include <vm/vm_pageout.h> -#include <vm/vm_param.h> #include <vm/vm_extern.h> -#include <sys/lock.h> -#include <sys/mutex.h> + #include <machine/md_var.h> -#include <machine/vmparam.h> #include <machine/cpu.h> #include <machine/cpufunc.h> #include <machine/pcb.h> @@ -202,6 +203,7 @@ static pv_entry_t pmap_get_pv_entry(void static void pmap_enter_locked(pmap_t, vm_offset_t, vm_page_t, vm_prot_t, boolean_t, int); +static vm_paddr_t pmap_extract_locked(pmap_t pmap, vm_offset_t va); static void pmap_alloc_l1(pmap_t); static void pmap_free_l1(pmap_t); @@ -219,7 +221,6 @@ vm_offset_t virtual_end; /* VA of last a vm_offset_t pmap_curmaxkvaddr; vm_paddr_t kernel_l1pa; -extern void *end; vm_offset_t kernel_vm_end = 0; struct pmap kernel_pmap_store; @@ -246,13 +247,6 @@ pt_entry_t pte_l2_l_cache_mode_pt; pt_entry_t pte_l2_s_cache_mode; pt_entry_t pte_l2_s_cache_mode_pt; -/* - * Which pmap is currently 'live' in the cache - * - * XXXSCW: Fix for SMP ... - */ -union pmap_cache_state *pmap_cache_state; - struct msgbuf *msgbufp = 0; /* @@ -263,8 +257,6 @@ static caddr_t crashdumpmap; extern void bcopy_page(vm_offset_t, vm_offset_t); extern void bzero_page(vm_offset_t); -extern vm_offset_t alloc_firstaddr; - char *_tmppt; /* @@ -357,14 +349,6 @@ struct l2_dtable { #define L2_NEXT_BUCKET(va) (((va) & L1_S_FRAME) + L1_S_SIZE) /* - * L2 allocation. - */ -#define pmap_alloc_l2_dtable() \ - (void*)uma_zalloc(l2table_zone, M_NOWAIT|M_USE_RESERVE) -#define pmap_free_l2_dtable(l2) \ - uma_zfree(l2table_zone, l2) - -/* * We try to map the page tables write-through, if possible. However, not * all CPUs have a write-through cache mode, so on those we have to sync * the cache when we frob page tables. @@ -400,6 +384,7 @@ static vm_offset_t pmap_kernel_l2ptp_kva static vm_paddr_t pmap_kernel_l2ptp_phys; static struct vm_object pvzone_obj; static int pv_entry_count=0, pv_entry_max=0, pv_entry_high_water=0; +static struct rwlock pvh_global_lock; int l1_mem_types[] = { ARM_L1S_STRONG_ORD, @@ -613,36 +598,29 @@ pmap_alloc_l2_bucket(pmap_t pm, vm_offse l1idx = L1_IDX(va); PMAP_ASSERT_LOCKED(pm); - mtx_assert(&vm_page_queue_mtx, MA_OWNED); + rw_assert(&pvh_global_lock, RA_WLOCKED); if ((l2 = pm->pm_l2[L2_IDX(l1idx)]) == NULL) { /* * No mapping at this address, as there is * no entry in the L1 table. * Need to allocate a new l2_dtable. */ -again_l2table: PMAP_UNLOCK(pm); - vm_page_unlock_queues(); - if ((l2 = pmap_alloc_l2_dtable()) == NULL) { - vm_page_lock_queues(); + rw_wunlock(&pvh_global_lock); + if ((l2 = uma_zalloc(l2table_zone, M_NOWAIT)) == NULL) { + rw_wlock(&pvh_global_lock); PMAP_LOCK(pm); return (NULL); } - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pm); if (pm->pm_l2[L2_IDX(l1idx)] != NULL) { - PMAP_UNLOCK(pm); - vm_page_unlock_queues(); - uma_zfree(l2table_zone, l2); - vm_page_lock_queues(); - PMAP_LOCK(pm); - l2 = pm->pm_l2[L2_IDX(l1idx)]; - if (l2 == NULL) - goto again_l2table; /* * Someone already allocated the l2_dtable while * we were doing the same. */ + uma_zfree(l2table_zone, l2); + l2 = pm->pm_l2[L2_IDX(l1idx)]; } else { bzero(l2, sizeof(*l2)); /* @@ -664,21 +642,14 @@ again_l2table: * No L2 page table has been allocated. Chances are, this * is because we just allocated the l2_dtable, above. */ -again_ptep: PMAP_UNLOCK(pm); - vm_page_unlock_queues(); - ptep = (void*)uma_zalloc(l2zone, M_NOWAIT|M_USE_RESERVE); - vm_page_lock_queues(); + rw_wunlock(&pvh_global_lock); + ptep = uma_zalloc(l2zone, M_NOWAIT); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pm); if (l2b->l2b_kva != 0) { /* We lost the race. */ - PMAP_UNLOCK(pm); - vm_page_unlock_queues(); uma_zfree(l2zone, ptep); - vm_page_lock_queues(); - PMAP_LOCK(pm); - if (l2b->l2b_kva == 0) - goto again_ptep; return (l2b); } l2b->l2b_phys = vtophys(ptep); @@ -690,7 +661,7 @@ again_ptep: */ if (l2->l2_occupancy == 0) { pm->pm_l2[L2_IDX(l1idx)] = NULL; - pmap_free_l2_dtable(l2); + uma_zfree(l2table_zone, l2); } return (NULL); } @@ -788,7 +759,7 @@ pmap_free_l2_bucket(pmap_t pm, struct l2 * the pointer in the parent pmap and free the l2_dtable. */ pm->pm_l2[L2_IDX(l1idx)] = NULL; - pmap_free_l2_dtable(l2); + uma_zfree(l2table_zone, l2); } /* @@ -851,7 +822,7 @@ pmap_clearbit(struct vm_page *pg, u_int u_int oflags; int count = 0; - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); if (maskbits & PVF_WRITE) maskbits |= PVF_MOD; @@ -861,7 +832,7 @@ pmap_clearbit(struct vm_page *pg, u_int pg->md.pvh_attrs &= ~(maskbits & (PVF_MOD | PVF_REF)); if (TAILQ_EMPTY(&pg->md.pv_list)) { - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); return (0); } @@ -917,7 +888,7 @@ pmap_clearbit(struct vm_page *pg, u_int if (maskbits & PVF_WRITE) vm_page_aflag_clear(pg, PGA_WRITEABLE); - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); return (count); } @@ -927,15 +898,15 @@ pmap_clearbit(struct vm_page *pg, u_int * pmap_remove_pv: remove a mappiing from a vm_page list * * NOTE: pmap_enter_pv expects to lock the pvh itself - * pmap_remove_pv expects te caller to lock the pvh before calling + * pmap_remove_pv expects the caller to lock the pvh before calling */ /* - * pmap_enter_pv: enter a mapping onto a vm_page lst + * pmap_enter_pv: enter a mapping onto a vm_page's PV list * - * => caller should hold the proper lock on pmap_main_lock + * => caller should hold the proper lock on pvh_global_lock * => caller should have pmap locked - * => we will gain the lock on the vm_page and allocate the new pv_entry + * => we will (someday) gain the lock on the vm_page's PV list * => caller should adjust ptp's wire_count before calling * => caller should not adjust pmap's wire_count */ @@ -944,7 +915,7 @@ pmap_enter_pv(struct vm_page *pg, struct vm_offset_t va, u_int flags) { - mtx_assert(&vm_page_queue_mtx, MA_OWNED); + rw_assert(&pvh_global_lock, RA_WLOCKED); PMAP_ASSERT_LOCKED(pm); pve->pv_pmap = pm; @@ -970,7 +941,7 @@ pmap_find_pv(struct vm_page *pg, pmap_t { struct pv_entry *pv; - mtx_assert(&vm_page_queue_mtx, MA_OWNED); + rw_assert(&pvh_global_lock, RA_WLOCKED); TAILQ_FOREACH(pv, &pg->md.pv_list, pv_list) if (pm == pv->pv_pmap && va == pv->pv_va) break; @@ -1031,7 +1002,7 @@ static void pmap_nuke_pv(struct vm_page *pg, pmap_t pm, struct pv_entry *pve) { - mtx_assert(&vm_page_queue_mtx, MA_OWNED); + rw_assert(&pvh_global_lock, RA_WLOCKED); PMAP_ASSERT_LOCKED(pm); TAILQ_REMOVE(&pg->md.pv_list, pve, pv_list); @@ -1064,7 +1035,7 @@ pmap_remove_pv(struct vm_page *pg, pmap_ { struct pv_entry *pve; - mtx_assert(&vm_page_queue_mtx, MA_OWNED); + rw_assert(&pvh_global_lock, RA_WLOCKED); pve = TAILQ_FIRST(&pg->md.pv_list); while (pve) { @@ -1096,7 +1067,7 @@ pmap_modify_pv(struct vm_page *pg, pmap_ u_int flags, oflags; PMAP_ASSERT_LOCKED(pm); - mtx_assert(&vm_page_queue_mtx, MA_OWNED); + rw_assert(&pvh_global_lock, RA_WLOCKED); if ((npv = pmap_find_pv(pg, pm, va)) == NULL) return (0); @@ -1174,28 +1145,25 @@ pmap_init(void) PDEBUG(1, printf("pmap_init: phys_start = %08x\n", PHYSADDR)); + l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor, + NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); + l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable), NULL, + NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); + /* - * init the pv free list + * Initialize the PV entry allocator. */ pvzone = uma_zcreate("PV ENTRY", sizeof (struct pv_entry), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); - /* - * Now it is safe to enable pv_table recording. - */ - PDEBUG(1, printf("pmap_init: done!\n")); - TUNABLE_INT_FETCH("vm.pmap.shpgperproc", &shpgperproc); - pv_entry_max = shpgperproc * maxproc + cnt.v_page_count; - pv_entry_high_water = 9 * (pv_entry_max / 10); - l2zone = uma_zcreate("L2 Table", L2_TABLE_SIZE_REAL, pmap_l2ptp_ctor, - NULL, NULL, NULL, UMA_ALIGN_PTR, UMA_ZONE_VM | UMA_ZONE_NOFREE); - l2table_zone = uma_zcreate("L2 Table", sizeof(struct l2_dtable), - NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, - UMA_ZONE_VM | UMA_ZONE_NOFREE); - uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max); + pv_entry_high_water = 9 * (pv_entry_max / 10); + /* + * Now it is safe to enable pv_table recording. + */ + PDEBUG(1, printf("pmap_init: done!\n")); } int @@ -1210,7 +1178,7 @@ pmap_fault_fixup(pmap_t pm, vm_offset_t int rv = 0; l1idx = L1_IDX(va); - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pm); /* @@ -1374,7 +1342,7 @@ pmap_fault_fixup(pmap_t pm, vm_offset_t rv = 1; out: - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); PMAP_UNLOCK(pm); return (rv); } @@ -1682,6 +1650,11 @@ pmap_bootstrap(vm_offset_t firstaddr, vm TAILQ_INIT(&kernel_pmap->pm_pvlist); /* + * Initialize the global pv list lock. + */ + rw_init(&pvh_global_lock, "pmap pv global"); + + /* * Reserve some special page table entries/VA space for temporary * mapping of pages. */ @@ -1946,7 +1919,7 @@ pmap_remove_pages(pmap_t pmap) vm_page_t m; pt_entry_t *pt; - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { if (pv->pv_flags & PVF_WIRED) { @@ -1969,7 +1942,7 @@ pmap_remove_pages(pmap_t pmap) pmap_free_pv_entry(pv); pmap_free_l2_bucket(pmap, l2b, 1); } - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); cpu_tlb_flushID(); cpu_cpwait(); PMAP_UNLOCK(pmap); @@ -2120,6 +2093,13 @@ pmap_kenter_user(vm_offset_t va, vm_padd pmap_fault_fixup(pmap_kernel(), va, VM_PROT_READ|VM_PROT_WRITE, 1); } +vm_paddr_t +pmap_kextract(vm_offset_t va) +{ + + return (pmap_extract_locked(kernel_pmap, va)); +} + /* * remove a page from the kernel pagetables */ @@ -2326,8 +2306,7 @@ pmap_remove_all(vm_page_t m) if (TAILQ_EMPTY(&m->md.pv_list)) return; - vm_page_lock_queues(); - pmap_remove_write(m); + rw_wlock(&pvh_global_lock); curpm = vmspace_pmap(curproc->p_vmspace); while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) { if (flush == FALSE && (pv->pv_pmap == curpm || @@ -2338,6 +2317,8 @@ pmap_remove_all(vm_page_t m) l2b = pmap_get_l2_bucket(pv->pv_pmap, pv->pv_va); KASSERT(l2b != NULL, ("No l2 bucket")); ptep = &l2b->l2b_kva[l2pte_index(pv->pv_va)]; + if (L2_S_WRITABLE(*ptep)) + vm_page_dirty(m); *ptep = 0; if (pmap_is_current(pv->pv_pmap)) PTE_SYNC(ptep); @@ -2348,6 +2329,7 @@ pmap_remove_all(vm_page_t m) PMAP_UNLOCK(pv->pv_pmap); pmap_free_pv_entry(pv); } + m->md.pvh_attrs &= ~(PVF_MOD | PVF_REF); if (flush) { if (PV_BEEN_EXECD(flags)) @@ -2356,7 +2338,7 @@ pmap_remove_all(vm_page_t m) cpu_tlb_flushD(); } vm_page_aflag_clear(m, PGA_WRITEABLE); - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); } int @@ -2444,7 +2426,7 @@ pmap_protect(pmap_t pm, vm_offset_t sva, return; } - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pm); /* @@ -2506,7 +2488,7 @@ pmap_protect(pmap_t pm, vm_offset_t sva, if (PV_BEEN_REFD(flags)) cpu_tlb_flushD(); } - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); PMAP_UNLOCK(pm); } @@ -2530,15 +2512,15 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_prot_t prot, boolean_t wired) { - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); pmap_enter_locked(pmap, va, m, prot, wired, M_WAITOK); PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); } /* - * The page queues and pmap must be locked. + * The pvh global and pmap locks must be held. */ static void pmap_enter_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, @@ -2554,7 +2536,7 @@ pmap_enter_locked(pmap_t pmap, vm_offset u_char user; PMAP_ASSERT_LOCKED(pmap); - mtx_assert(&vm_page_queue_mtx, MA_OWNED); + rw_assert(&pvh_global_lock, RA_WLOCKED); if (va == vector_page) { pa = systempage.pv_pa; m = NULL; @@ -2594,9 +2576,9 @@ do_l2b_alloc: if (l2b == NULL) { if (flags & M_WAITOK) { PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); VM_WAIT; - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); goto do_l2b_alloc; } @@ -2789,7 +2771,7 @@ pmap_enter_object(pmap_t pmap, vm_offset psize = atop(end - start); m = m_start; - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); while (m != NULL && (diff = m->pindex - m_start->pindex) < psize) { pmap_enter_locked(pmap, start + ptoa(diff), m, prot & @@ -2797,7 +2779,7 @@ pmap_enter_object(pmap_t pmap, vm_offset m = TAILQ_NEXT(m, listq); } PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); } /* @@ -2813,12 +2795,12 @@ void pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot) { - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); pmap_enter_locked(pmap, va, m, prot & (VM_PROT_READ | VM_PROT_EXECUTE), FALSE, M_NOWAIT); PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); } /* @@ -2835,7 +2817,7 @@ pmap_change_wiring(pmap_t pmap, vm_offse pt_entry_t *ptep, pte; vm_page_t pg; - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pmap); l2b = pmap_get_l2_bucket(pmap, va); KASSERT(l2b, ("No l2b bucket in pmap_change_wiring")); @@ -2844,7 +2826,7 @@ pmap_change_wiring(pmap_t pmap, vm_offse pg = PHYS_TO_VM_PAGE(l2pte_pa(pte)); if (pg) pmap_modify_pv(pg, pmap, va, PVF_WIRED, wired); - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); PMAP_UNLOCK(pmap); } @@ -2870,22 +2852,34 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pm * with the given map/virtual_address pair. */ vm_paddr_t -pmap_extract(pmap_t pm, vm_offset_t va) +pmap_extract(pmap_t pmap, vm_offset_t va) +{ + vm_paddr_t pa; + + PMAP_LOCK(pmap); + pa = pmap_extract_locked(pmap, va); + PMAP_UNLOCK(pmap); + return (pa); +} + +static vm_paddr_t +pmap_extract_locked(pmap_t pmap, vm_offset_t va) { struct l2_dtable *l2; pd_entry_t l1pd; pt_entry_t *ptep, pte; vm_paddr_t pa; u_int l1idx; - l1idx = L1_IDX(va); - PMAP_LOCK(pm); - l1pd = pm->pm_l1->l1_kva[l1idx]; + if (pmap != kernel_pmap) + PMAP_ASSERT_LOCKED(pmap); + l1idx = L1_IDX(va); + l1pd = pmap->pm_l1->l1_kva[l1idx]; if (l1pte_section_p(l1pd)) { /* - * These should only happen for pmap_kernel() + * These should only happen for the kernel pmap. */ - KASSERT(pm == pmap_kernel(), ("huh")); + KASSERT(pmap == kernel_pmap, ("unexpected section")); /* XXX: what to do about the bits > 32 ? */ if (l1pd & L1_S_SUPERSEC) pa = (l1pd & L1_SUP_FRAME) | (va & L1_SUP_OFFSET); @@ -2897,34 +2891,22 @@ pmap_extract(pmap_t pm, vm_offset_t va) * descriptor as an indication that a mapping exists. * We have to look it up in the L2 dtable. */ - l2 = pm->pm_l2[L2_IDX(l1idx)]; - + l2 = pmap->pm_l2[L2_IDX(l1idx)]; if (l2 == NULL || - (ptep = l2->l2_bucket[L2_BUCKET(l1idx)].l2b_kva) == NULL) { - PMAP_UNLOCK(pm); + (ptep = l2->l2_bucket[L2_BUCKET(l1idx)].l2b_kva) == NULL) return (0); - } - - ptep = &ptep[l2pte_index(va)]; - pte = *ptep; - - if (pte == 0) { - PMAP_UNLOCK(pm); + pte = ptep[l2pte_index(va)]; + if (pte == 0) return (0); - } - switch (pte & L2_TYPE_MASK) { case L2_TYPE_L: pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET); break; - default: pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET); break; } } - - PMAP_UNLOCK(pm); return (pa); } @@ -3091,7 +3073,7 @@ pmap_remove(pmap_t pm, vm_offset_t sva, * we lock in the pmap => pv_head direction */ - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); PMAP_LOCK(pm); total = 0; while (sva < eva) { @@ -3170,7 +3152,7 @@ pmap_remove(pmap_t pm, vm_offset_t sva, pmap_free_l2_bucket(pm, l2b, mappings); } - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); if (flushall) cpu_tlb_flushID(); PMAP_UNLOCK(pm); @@ -3323,7 +3305,7 @@ pmap_page_exists_quick(pmap_t pmap, vm_p KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("pmap_page_exists_quick: page %p is not managed", m)); rv = FALSE; - vm_page_lock_queues(); + rw_wlock(&pvh_global_lock); TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { if (pv->pv_pmap == pmap) { rv = TRUE; @@ -3334,7 +3316,7 @@ pmap_page_exists_quick(pmap_t pmap, vm_p break; } - vm_page_unlock_queues(); + rw_wunlock(&pvh_global_lock); return (rv); } @@ -3353,11 +3335,11 @@ pmap_page_wired_mappings(vm_page_t m) count = 0; if ((m->flags & PG_FICTITIOUS) != 0) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201210191305.q9JD5qub096243>