From owner-svn-src-projects@freebsd.org Mon Sep 9 00:46:25 2019 Return-Path: Delivered-To: svn-src-projects@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id EA8D0E8E91 for ; Mon, 9 Sep 2019 00:46:25 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46RTxY505cz4JYn; Mon, 9 Sep 2019 00:46:25 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 74CD0592A; Mon, 9 Sep 2019 00:46:25 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x890kPH4082075; Mon, 9 Sep 2019 00:46:25 GMT (envelope-from rmacklem@FreeBSD.org) Received: (from rmacklem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x890kONB082069; Mon, 9 Sep 2019 00:46:24 GMT (envelope-from rmacklem@FreeBSD.org) Message-Id: <201909090046.x890kONB082069@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to rmacklem@FreeBSD.org using -f From: Rick Macklem Date: Mon, 9 Sep 2019 00:46:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r352051 - in projects/nfsv42/sys: amd64/amd64 amd64/conf amd64/include amd64/linux amd64/linux32 amd64/vmm amd64/vmm/amd amd64/vmm/intel amd64/vmm/io arm/allwinner arm/allwinner/a20 arm... X-SVN-Group: projects X-SVN-Commit-Author: rmacklem X-SVN-Commit-Paths: in projects/nfsv42/sys: amd64/amd64 amd64/conf amd64/include amd64/linux amd64/linux32 amd64/vmm amd64/vmm/amd amd64/vmm/intel amd64/vmm/io arm/allwinner arm/allwinner/a20 arm/allwinner/clkng arm/alte... X-SVN-Commit-Revision: 352051 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Sep 2019 00:46:26 -0000 Author: rmacklem Date: Mon Sep 9 00:46:22 2019 New Revision: 352051 URL: https://svnweb.freebsd.org/changeset/base/352051 Log: Merge in an up to date head kernel. Added: projects/nfsv42/sys/amd64/include/pcpu_aux.h - copied unchanged from r352050, head/sys/amd64/include/pcpu_aux.h projects/nfsv42/sys/amd64/linux/linux_locore.asm - copied unchanged from r352050, head/sys/amd64/linux/linux_locore.asm projects/nfsv42/sys/amd64/linux32/linux32_locore.asm - copied unchanged from r352050, head/sys/amd64/linux32/linux32_locore.asm projects/nfsv42/sys/arm/allwinner/clkng/aw_clk_m.c - copied unchanged from r352050, head/sys/arm/allwinner/clkng/aw_clk_m.c projects/nfsv42/sys/arm/allwinner/clkng/aw_clk_m.h - copied unchanged from r352050, head/sys/arm/allwinner/clkng/aw_clk_m.h projects/nfsv42/sys/arm/include/pcpu_aux.h - copied unchanged from r352050, head/sys/arm/include/pcpu_aux.h projects/nfsv42/sys/arm64/conf/Makefile - copied unchanged from r352050, head/sys/arm64/conf/Makefile projects/nfsv42/sys/arm64/conf/NOTES - copied unchanged from r352050, head/sys/arm64/conf/NOTES projects/nfsv42/sys/arm64/include/pcpu_aux.h - copied unchanged from r352050, head/sys/arm64/include/pcpu_aux.h projects/nfsv42/sys/arm64/linux/linux_locore.asm - copied unchanged from r352050, head/sys/arm64/linux/linux_locore.asm projects/nfsv42/sys/conf/files.x86 - copied unchanged from r352050, head/sys/conf/files.x86 projects/nfsv42/sys/contrib/zstd/contrib/seekable_format/examples/seekable_decompression_mem.c - copied unchanged from r352050, head/sys/contrib/zstd/contrib/seekable_format/examples/seekable_decompression_mem.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_compress_literals.c - copied unchanged from r352050, head/sys/contrib/zstd/lib/compress/zstd_compress_literals.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_compress_literals.h - copied unchanged from r352050, head/sys/contrib/zstd/lib/compress/zstd_compress_literals.h projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_compress_sequences.c - copied unchanged from r352050, head/sys/contrib/zstd/lib/compress/zstd_compress_sequences.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_compress_sequences.h - copied unchanged from r352050, head/sys/contrib/zstd/lib/compress/zstd_compress_sequences.h projects/nfsv42/sys/contrib/zstd/tests/bigdict.c - copied unchanged from r352050, head/sys/contrib/zstd/tests/bigdict.c projects/nfsv42/sys/contrib/zstd/tests/fuzz/simple_compress.c - copied unchanged from r352050, head/sys/contrib/zstd/tests/fuzz/simple_compress.c projects/nfsv42/sys/contrib/zstd/tests/fuzz/zstd_frame_info.c - copied unchanged from r352050, head/sys/contrib/zstd/tests/fuzz/zstd_frame_info.c projects/nfsv42/sys/dev/altera/dwc/ - copied from r352050, head/sys/dev/altera/dwc/ projects/nfsv42/sys/dev/gpio/dwgpio/ - copied from r352050, head/sys/dev/gpio/dwgpio/ projects/nfsv42/sys/dev/iicbus/ads111x.c - copied unchanged from r352050, head/sys/dev/iicbus/ads111x.c projects/nfsv42/sys/dev/ntb/test/ - copied from r352050, head/sys/dev/ntb/test/ projects/nfsv42/sys/dev/nvme/nvme_ahci.c - copied unchanged from r352050, head/sys/dev/nvme/nvme_ahci.c projects/nfsv42/sys/dev/nvme/nvme_pci.c - copied unchanged from r352050, head/sys/dev/nvme/nvme_pci.c projects/nfsv42/sys/dev/usb/net/if_cdceem.c - copied unchanged from r352050, head/sys/dev/usb/net/if_cdceem.c projects/nfsv42/sys/dev/usb/template/usb_template_cdceem.c - copied unchanged from r352050, head/sys/dev/usb/template/usb_template_cdceem.c projects/nfsv42/sys/dev/zlib/ - copied from r352050, head/sys/dev/zlib/ projects/nfsv42/sys/dts/arm/overlays/sun8i-h3-ths.dtso - copied unchanged from r352050, head/sys/dts/arm/overlays/sun8i-h3-ths.dtso projects/nfsv42/sys/geom/geom_dbg.h - copied unchanged from r352050, head/sys/geom/geom_dbg.h projects/nfsv42/sys/geom/uzip/g_uzip_zstd.c - copied unchanged from r352050, head/sys/geom/uzip/g_uzip_zstd.c projects/nfsv42/sys/geom/uzip/g_uzip_zstd.h - copied unchanged from r352050, head/sys/geom/uzip/g_uzip_zstd.h projects/nfsv42/sys/i386/include/pcpu_aux.h - copied unchanged from r352050, head/sys/i386/include/pcpu_aux.h projects/nfsv42/sys/i386/linux/linux_locore.asm - copied unchanged from r352050, head/sys/i386/linux/linux_locore.asm projects/nfsv42/sys/kern/uipc_ktls.c - copied unchanged from r352050, head/sys/kern/uipc_ktls.c projects/nfsv42/sys/libkern/strchrnul.c - copied unchanged from r352050, head/sys/libkern/strchrnul.c projects/nfsv42/sys/mips/include/pcpu_aux.h - copied unchanged from r352050, head/sys/mips/include/pcpu_aux.h projects/nfsv42/sys/modules/i2c/ads111x/ - copied from r352050, head/sys/modules/i2c/ads111x/ projects/nfsv42/sys/modules/ktls_ocf/ - copied from r352050, head/sys/modules/ktls_ocf/ projects/nfsv42/sys/modules/ntb/ntb_tool/ - copied from r352050, head/sys/modules/ntb/ntb_tool/ projects/nfsv42/sys/modules/usb/cdceem/ - copied from r352050, head/sys/modules/usb/cdceem/ projects/nfsv42/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c - copied unchanged from r352050, head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_intel.c projects/nfsv42/sys/netinet/tcp_ratelimit.c - copied unchanged from r352050, head/sys/netinet/tcp_ratelimit.c projects/nfsv42/sys/netinet/tcp_ratelimit.h - copied unchanged from r352050, head/sys/netinet/tcp_ratelimit.h projects/nfsv42/sys/ofed/include/rdma/rdma_sdp.h - copied unchanged from r352050, head/sys/ofed/include/rdma/rdma_sdp.h projects/nfsv42/sys/opencrypto/ktls_ocf.c - copied unchanged from r352050, head/sys/opencrypto/ktls_ocf.c projects/nfsv42/sys/powerpc/include/pcpu_aux.h - copied unchanged from r352050, head/sys/powerpc/include/pcpu_aux.h projects/nfsv42/sys/riscv/include/pcpu_aux.h - copied unchanged from r352050, head/sys/riscv/include/pcpu_aux.h projects/nfsv42/sys/sparc64/include/pcpu_aux.h - copied unchanged from r352050, head/sys/sparc64/include/pcpu_aux.h projects/nfsv42/sys/sys/ktls.h - copied unchanged from r352050, head/sys/sys/ktls.h projects/nfsv42/sys/sys/qmath.h - copied unchanged from r352050, head/sys/sys/qmath.h projects/nfsv42/sys/x86/conf/ - copied from r352050, head/sys/x86/conf/ Deleted: projects/nfsv42/sys/amd64/linux/linux_locore.s projects/nfsv42/sys/amd64/linux32/linux32_locore.s projects/nfsv42/sys/arm/altera/socfpga/socfpga_gpio.c projects/nfsv42/sys/arm/arm/elf_trampoline.c projects/nfsv42/sys/arm/arm/inckern.S projects/nfsv42/sys/arm64/linux/linux_locore.s projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/adler32.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/crc32.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/deflate.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/deflate.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/inffast.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/inffast.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/inffixed.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/inflate.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/inflate.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/inftrees.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/inftrees.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/trees.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/zconf.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/zlib.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/zmod_subr.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/zutil.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/zutil.h projects/nfsv42/sys/contrib/zstd/tests/fuzz/default.options projects/nfsv42/sys/dev/netmap/netmap_pt.c projects/nfsv42/sys/fs/fuse/fuse_param.h projects/nfsv42/sys/geom/geom_bsd.c projects/nfsv42/sys/geom/geom_fox.c projects/nfsv42/sys/geom/geom_mbr.c projects/nfsv42/sys/geom/geom_mbr_enc.c projects/nfsv42/sys/geom/geom_sunlabel.c projects/nfsv42/sys/geom/geom_sunlabel_enc.c projects/nfsv42/sys/geom/geom_vol_ffs.c projects/nfsv42/sys/i386/linux/linux_locore.s projects/nfsv42/sys/kern/imgact_gzip.c projects/nfsv42/sys/kern/subr_inflate.c projects/nfsv42/sys/libkern/zlib.c projects/nfsv42/sys/modules/geom/geom_bsd/ projects/nfsv42/sys/modules/geom/geom_fox/ projects/nfsv42/sys/modules/geom/geom_mbr/ projects/nfsv42/sys/modules/geom/geom_sunlabel/ projects/nfsv42/sys/modules/geom/geom_vol_ffs/ projects/nfsv42/sys/sys/_kstack_cache.h projects/nfsv42/sys/sys/dir.h projects/nfsv42/sys/sys/inflate.h projects/nfsv42/sys/sys/sun_disklabel.h projects/nfsv42/sys/sys/zlib.h projects/nfsv42/sys/sys/zutil.h Modified: projects/nfsv42/sys/amd64/amd64/cpu_switch.S projects/nfsv42/sys/amd64/amd64/elf_machdep.c projects/nfsv42/sys/amd64/amd64/exception.S projects/nfsv42/sys/amd64/amd64/machdep.c projects/nfsv42/sys/amd64/amd64/mp_machdep.c projects/nfsv42/sys/amd64/amd64/pmap.c projects/nfsv42/sys/amd64/amd64/vm_machdep.c projects/nfsv42/sys/amd64/conf/Makefile projects/nfsv42/sys/amd64/conf/NOTES projects/nfsv42/sys/amd64/include/asmacros.h projects/nfsv42/sys/amd64/include/counter.h projects/nfsv42/sys/amd64/include/gdb_machdep.h projects/nfsv42/sys/amd64/include/md_var.h projects/nfsv42/sys/amd64/include/pcpu.h projects/nfsv42/sys/amd64/include/pmap.h projects/nfsv42/sys/amd64/include/vmm.h projects/nfsv42/sys/amd64/include/vmparam.h projects/nfsv42/sys/amd64/linux/linux_ptrace.c projects/nfsv42/sys/amd64/linux/linux_sysvec.c projects/nfsv42/sys/amd64/vmm/amd/svm.c projects/nfsv42/sys/amd64/vmm/intel/vmx.c projects/nfsv42/sys/amd64/vmm/intel/vmx_msr.c projects/nfsv42/sys/amd64/vmm/io/ppt.c projects/nfsv42/sys/amd64/vmm/io/ppt.h projects/nfsv42/sys/amd64/vmm/io/vlapic.c projects/nfsv42/sys/amd64/vmm/io/vlapic.h projects/nfsv42/sys/amd64/vmm/io/vlapic_priv.h projects/nfsv42/sys/amd64/vmm/vmm.c projects/nfsv42/sys/amd64/vmm/vmm_host.h projects/nfsv42/sys/amd64/vmm/vmm_lapic.c projects/nfsv42/sys/amd64/vmm/vmm_lapic.h projects/nfsv42/sys/amd64/vmm/vmm_util.c projects/nfsv42/sys/amd64/vmm/vmm_util.h projects/nfsv42/sys/arm/allwinner/a10_sramc.c projects/nfsv42/sys/arm/allwinner/a20/a20_cpu_cfg.c projects/nfsv42/sys/arm/allwinner/aw_gmacclk.c projects/nfsv42/sys/arm/allwinner/aw_reset.c projects/nfsv42/sys/arm/allwinner/aw_rsb.c projects/nfsv42/sys/arm/allwinner/aw_rtc.c projects/nfsv42/sys/arm/allwinner/aw_sid.c projects/nfsv42/sys/arm/allwinner/aw_syscon.c projects/nfsv42/sys/arm/allwinner/clkng/aw_ccung.c projects/nfsv42/sys/arm/allwinner/clkng/aw_ccung.h projects/nfsv42/sys/arm/allwinner/clkng/aw_clk.h projects/nfsv42/sys/arm/allwinner/clkng/aw_clk_frac.c projects/nfsv42/sys/arm/allwinner/clkng/aw_clk_frac.h projects/nfsv42/sys/arm/allwinner/clkng/ccu_a10.c projects/nfsv42/sys/arm/allwinner/clkng/ccu_a13.c projects/nfsv42/sys/arm/allwinner/clkng/ccu_a31.c projects/nfsv42/sys/arm/allwinner/clkng/ccu_a64.c projects/nfsv42/sys/arm/allwinner/clkng/ccu_a83t.c projects/nfsv42/sys/arm/allwinner/clkng/ccu_de2.c projects/nfsv42/sys/arm/allwinner/clkng/ccu_h3.c projects/nfsv42/sys/arm/allwinner/clkng/ccu_sun8i_r.c projects/nfsv42/sys/arm/allwinner/files.allwinner projects/nfsv42/sys/arm/altera/socfpga/files.socfpga projects/nfsv42/sys/arm/arm/busdma_machdep-v4.c projects/nfsv42/sys/arm/arm/busdma_machdep-v6.c projects/nfsv42/sys/arm/arm/mem.c projects/nfsv42/sys/arm/arm/minidump_machdep.c projects/nfsv42/sys/arm/arm/mp_machdep.c projects/nfsv42/sys/arm/arm/physmem.c projects/nfsv42/sys/arm/broadcom/bcm2835/bcm2835_fbd.c projects/nfsv42/sys/arm/broadcom/bcm2835/bcm2835_mbox.c projects/nfsv42/sys/arm/broadcom/bcm2835/bcm2835_mbox_prop.h projects/nfsv42/sys/arm/conf/ALPINE projects/nfsv42/sys/arm/conf/ARMADA38X projects/nfsv42/sys/arm/conf/ARMADAXP projects/nfsv42/sys/arm/conf/DB-78XXX projects/nfsv42/sys/arm/conf/DB-88F5XXX projects/nfsv42/sys/arm/conf/DB-88F6XXX projects/nfsv42/sys/arm/conf/GENERIC projects/nfsv42/sys/arm/conf/NOTES projects/nfsv42/sys/arm/conf/NOTES.armv5 projects/nfsv42/sys/arm/conf/RT1310 projects/nfsv42/sys/arm/conf/SHEEVAPLUG projects/nfsv42/sys/arm/conf/SOCFPGA projects/nfsv42/sys/arm/conf/TEGRA124 projects/nfsv42/sys/arm/conf/TS7800 projects/nfsv42/sys/arm/conf/VYBRID projects/nfsv42/sys/arm/include/counter.h projects/nfsv42/sys/arm/include/pmap.h projects/nfsv42/sys/arm/mv/a37x0_gpio.c projects/nfsv42/sys/arm/mv/discovery/std.db78xxx projects/nfsv42/sys/arm/mv/orion/std.db88f5xxx projects/nfsv42/sys/arm/mv/orion/std.ts7800 projects/nfsv42/sys/arm/ralink/std.ralink projects/nfsv42/sys/arm/samsung/exynos/exynos5_combiner.c projects/nfsv42/sys/arm/samsung/exynos/exynos5_pad.c projects/nfsv42/sys/arm/ti/am335x/am335x_pmic.c projects/nfsv42/sys/arm/ti/am335x/files.am335x projects/nfsv42/sys/arm/ti/am335x/tda19988.c projects/nfsv42/sys/arm/ti/cpsw/if_cpsw.c projects/nfsv42/sys/arm/ti/ti_hwmods.c projects/nfsv42/sys/arm/ti/ti_sdhci.c projects/nfsv42/sys/arm64/arm64/freebsd32_machdep.c projects/nfsv42/sys/arm64/arm64/identcpu.c projects/nfsv42/sys/arm64/arm64/mp_machdep.c projects/nfsv42/sys/arm64/arm64/pmap.c projects/nfsv42/sys/arm64/conf/GENERIC projects/nfsv42/sys/arm64/include/counter.h projects/nfsv42/sys/arm64/include/cpu.h projects/nfsv42/sys/arm64/include/pmap.h projects/nfsv42/sys/arm64/include/pte.h projects/nfsv42/sys/arm64/rockchip/if_dwc_rk.c projects/nfsv42/sys/arm64/rockchip/rk_gpio.c projects/nfsv42/sys/arm64/rockchip/rk_grf.c projects/nfsv42/sys/arm64/rockchip/rk_i2c.c projects/nfsv42/sys/arm64/rockchip/rk_pinctrl.c projects/nfsv42/sys/cam/ata/ata_xpt.c projects/nfsv42/sys/cam/ctl/ctl.c projects/nfsv42/sys/cam/ctl/ctl_backend_ramdisk.c projects/nfsv42/sys/cam/mmc/mmc_xpt.c projects/nfsv42/sys/cam/nvme/nvme_xpt.c projects/nfsv42/sys/cam/scsi/scsi_all.c projects/nfsv42/sys/cam/scsi/scsi_all.h projects/nfsv42/sys/cam/scsi/scsi_cd.c projects/nfsv42/sys/cam/scsi/scsi_cd.h projects/nfsv42/sys/cam/scsi/scsi_enc_ses.c projects/nfsv42/sys/cam/scsi/scsi_xpt.c projects/nfsv42/sys/cddl/boot/zfs/zfsimpl.h projects/nfsv42/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c projects/nfsv42/sys/cddl/contrib/opensolaris/common/zfs/zfeature_common.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/os/list.c projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/sys/list.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/sys/list_impl.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/sys/note.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/sys/sysmacros.h projects/nfsv42/sys/cddl/contrib/opensolaris/uts/common/zmod/zmod.c projects/nfsv42/sys/compat/cloudabi/cloudabi_fd.c projects/nfsv42/sys/compat/freebsd32/freebsd32_capability.c projects/nfsv42/sys/compat/freebsd32/freebsd32_misc.c projects/nfsv42/sys/compat/freebsd32/freebsd32_proto.h projects/nfsv42/sys/compat/freebsd32/freebsd32_syscall.h projects/nfsv42/sys/compat/freebsd32/freebsd32_syscalls.c projects/nfsv42/sys/compat/freebsd32/freebsd32_sysent.c projects/nfsv42/sys/compat/freebsd32/freebsd32_systrace_args.c projects/nfsv42/sys/compat/freebsd32/syscalls.master projects/nfsv42/sys/compat/ia32/ia32_sysvec.c projects/nfsv42/sys/compat/linprocfs/linprocfs.c projects/nfsv42/sys/compat/linux/linux_mib.c projects/nfsv42/sys/compat/linux/linux_mib.h projects/nfsv42/sys/compat/linux/linux_misc.c projects/nfsv42/sys/compat/linux/linux_uid16.c projects/nfsv42/sys/compat/linuxkpi/common/include/linux/device.h projects/nfsv42/sys/compat/linuxkpi/common/include/linux/gfp.h projects/nfsv42/sys/compat/linuxkpi/common/include/linux/interrupt.h projects/nfsv42/sys/compat/linuxkpi/common/include/linux/io.h projects/nfsv42/sys/compat/linuxkpi/common/include/linux/lockdep.h projects/nfsv42/sys/compat/linuxkpi/common/include/linux/pci.h projects/nfsv42/sys/compat/linuxkpi/common/include/linux/sysfs.h projects/nfsv42/sys/compat/linuxkpi/common/include/linux/workqueue.h projects/nfsv42/sys/compat/linuxkpi/common/src/linux_pci.c projects/nfsv42/sys/conf/Makefile.arm projects/nfsv42/sys/conf/NOTES projects/nfsv42/sys/conf/files projects/nfsv42/sys/conf/files.amd64 projects/nfsv42/sys/conf/files.arm projects/nfsv42/sys/conf/files.arm64 projects/nfsv42/sys/conf/files.i386 projects/nfsv42/sys/conf/files.sparc64 projects/nfsv42/sys/conf/kern.mk projects/nfsv42/sys/conf/kern.post.mk projects/nfsv42/sys/conf/kern.pre.mk projects/nfsv42/sys/conf/kmod.mk projects/nfsv42/sys/conf/makeLINT.mk projects/nfsv42/sys/conf/newvers.sh projects/nfsv42/sys/conf/options projects/nfsv42/sys/contrib/dev/acpica/components/executer/exconfig.c projects/nfsv42/sys/contrib/dev/acpica/include/platform/acfreebsd.h projects/nfsv42/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_xmit_ds.c projects/nfsv42/sys/contrib/ipfilter/netinet/fil.c projects/nfsv42/sys/contrib/ipfilter/netinet/ip_fil.h projects/nfsv42/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c projects/nfsv42/sys/contrib/ipfilter/netinet/ip_nat.c projects/nfsv42/sys/contrib/ipfilter/netinet/ip_state.c projects/nfsv42/sys/contrib/ipfilter/netinet/mlfk_ipl.c projects/nfsv42/sys/contrib/ncsw/Peripherals/FM/HC/hc.c projects/nfsv42/sys/contrib/ncsw/Peripherals/FM/Pcd/fm_cc.c projects/nfsv42/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c projects/nfsv42/sys/contrib/ncsw/inc/Peripherals/dpaa_ext.h projects/nfsv42/sys/contrib/ncsw/user/env/xx.c projects/nfsv42/sys/contrib/zlib/deflate.c projects/nfsv42/sys/contrib/zlib/infback.c projects/nfsv42/sys/contrib/zlib/inflate.c projects/nfsv42/sys/contrib/zlib/zconf.h projects/nfsv42/sys/contrib/zlib/zlib.h projects/nfsv42/sys/contrib/zlib/zutil.h projects/nfsv42/sys/contrib/zstd/CHANGELOG projects/nfsv42/sys/contrib/zstd/contrib/largeNbDicts/largeNbDicts.c projects/nfsv42/sys/contrib/zstd/contrib/seekable_format/examples/.gitignore projects/nfsv42/sys/contrib/zstd/contrib/seekable_format/examples/Makefile projects/nfsv42/sys/contrib/zstd/contrib/seekable_format/zstdseek_decompress.c projects/nfsv42/sys/contrib/zstd/doc/zstd_compression_format.md projects/nfsv42/sys/contrib/zstd/doc/zstd_manual.html projects/nfsv42/sys/contrib/zstd/examples/Makefile projects/nfsv42/sys/contrib/zstd/lib/Makefile projects/nfsv42/sys/contrib/zstd/lib/common/compiler.h projects/nfsv42/sys/contrib/zstd/lib/common/zstd_internal.h projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_compress.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_compress_internal.h projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_double_fast.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_fast.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_lazy.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_ldm.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstd_opt.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstdmt_compress.c projects/nfsv42/sys/contrib/zstd/lib/compress/zstdmt_compress.h projects/nfsv42/sys/contrib/zstd/lib/decompress/zstd_decompress.c projects/nfsv42/sys/contrib/zstd/lib/decompress/zstd_decompress_block.c projects/nfsv42/sys/contrib/zstd/lib/dictBuilder/cover.c projects/nfsv42/sys/contrib/zstd/lib/dictBuilder/cover.h projects/nfsv42/sys/contrib/zstd/lib/dictBuilder/fastcover.c projects/nfsv42/sys/contrib/zstd/lib/dictBuilder/zdict.c projects/nfsv42/sys/contrib/zstd/lib/dictBuilder/zdict.h projects/nfsv42/sys/contrib/zstd/lib/legacy/zstd_legacy.h projects/nfsv42/sys/contrib/zstd/lib/legacy/zstd_v01.c projects/nfsv42/sys/contrib/zstd/lib/legacy/zstd_v02.c projects/nfsv42/sys/contrib/zstd/lib/legacy/zstd_v03.c projects/nfsv42/sys/contrib/zstd/lib/legacy/zstd_v04.c projects/nfsv42/sys/contrib/zstd/lib/legacy/zstd_v05.c projects/nfsv42/sys/contrib/zstd/lib/legacy/zstd_v06.c projects/nfsv42/sys/contrib/zstd/lib/legacy/zstd_v07.c projects/nfsv42/sys/contrib/zstd/lib/zstd.h projects/nfsv42/sys/contrib/zstd/programs/.gitignore projects/nfsv42/sys/contrib/zstd/programs/README.md projects/nfsv42/sys/contrib/zstd/programs/benchfn.c projects/nfsv42/sys/contrib/zstd/programs/fileio.c projects/nfsv42/sys/contrib/zstd/programs/fileio.h projects/nfsv42/sys/contrib/zstd/programs/util.c projects/nfsv42/sys/contrib/zstd/programs/zstd.1 projects/nfsv42/sys/contrib/zstd/programs/zstd.1.md projects/nfsv42/sys/contrib/zstd/programs/zstdcli.c projects/nfsv42/sys/contrib/zstd/programs/zstdgrep projects/nfsv42/sys/contrib/zstd/programs/zstdgrep.1 projects/nfsv42/sys/contrib/zstd/programs/zstdless.1 projects/nfsv42/sys/contrib/zstd/tests/.gitignore projects/nfsv42/sys/contrib/zstd/tests/Makefile projects/nfsv42/sys/contrib/zstd/tests/decodecorpus.c projects/nfsv42/sys/contrib/zstd/tests/fullbench.c projects/nfsv42/sys/contrib/zstd/tests/fuzz/Makefile projects/nfsv42/sys/contrib/zstd/tests/fuzz/dictionary_decompress.c projects/nfsv42/sys/contrib/zstd/tests/fuzz/fuzz.py projects/nfsv42/sys/contrib/zstd/tests/fuzz/simple_decompress.c projects/nfsv42/sys/contrib/zstd/tests/fuzzer.c projects/nfsv42/sys/contrib/zstd/tests/paramgrill.c projects/nfsv42/sys/contrib/zstd/tests/playTests.sh projects/nfsv42/sys/contrib/zstd/tests/poolTests.c projects/nfsv42/sys/contrib/zstd/tests/regression/results.csv projects/nfsv42/sys/contrib/zstd/tests/zstreamtest.c projects/nfsv42/sys/contrib/zstd/zlibWrapper/.gitignore projects/nfsv42/sys/crypto/armv8/armv8_crypto.c projects/nfsv42/sys/crypto/blowfish/bf_skey.c projects/nfsv42/sys/crypto/blowfish/blowfish.h projects/nfsv42/sys/crypto/chacha20/chacha-sw.c projects/nfsv42/sys/crypto/des/des.h projects/nfsv42/sys/crypto/des/des_ecb.c projects/nfsv42/sys/crypto/des/des_setkey.c projects/nfsv42/sys/ddb/db_ps.c projects/nfsv42/sys/ddb/db_thread.c projects/nfsv42/sys/dev/acpi_support/acpi_wmi.c projects/nfsv42/sys/dev/acpica/acpi.c projects/nfsv42/sys/dev/acpica/acpi_pci_link.c projects/nfsv42/sys/dev/acpica/acpi_pcib_acpi.c projects/nfsv42/sys/dev/acpica/acpi_pxm.c projects/nfsv42/sys/dev/acpica/acpi_resource.c projects/nfsv42/sys/dev/acpica/acpivar.h projects/nfsv42/sys/dev/ahci/ahci.c projects/nfsv42/sys/dev/ahci/ahci.h projects/nfsv42/sys/dev/ahci/ahci_pci.c projects/nfsv42/sys/dev/amdsmn/amdsmn.c projects/nfsv42/sys/dev/amdtemp/amdtemp.c projects/nfsv42/sys/dev/bhnd/nvram/bhnd_nvram_data_tlv.c projects/nfsv42/sys/dev/bhnd/nvram/bhnd_nvram_store.c projects/nfsv42/sys/dev/bhnd/nvram/bhnd_nvram_value.c projects/nfsv42/sys/dev/bhnd/nvram/bhnd_nvram_value_prf.c projects/nfsv42/sys/dev/bxe/bxe.h projects/nfsv42/sys/dev/cxgbe/adapter.h projects/nfsv42/sys/dev/cxgbe/cxgbei/icl_cxgbei.c projects/nfsv42/sys/dev/cxgbe/iw_cxgbe/qp.c projects/nfsv42/sys/dev/cxgbe/t4_main.c projects/nfsv42/sys/dev/cxgbe/t4_sched.c projects/nfsv42/sys/dev/cxgbe/t4_sge.c projects/nfsv42/sys/dev/cxgbe/tom/t4_connect.c projects/nfsv42/sys/dev/cxgbe/tom/t4_cpl_io.c projects/nfsv42/sys/dev/cxgbe/tom/t4_ddp.c projects/nfsv42/sys/dev/cxgbe/tom/t4_listen.c projects/nfsv42/sys/dev/cxgbe/tom/t4_tls.c projects/nfsv42/sys/dev/cxgbe/tom/t4_tom.c projects/nfsv42/sys/dev/cxgbe/tom/t4_tom.h projects/nfsv42/sys/dev/dpaa/if_dtsec_rm.c projects/nfsv42/sys/dev/drm2/drmP.h projects/nfsv42/sys/dev/extres/clk/clk.h projects/nfsv42/sys/dev/extres/syscon/syscon.c projects/nfsv42/sys/dev/extres/syscon/syscon_if.m projects/nfsv42/sys/dev/fdc/fdc.c projects/nfsv42/sys/dev/fdt/simple_mfd.c projects/nfsv42/sys/dev/gpio/gpiopps.c projects/nfsv42/sys/dev/ichsmb/ichsmb.c projects/nfsv42/sys/dev/iicbus/twsi/twsi.c projects/nfsv42/sys/dev/md/md.c projects/nfsv42/sys/dev/mii/micphy.c projects/nfsv42/sys/dev/mlx5/mlx5_en/mlx5_en_main.c projects/nfsv42/sys/dev/mmc/host/dwmmc.c projects/nfsv42/sys/dev/mmc/host/dwmmc_altera.c projects/nfsv42/sys/dev/mmc/host/dwmmc_var.h projects/nfsv42/sys/dev/mxge/if_mxge.c projects/nfsv42/sys/dev/netmap/netmap.c projects/nfsv42/sys/dev/netmap/netmap_kern.h projects/nfsv42/sys/dev/netmap/netmap_kloop.c projects/nfsv42/sys/dev/netmap/netmap_mem2.c projects/nfsv42/sys/dev/ntb/ntb_hw/ntb_hw_amd.c projects/nfsv42/sys/dev/ntb/ntb_hw/ntb_hw_amd.h projects/nfsv42/sys/dev/ntb/ntb_hw/ntb_hw_intel.c projects/nfsv42/sys/dev/ntb/ntb_hw/ntb_hw_plx.c projects/nfsv42/sys/dev/ntb/ntb_transport.c projects/nfsv42/sys/dev/nvd/nvd.c projects/nfsv42/sys/dev/nvdimm/nvdimm.c projects/nfsv42/sys/dev/nvme/nvme.c projects/nfsv42/sys/dev/nvme/nvme.h projects/nfsv42/sys/dev/nvme/nvme_ctrlr.c projects/nfsv42/sys/dev/nvme/nvme_ns.c projects/nfsv42/sys/dev/nvme/nvme_ns_cmd.c projects/nfsv42/sys/dev/nvme/nvme_private.h projects/nfsv42/sys/dev/nvme/nvme_qpair.c projects/nfsv42/sys/dev/oce/oce_if.c projects/nfsv42/sys/dev/ofw/ofw_subr.c projects/nfsv42/sys/dev/ofw/ofwpci.c projects/nfsv42/sys/dev/pci/pci_host_generic.c projects/nfsv42/sys/dev/pci/pci_pci.c projects/nfsv42/sys/dev/pci/vga_pci.c projects/nfsv42/sys/dev/qlxgbe/ql_isr.c projects/nfsv42/sys/dev/ral/rt2860.c projects/nfsv42/sys/dev/ral/rt2860var.h projects/nfsv42/sys/dev/random/darn.c projects/nfsv42/sys/dev/random/fortuna.c projects/nfsv42/sys/dev/random/ivy.c projects/nfsv42/sys/dev/random/nehemiah.c projects/nfsv42/sys/dev/random/random_harvestq.c projects/nfsv42/sys/dev/random/randomdev.c projects/nfsv42/sys/dev/rtwn/pci/rtwn_pci_attach.h projects/nfsv42/sys/dev/rtwn/usb/rtwn_usb_attach.h projects/nfsv42/sys/dev/sdhci/sdhci.c projects/nfsv42/sys/dev/sfxge/common/ef10_impl.h projects/nfsv42/sys/dev/sfxge/common/ef10_nvram.c projects/nfsv42/sys/dev/sfxge/common/ef10_rx.c projects/nfsv42/sys/dev/sfxge/common/efsys.h projects/nfsv42/sys/dev/sfxge/common/efx.h projects/nfsv42/sys/dev/sfxge/common/efx_mcdi.h projects/nfsv42/sys/dev/sfxge/common/efx_tx.c projects/nfsv42/sys/dev/sfxge/sfxge_port.c projects/nfsv42/sys/dev/sfxge/sfxge_rx.c projects/nfsv42/sys/dev/sound/midi/midi.c projects/nfsv42/sys/dev/sound/midi/sequencer.c projects/nfsv42/sys/dev/sound/pci/hda/hdaa_patches.c projects/nfsv42/sys/dev/sound/pci/hda/hdac.h projects/nfsv42/sys/dev/sound/pcm/channel.h projects/nfsv42/sys/dev/superio/superio.c projects/nfsv42/sys/dev/superio/superio.h projects/nfsv42/sys/dev/usb/controller/xhci_pci.c projects/nfsv42/sys/dev/usb/net/if_aue.c projects/nfsv42/sys/dev/usb/net/if_axe.c projects/nfsv42/sys/dev/usb/net/if_axge.c projects/nfsv42/sys/dev/usb/net/if_mos.c projects/nfsv42/sys/dev/usb/net/if_muge.c projects/nfsv42/sys/dev/usb/net/if_rue.c projects/nfsv42/sys/dev/usb/net/if_smsc.c projects/nfsv42/sys/dev/usb/net/if_udav.c projects/nfsv42/sys/dev/usb/net/if_ure.c projects/nfsv42/sys/dev/usb/net/if_urndis.c projects/nfsv42/sys/dev/usb/net/usb_ethernet.c projects/nfsv42/sys/dev/usb/net/usb_ethernet.h projects/nfsv42/sys/dev/usb/template/usb_template.c projects/nfsv42/sys/dev/usb/template/usb_template.h projects/nfsv42/sys/dev/usb/usb.h projects/nfsv42/sys/dev/usb/usb_hid.c projects/nfsv42/sys/dev/usb/usb_hub_acpi.c projects/nfsv42/sys/dev/usb/usb_ioctl.h projects/nfsv42/sys/dev/usb/usbdevs projects/nfsv42/sys/dev/vmware/vmci/vmci.c projects/nfsv42/sys/dev/vnic/nicvf_main.c projects/nfsv42/sys/dev/vnic/thunder_bgx.c projects/nfsv42/sys/dev/xdma/xdma_sg.c projects/nfsv42/sys/dts/arm/overlays/sun8i-h3-sid.dtso projects/nfsv42/sys/fs/cd9660/cd9660_node.c projects/nfsv42/sys/fs/cd9660/cd9660_vfsops.c projects/nfsv42/sys/fs/cd9660/cd9660_vnops.c projects/nfsv42/sys/fs/devfs/devfs_vnops.c projects/nfsv42/sys/fs/ext2fs/ext2_alloc.c projects/nfsv42/sys/fs/ext2fs/ext2_balloc.c projects/nfsv42/sys/fs/ext2fs/ext2_extattr.c projects/nfsv42/sys/fs/ext2fs/ext2_extents.c projects/nfsv42/sys/fs/ext2fs/ext2_inode.c projects/nfsv42/sys/fs/ext2fs/ext2_vfsops.c projects/nfsv42/sys/fs/ext2fs/ext2_vnops.c projects/nfsv42/sys/fs/fuse/fuse.h projects/nfsv42/sys/fs/fuse/fuse_device.c projects/nfsv42/sys/fs/fuse/fuse_file.c projects/nfsv42/sys/fs/fuse/fuse_file.h projects/nfsv42/sys/fs/fuse/fuse_internal.c projects/nfsv42/sys/fs/fuse/fuse_internal.h projects/nfsv42/sys/fs/fuse/fuse_io.c projects/nfsv42/sys/fs/fuse/fuse_io.h projects/nfsv42/sys/fs/fuse/fuse_ipc.c projects/nfsv42/sys/fs/fuse/fuse_ipc.h projects/nfsv42/sys/fs/fuse/fuse_kernel.h projects/nfsv42/sys/fs/fuse/fuse_main.c projects/nfsv42/sys/fs/fuse/fuse_node.c projects/nfsv42/sys/fs/fuse/fuse_node.h projects/nfsv42/sys/fs/fuse/fuse_vfsops.c projects/nfsv42/sys/fs/fuse/fuse_vnops.c projects/nfsv42/sys/fs/msdosfs/denode.h projects/nfsv42/sys/fs/msdosfs/fat.h projects/nfsv42/sys/fs/msdosfs/msdosfs_denode.c projects/nfsv42/sys/fs/msdosfs/msdosfs_fat.c projects/nfsv42/sys/fs/msdosfs/msdosfs_lookup.c projects/nfsv42/sys/fs/msdosfs/msdosfs_vfsops.c projects/nfsv42/sys/fs/msdosfs/msdosfs_vnops.c projects/nfsv42/sys/fs/msdosfs/msdosfsmount.h projects/nfsv42/sys/fs/nfs/nfs_var.h projects/nfsv42/sys/fs/nfsclient/nfs_clnode.c projects/nfsv42/sys/fs/nfsclient/nfs_clvnops.c projects/nfsv42/sys/fs/nfsserver/nfs_nfsdport.c projects/nfsv42/sys/fs/nfsserver/nfs_nfsdstate.c projects/nfsv42/sys/fs/nullfs/null_subr.c projects/nfsv42/sys/fs/nullfs/null_vnops.c projects/nfsv42/sys/fs/pseudofs/pseudofs_vnops.c projects/nfsv42/sys/fs/smbfs/smbfs_node.c projects/nfsv42/sys/fs/tmpfs/tmpfs_vfsops.c projects/nfsv42/sys/fs/tmpfs/tmpfs_vnops.c projects/nfsv42/sys/fs/udf/udf_vnops.c projects/nfsv42/sys/fs/unionfs/union_subr.c projects/nfsv42/sys/fs/unionfs/union_vnops.c projects/nfsv42/sys/gdb/gdb_cons.c projects/nfsv42/sys/gdb/gdb_int.h projects/nfsv42/sys/gdb/gdb_main.c projects/nfsv42/sys/gdb/gdb_packet.c projects/nfsv42/sys/geom/cache/g_cache.c projects/nfsv42/sys/geom/cache/g_cache.h projects/nfsv42/sys/geom/concat/g_concat.c projects/nfsv42/sys/geom/concat/g_concat.h projects/nfsv42/sys/geom/eli/g_eli.c projects/nfsv42/sys/geom/eli/g_eli.h projects/nfsv42/sys/geom/eli/g_eli_ctl.c projects/nfsv42/sys/geom/eli/g_eli_integrity.c projects/nfsv42/sys/geom/eli/g_eli_privacy.c projects/nfsv42/sys/geom/gate/g_gate.c projects/nfsv42/sys/geom/gate/g_gate.h projects/nfsv42/sys/geom/geom.h projects/nfsv42/sys/geom/geom_io.c projects/nfsv42/sys/geom/geom_subr.c projects/nfsv42/sys/geom/geom_vfs.c projects/nfsv42/sys/geom/journal/g_journal.c projects/nfsv42/sys/geom/journal/g_journal.h projects/nfsv42/sys/geom/journal/g_journal_ufs.c projects/nfsv42/sys/geom/label/g_label.c projects/nfsv42/sys/geom/label/g_label.h projects/nfsv42/sys/geom/label/g_label_ext2fs.c projects/nfsv42/sys/geom/label/g_label_iso9660.c projects/nfsv42/sys/geom/label/g_label_msdosfs.c projects/nfsv42/sys/geom/label/g_label_reiserfs.c projects/nfsv42/sys/geom/label/g_label_ufs.c projects/nfsv42/sys/geom/linux_lvm/g_linux_lvm.c projects/nfsv42/sys/geom/linux_lvm/g_linux_lvm.h projects/nfsv42/sys/geom/mirror/g_mirror.c projects/nfsv42/sys/geom/mirror/g_mirror.h projects/nfsv42/sys/geom/mirror/g_mirror_ctl.c projects/nfsv42/sys/geom/mountver/g_mountver.c projects/nfsv42/sys/geom/mountver/g_mountver.h projects/nfsv42/sys/geom/nop/g_nop.c projects/nfsv42/sys/geom/nop/g_nop.h projects/nfsv42/sys/geom/part/g_part.c projects/nfsv42/sys/geom/part/g_part_gpt.c projects/nfsv42/sys/geom/raid/g_raid.c projects/nfsv42/sys/geom/raid/g_raid.h projects/nfsv42/sys/geom/raid/md_ddf.c projects/nfsv42/sys/geom/raid/md_intel.c projects/nfsv42/sys/geom/raid/md_jmicron.c projects/nfsv42/sys/geom/raid/md_nvidia.c projects/nfsv42/sys/geom/raid/md_promise.c projects/nfsv42/sys/geom/raid/md_sii.c projects/nfsv42/sys/geom/raid/tr_concat.c projects/nfsv42/sys/geom/raid/tr_raid0.c projects/nfsv42/sys/geom/raid/tr_raid1.c projects/nfsv42/sys/geom/raid/tr_raid1e.c projects/nfsv42/sys/geom/raid3/g_raid3.c projects/nfsv42/sys/geom/raid3/g_raid3.h projects/nfsv42/sys/geom/sched/g_sched.c projects/nfsv42/sys/geom/sched/g_sched.h projects/nfsv42/sys/geom/shsec/g_shsec.c projects/nfsv42/sys/geom/shsec/g_shsec.h projects/nfsv42/sys/geom/stripe/g_stripe.c projects/nfsv42/sys/geom/stripe/g_stripe.h projects/nfsv42/sys/geom/uzip/g_uzip.c projects/nfsv42/sys/geom/uzip/g_uzip_cloop.h projects/nfsv42/sys/geom/uzip/g_uzip_zlib.c projects/nfsv42/sys/geom/vinum/geom_vinum.c projects/nfsv42/sys/geom/vinum/geom_vinum.h projects/nfsv42/sys/geom/vinum/geom_vinum_create.c projects/nfsv42/sys/geom/vinum/geom_vinum_drive.c projects/nfsv42/sys/geom/vinum/geom_vinum_events.c projects/nfsv42/sys/geom/vinum/geom_vinum_init.c projects/nfsv42/sys/geom/vinum/geom_vinum_move.c projects/nfsv42/sys/geom/vinum/geom_vinum_plex.c projects/nfsv42/sys/geom/vinum/geom_vinum_raid5.c projects/nfsv42/sys/geom/vinum/geom_vinum_rename.c projects/nfsv42/sys/geom/vinum/geom_vinum_rm.c projects/nfsv42/sys/geom/vinum/geom_vinum_state.c projects/nfsv42/sys/geom/vinum/geom_vinum_subr.c projects/nfsv42/sys/geom/virstor/g_virstor.c projects/nfsv42/sys/geom/virstor/g_virstor.h projects/nfsv42/sys/gnu/dts/arm/am33xx-l4.dtsi projects/nfsv42/sys/i386/conf/Makefile projects/nfsv42/sys/i386/conf/NOTES projects/nfsv42/sys/i386/i386/machdep.c projects/nfsv42/sys/i386/i386/minidump_machdep_base.c projects/nfsv42/sys/i386/i386/mp_machdep.c projects/nfsv42/sys/i386/i386/pmap.c projects/nfsv42/sys/i386/i386/pmap_base.c projects/nfsv42/sys/i386/i386/vm_machdep.c projects/nfsv42/sys/i386/include/atomic.h projects/nfsv42/sys/i386/include/counter.h projects/nfsv42/sys/i386/include/pcpu.h projects/nfsv42/sys/i386/include/pmap.h projects/nfsv42/sys/i386/include/pmap_base.h projects/nfsv42/sys/i386/pci/pci_pir.c projects/nfsv42/sys/kern/bus_if.m projects/nfsv42/sys/kern/capabilities.conf projects/nfsv42/sys/kern/imgact_elf.c projects/nfsv42/sys/kern/init_main.c projects/nfsv42/sys/kern/init_sysent.c projects/nfsv42/sys/kern/kern_cpuset.c projects/nfsv42/sys/kern/kern_ctf.c projects/nfsv42/sys/kern/kern_dump.c projects/nfsv42/sys/kern/kern_event.c projects/nfsv42/sys/kern/kern_exec.c projects/nfsv42/sys/kern/kern_exit.c projects/nfsv42/sys/kern/kern_fork.c projects/nfsv42/sys/kern/kern_lock.c projects/nfsv42/sys/kern/kern_lockstat.c projects/nfsv42/sys/kern/kern_mbuf.c projects/nfsv42/sys/kern/kern_mutex.c projects/nfsv42/sys/kern/kern_proc.c projects/nfsv42/sys/kern/kern_procctl.c projects/nfsv42/sys/kern/kern_prot.c projects/nfsv42/sys/kern/kern_racct.c projects/nfsv42/sys/kern/kern_sendfile.c projects/nfsv42/sys/kern/kern_shutdown.c projects/nfsv42/sys/kern/kern_sig.c projects/nfsv42/sys/kern/kern_synch.c projects/nfsv42/sys/kern/kern_sysctl.c projects/nfsv42/sys/kern/kern_umtx.c projects/nfsv42/sys/kern/link_elf.c projects/nfsv42/sys/kern/link_elf_obj.c projects/nfsv42/sys/kern/makesyscalls.sh projects/nfsv42/sys/kern/sched_ule.c projects/nfsv42/sys/kern/subr_bus.c projects/nfsv42/sys/kern/subr_compressor.c projects/nfsv42/sys/kern/subr_pcpu.c projects/nfsv42/sys/kern/subr_sbuf.c projects/nfsv42/sys/kern/subr_scanf.c projects/nfsv42/sys/kern/subr_trap.c projects/nfsv42/sys/kern/subr_vmem.c projects/nfsv42/sys/kern/subr_witness.c projects/nfsv42/sys/kern/sys_pipe.c projects/nfsv42/sys/kern/sys_procdesc.c projects/nfsv42/sys/kern/sys_process.c projects/nfsv42/sys/kern/syscalls.c projects/nfsv42/sys/kern/syscalls.master projects/nfsv42/sys/kern/systrace_args.c projects/nfsv42/sys/kern/uipc_mbuf.c projects/nfsv42/sys/kern/uipc_mbuf2.c projects/nfsv42/sys/kern/uipc_mqueue.c projects/nfsv42/sys/kern/uipc_shm.c projects/nfsv42/sys/kern/uipc_sockbuf.c projects/nfsv42/sys/kern/uipc_socket.c projects/nfsv42/sys/kern/uipc_syscalls.c projects/nfsv42/sys/kern/vfs_bio.c projects/nfsv42/sys/kern/vfs_cache.c projects/nfsv42/sys/kern/vfs_cluster.c projects/nfsv42/sys/kern/vfs_default.c projects/nfsv42/sys/kern/vfs_hash.c projects/nfsv42/sys/kern/vfs_mount.c projects/nfsv42/sys/kern/vfs_subr.c projects/nfsv42/sys/kern/vfs_syscalls.c projects/nfsv42/sys/kern/vfs_vnops.c projects/nfsv42/sys/kern/vnode_if.src projects/nfsv42/sys/kgssapi/krb5/kcrypto_des.c projects/nfsv42/sys/kgssapi/krb5/kcrypto_des3.c projects/nfsv42/sys/mips/atheros/ar531x/ar5315_machdep.c projects/nfsv42/sys/mips/atheros/ar71xx_machdep.c projects/nfsv42/sys/mips/beri/beri_machdep.c projects/nfsv42/sys/mips/broadcom/bcm_machdep.c projects/nfsv42/sys/mips/broadcom/bhnd_nexus.c projects/nfsv42/sys/mips/cavium/octeon_machdep.c projects/nfsv42/sys/mips/include/pmap.h projects/nfsv42/sys/mips/include/proc.h projects/nfsv42/sys/mips/include/profile.h projects/nfsv42/sys/mips/include/regnum.h projects/nfsv42/sys/mips/ingenic/jz4780_machdep.c projects/nfsv42/sys/mips/malta/malta_machdep.c projects/nfsv42/sys/mips/mediatek/mtk_machdep.c projects/nfsv42/sys/mips/mips/busdma_machdep.c projects/nfsv42/sys/mips/mips/machdep.c projects/nfsv42/sys/mips/mips/pmap.c projects/nfsv42/sys/mips/nlm/xlp_machdep.c projects/nfsv42/sys/modules/Makefile projects/nfsv42/sys/modules/dtb/allwinner/Makefile projects/nfsv42/sys/modules/dtb/mv/Makefile projects/nfsv42/sys/modules/fusefs/Makefile projects/nfsv42/sys/modules/geom/geom_uzip/Makefile projects/nfsv42/sys/modules/i2c/Makefile projects/nfsv42/sys/modules/linux/Makefile projects/nfsv42/sys/modules/linux64/Makefile projects/nfsv42/sys/modules/netgraph/bluetooth/ubt/Makefile projects/nfsv42/sys/modules/ntb/Makefile projects/nfsv42/sys/modules/nvme/Makefile projects/nfsv42/sys/modules/usb/Makefile projects/nfsv42/sys/modules/usb/template/Makefile projects/nfsv42/sys/modules/zfs/Makefile projects/nfsv42/sys/modules/zlib/Makefile projects/nfsv42/sys/net/ieee8023ad_lacp.c projects/nfsv42/sys/net/ieee8023ad_lacp.h projects/nfsv42/sys/net/if.h projects/nfsv42/sys/net/if_dead.c projects/nfsv42/sys/net/if_lagg.c projects/nfsv42/sys/net/if_spppsubr.c projects/nfsv42/sys/net/if_tuntap.c projects/nfsv42/sys/net/if_var.h projects/nfsv42/sys/net/if_vlan.c projects/nfsv42/sys/net/iflib.c projects/nfsv42/sys/net/netmap.h projects/nfsv42/sys/net/netmap_user.h projects/nfsv42/sys/net/route.c projects/nfsv42/sys/net/sff8472.h projects/nfsv42/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c projects/nfsv42/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h projects/nfsv42/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c projects/nfsv42/sys/netgraph/bluetooth/socket/ng_btsocket_l2cap_raw.c projects/nfsv42/sys/netgraph/ng_deflate.c projects/nfsv42/sys/netinet/cc/cc_dctcp.c projects/nfsv42/sys/netinet/in.h projects/nfsv42/sys/netinet/in_pcb.c projects/nfsv42/sys/netinet/in_pcb.h projects/nfsv42/sys/netinet/ip_output.c projects/nfsv42/sys/netinet/netdump/netdump_client.c projects/nfsv42/sys/netinet/sctp_asconf.c projects/nfsv42/sys/netinet/sctp_indata.c projects/nfsv42/sys/netinet/sctp_indata.h projects/nfsv42/sys/netinet/sctp_input.c projects/nfsv42/sys/netinet/sctp_os_bsd.h projects/nfsv42/sys/netinet/sctp_output.c projects/nfsv42/sys/netinet/sctp_output.h projects/nfsv42/sys/netinet/sctp_pcb.c projects/nfsv42/sys/netinet/sctp_pcb.h projects/nfsv42/sys/netinet/sctp_usrreq.c projects/nfsv42/sys/netinet/sctputil.c projects/nfsv42/sys/netinet/tcp.h projects/nfsv42/sys/netinet/tcp_input.c projects/nfsv42/sys/netinet/tcp_lro.c projects/nfsv42/sys/netinet/tcp_lro.h projects/nfsv42/sys/netinet/tcp_output.c projects/nfsv42/sys/netinet/tcp_sack.c projects/nfsv42/sys/netinet/tcp_stacks/rack.c projects/nfsv42/sys/netinet/tcp_stacks/rack_bbr_common.c projects/nfsv42/sys/netinet/tcp_subr.c projects/nfsv42/sys/netinet/tcp_usrreq.c projects/nfsv42/sys/netinet/tcp_var.h projects/nfsv42/sys/netinet6/frag6.c projects/nfsv42/sys/netinet6/icmp6.c projects/nfsv42/sys/netinet6/in6_mcast.c projects/nfsv42/sys/netinet6/in6_pcb.c projects/nfsv42/sys/netinet6/in6_pcb.h projects/nfsv42/sys/netinet6/in6_proto.c projects/nfsv42/sys/netinet6/in6_src.c projects/nfsv42/sys/netinet6/ip6_input.c projects/nfsv42/sys/netinet6/ip6_output.c projects/nfsv42/sys/netinet6/ip6_var.h projects/nfsv42/sys/netinet6/mld6.c projects/nfsv42/sys/netinet6/raw_ip6.c projects/nfsv42/sys/netinet6/sctp6_usrreq.c projects/nfsv42/sys/netipsec/ipsec.c projects/nfsv42/sys/netipsec/key.c projects/nfsv42/sys/netpfil/ipfw/ip_fw2.c projects/nfsv42/sys/netpfil/ipfw/ip_fw_eaction.c projects/nfsv42/sys/netpfil/ipfw/ip_fw_nat.c projects/nfsv42/sys/netpfil/ipfw/ip_fw_private.h projects/nfsv42/sys/netpfil/ipfw/ip_fw_sockopt.c projects/nfsv42/sys/netpfil/pf/pf.c projects/nfsv42/sys/netpfil/pf/pf_ioctl.c projects/nfsv42/sys/netpfil/pf/pf_norm.c projects/nfsv42/sys/netsmb/smb_crypt.c projects/nfsv42/sys/ofed/drivers/infiniband/core/ib_cma.c projects/nfsv42/sys/ofed/drivers/infiniband/ulp/sdp/sdp.h projects/nfsv42/sys/ofed/drivers/infiniband/ulp/sdp/sdp_cma.c projects/nfsv42/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c projects/nfsv42/sys/ofed/drivers/infiniband/ulp/sdp/sdp_rx.c projects/nfsv42/sys/ofed/include/rdma/ib_mad.h projects/nfsv42/sys/opencrypto/cast.c projects/nfsv42/sys/opencrypto/cast.h projects/nfsv42/sys/opencrypto/cryptodeflate.c projects/nfsv42/sys/opencrypto/cryptodev.c projects/nfsv42/sys/opencrypto/deflate.h projects/nfsv42/sys/opencrypto/skipjack.c projects/nfsv42/sys/opencrypto/skipjack.h projects/nfsv42/sys/opencrypto/xform_aes_icm.c projects/nfsv42/sys/opencrypto/xform_aes_xts.c projects/nfsv42/sys/opencrypto/xform_blf.c projects/nfsv42/sys/opencrypto/xform_cast5.c projects/nfsv42/sys/opencrypto/xform_cml.c projects/nfsv42/sys/opencrypto/xform_des1.c projects/nfsv42/sys/opencrypto/xform_des3.c projects/nfsv42/sys/opencrypto/xform_enc.h projects/nfsv42/sys/opencrypto/xform_null.c projects/nfsv42/sys/opencrypto/xform_rijndael.c projects/nfsv42/sys/opencrypto/xform_skipjack.c projects/nfsv42/sys/powerpc/aim/mmu_oea.c projects/nfsv42/sys/powerpc/aim/mmu_oea64.c projects/nfsv42/sys/powerpc/aim/moea64_native.c projects/nfsv42/sys/powerpc/booke/pmap.c projects/nfsv42/sys/powerpc/booke/trap_subr.S projects/nfsv42/sys/powerpc/conf/MPC85XX projects/nfsv42/sys/powerpc/conf/MPC85XXSPE projects/nfsv42/sys/powerpc/conf/NOTES projects/nfsv42/sys/powerpc/conf/QORIQ64 projects/nfsv42/sys/powerpc/conf/dpaa/DPAA projects/nfsv42/sys/powerpc/include/counter.h projects/nfsv42/sys/powerpc/include/param.h projects/nfsv42/sys/powerpc/include/pmap.h projects/nfsv42/sys/powerpc/include/proc.h projects/nfsv42/sys/powerpc/include/vmparam.h projects/nfsv42/sys/powerpc/ofw/ofwcall32.S projects/nfsv42/sys/powerpc/powernv/opal.h projects/nfsv42/sys/powerpc/powernv/opal_pci.c projects/nfsv42/sys/powerpc/powerpc/busdma_machdep.c projects/nfsv42/sys/powerpc/powerpc/machdep.c projects/nfsv42/sys/powerpc/powerpc/mp_machdep.c projects/nfsv42/sys/powerpc/powerpc/pmap_dispatch.c projects/nfsv42/sys/powerpc/powerpc/swtch32.S projects/nfsv42/sys/powerpc/powerpc/trap.c projects/nfsv42/sys/riscv/include/counter.h projects/nfsv42/sys/riscv/include/pmap.h projects/nfsv42/sys/riscv/riscv/copyinout.S projects/nfsv42/sys/riscv/riscv/intr_machdep.c projects/nfsv42/sys/riscv/riscv/locore.S projects/nfsv42/sys/riscv/riscv/machdep.c projects/nfsv42/sys/riscv/riscv/mp_machdep.c projects/nfsv42/sys/rpc/svc_vc.c projects/nfsv42/sys/security/mac/mac_process.c projects/nfsv42/sys/security/mac_veriexec_parser/mac_veriexec_parser.c projects/nfsv42/sys/sparc64/conf/NOTES projects/nfsv42/sys/sparc64/include/pmap.h projects/nfsv42/sys/sparc64/sparc64/pmap.c projects/nfsv42/sys/sys/ata.h projects/nfsv42/sys/sys/buf.h projects/nfsv42/sys/sys/bus.h projects/nfsv42/sys/sys/diskmbr.h projects/nfsv42/sys/sys/imgact.h projects/nfsv42/sys/sys/imgact_elf.h projects/nfsv42/sys/sys/libkern.h projects/nfsv42/sys/sys/lockmgr.h projects/nfsv42/sys/sys/lockstat.h projects/nfsv42/sys/sys/mbuf.h projects/nfsv42/sys/sys/mdioctl.h projects/nfsv42/sys/sys/mount.h projects/nfsv42/sys/sys/param.h projects/nfsv42/sys/sys/pcpu.h projects/nfsv42/sys/sys/proc.h projects/nfsv42/sys/sys/procctl.h projects/nfsv42/sys/sys/refcount.h projects/nfsv42/sys/sys/sbuf.h projects/nfsv42/sys/sys/seqc.h projects/nfsv42/sys/sys/sockbuf.h projects/nfsv42/sys/sys/syscall.h projects/nfsv42/sys/sys/syscall.mk projects/nfsv42/sys/sys/sysctl.h projects/nfsv42/sys/sys/sysent.h projects/nfsv42/sys/sys/sysproto.h projects/nfsv42/sys/sys/vnode.h projects/nfsv42/sys/teken/teken.c projects/nfsv42/sys/ufs/ffs/ffs_alloc.c projects/nfsv42/sys/ufs/ffs/ffs_balloc.c projects/nfsv42/sys/ufs/ffs/ffs_extern.h projects/nfsv42/sys/ufs/ffs/ffs_inode.c projects/nfsv42/sys/ufs/ffs/ffs_snapshot.c projects/nfsv42/sys/ufs/ffs/ffs_softdep.c projects/nfsv42/sys/ufs/ffs/ffs_subr.c projects/nfsv42/sys/ufs/ffs/ffs_vfsops.c projects/nfsv42/sys/ufs/ffs/fs.h projects/nfsv42/sys/ufs/ufs/ufs_extern.h projects/nfsv42/sys/ufs/ufs/ufs_inode.c projects/nfsv42/sys/ufs/ufs/ufs_quota.c projects/nfsv42/sys/ufs/ufs/ufs_vnops.c projects/nfsv42/sys/vm/swap_pager.c projects/nfsv42/sys/vm/uma.h projects/nfsv42/sys/vm/uma_core.c projects/nfsv42/sys/vm/uma_int.h projects/nfsv42/sys/vm/vm_fault.c projects/nfsv42/sys/vm/vm_glue.c projects/nfsv42/sys/vm/vm_kern.c projects/nfsv42/sys/vm/vm_map.c projects/nfsv42/sys/vm/vm_map.h projects/nfsv42/sys/vm/vm_mmap.c projects/nfsv42/sys/vm/vm_object.c projects/nfsv42/sys/vm/vm_object.h projects/nfsv42/sys/vm/vm_page.c projects/nfsv42/sys/vm/vm_page.h projects/nfsv42/sys/vm/vm_pageout.c projects/nfsv42/sys/vm/vm_pageout.h projects/nfsv42/sys/vm/vm_pagequeue.h projects/nfsv42/sys/vm/vm_pager.h projects/nfsv42/sys/vm/vm_param.h projects/nfsv42/sys/vm/vm_phys.c projects/nfsv42/sys/vm/vm_phys.h projects/nfsv42/sys/vm/vm_reserv.c projects/nfsv42/sys/vm/vm_reserv.h projects/nfsv42/sys/vm/vm_swapout.c projects/nfsv42/sys/vm/vnode_pager.c projects/nfsv42/sys/vm/vnode_pager.h projects/nfsv42/sys/x86/x86/io_apic.c projects/nfsv42/sys/x86/x86/legacy.c projects/nfsv42/sys/x86/x86/local_apic.c projects/nfsv42/sys/x86/x86/nexus.c Directory Properties: projects/nfsv42/sys/ (props changed) projects/nfsv42/sys/cddl/contrib/opensolaris/ (props changed) projects/nfsv42/sys/contrib/dev/acpica/ (props changed) projects/nfsv42/sys/contrib/ipfilter/ (props changed) projects/nfsv42/sys/contrib/zlib/ (props changed) projects/nfsv42/sys/contrib/zstd/ (props changed) projects/nfsv42/sys/gnu/dts/arm/ (props changed) Modified: projects/nfsv42/sys/amd64/amd64/cpu_switch.S ============================================================================== --- projects/nfsv42/sys/amd64/amd64/cpu_switch.S Sun Sep 8 22:52:47 2019 (r352050) +++ projects/nfsv42/sys/amd64/amd64/cpu_switch.S Mon Sep 9 00:46:22 2019 (r352051) @@ -45,18 +45,6 @@ .text -#ifdef SMP -#define LK lock ; -#else -#define LK -#endif - -#if defined(SCHED_ULE) && defined(SMP) -#define SETLK xchgq -#else -#define SETLK movq -#endif - /* * cpu_throw() * @@ -150,17 +138,15 @@ ctx_switch_xsave: movq %rdx,%r15 movq %rsi,%rdi callq pmap_activate_sw - SETLK %r15,TD_LOCK(%r13) /* Release the old thread */ + movq %r15,TD_LOCK(%r13) /* Release the old thread */ sw1: movq TD_PCB(%r12),%r8 #if defined(SCHED_ULE) && defined(SMP) - /* Wait for the new thread to become unblocked */ movq $blocked_lock, %rdx -1: movq TD_LOCK(%r12),%rcx cmpq %rcx, %rdx - pause - je 1b + je sw1wait +sw1cont: #endif /* * At this point, we've switched address spaces and are ready @@ -496,3 +482,14 @@ ENTRY(resumectx) xorl %eax,%eax ret END(resumectx) + +/* Wait for the new thread to become unblocked */ +#if defined(SCHED_ULE) && defined(SMP) +sw1wait: +1: + pause + movq TD_LOCK(%r12),%rcx + cmpq %rcx, %rdx + je 1b + jmp sw1cont +#endif Modified: projects/nfsv42/sys/amd64/amd64/elf_machdep.c ============================================================================== --- projects/nfsv42/sys/amd64/amd64/elf_machdep.c Sun Sep 8 22:52:47 2019 (r352050) +++ projects/nfsv42/sys/amd64/amd64/elf_machdep.c Mon Sep 9 00:46:22 2019 (r352051) @@ -82,6 +82,7 @@ struct sysentvec elf64_freebsd_sysvec = { .sv_schedtail = NULL, .sv_thread_detach = NULL, .sv_trap = NULL, + .sv_stackgap = elf64_stackgap, }; INIT_SYSENTVEC(elf64_sysvec, &elf64_freebsd_sysvec); Modified: projects/nfsv42/sys/amd64/amd64/exception.S ============================================================================== --- projects/nfsv42/sys/amd64/amd64/exception.S Sun Sep 8 22:52:47 2019 (r352050) +++ projects/nfsv42/sys/amd64/amd64/exception.S Mon Sep 9 00:46:22 2019 (r352051) @@ -105,14 +105,32 @@ MCOUNT_LABEL(btrap) /* Traps that we leave interrupts disabled for. */ .macro TRAP_NOEN l, trapno - PTI_ENTRY \l,X\l + PTI_ENTRY \l,\l\()_pti_k,\l\()_pti_u +\l\()_pti_k: + subq $TF_RIP,%rsp + movl $\trapno,TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + movq $0,TF_ERR(%rsp) + jmp alltraps_noen_k +\l\()_pti_u: + subq $TF_RIP,%rsp + movl $\trapno,TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + movq $0,TF_ERR(%rsp) + jmp alltraps_noen_u + .globl X\l .type X\l,@function -X\l: subq $TF_RIP,%rsp - movl $\trapno,TF_TRAPNO(%rsp) - movq $0,TF_ADDR(%rsp) - movq $0,TF_ERR(%rsp) - jmp alltraps_noen +X\l: + subq $TF_RIP,%rsp + movl $\trapno,TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + movq $0,TF_ERR(%rsp) + testb $SEL_RPL_MASK,TF_CS(%rsp) + jz alltraps_noen_k + swapgs + lfence + jmp alltraps_noen_u .endm TRAP_NOEN bpt, T_BPTFLT @@ -122,15 +140,32 @@ X\l: subq $TF_RIP,%rsp /* Regular traps; The cpu does not supply tf_err for these. */ .macro TRAP l, trapno - PTI_ENTRY \l,X\l + PTI_ENTRY \l,\l\()_pti_k,\l\()_pti_u +\l\()_pti_k: + subq $TF_RIP,%rsp + movl $\trapno,TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + movq $0,TF_ERR(%rsp) + jmp alltraps_k +\l\()_pti_u: + subq $TF_RIP,%rsp + movl $\trapno,TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + movq $0,TF_ERR(%rsp) + jmp alltraps_u + .globl X\l .type X\l,@function X\l: - subq $TF_RIP,%rsp - movl $\trapno,TF_TRAPNO(%rsp) - movq $0,TF_ADDR(%rsp) - movq $0,TF_ERR(%rsp) - jmp alltraps + subq $TF_RIP,%rsp + movl $\trapno,TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + movq $0,TF_ERR(%rsp) + testb $SEL_RPL_MASK,TF_CS(%rsp) + jz alltraps_k + swapgs + lfence + jmp alltraps_u .endm TRAP div, T_DIVIDE @@ -145,42 +180,64 @@ X\l: /* This group of traps have tf_err already pushed by the cpu. */ .macro TRAP_ERR l, trapno - PTI_ENTRY \l,X\l,has_err=1 + PTI_ENTRY \l,\l\()_pti_k,\l\()_pti_u,has_err=1 +\l\()_pti_k: + subq $TF_ERR,%rsp + movl $\trapno,TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + jmp alltraps_k +\l\()_pti_u: + subq $TF_ERR,%rsp + movl $\trapno,TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + jmp alltraps_u .globl X\l .type X\l,@function X\l: - subq $TF_ERR,%rsp - movl $\trapno,TF_TRAPNO(%rsp) - movq $0,TF_ADDR(%rsp) - jmp alltraps + subq $TF_ERR,%rsp + movl $\trapno,TF_TRAPNO(%rsp) + movq $0,TF_ADDR(%rsp) + testb $SEL_RPL_MASK,TF_CS(%rsp) + jz alltraps_k + swapgs + lfence + jmp alltraps_u .endm TRAP_ERR tss, T_TSSFLT TRAP_ERR align, T_ALIGNFLT /* - * alltraps entry point. Use swapgs if this is the first time in the - * kernel from userland. Reenable interrupts if they were enabled - * before the trap. This approximates SDT_SYS386TGT on the i386 port. + * alltraps_u/k entry points. + * SWAPGS must be already performed by prologue, + * if this is the first time in the 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,@function -alltraps: + .globl alltraps_u + .type alltraps_u,@function +alltraps_u: movq %rdi,TF_RDI(%rsp) - testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */ - jz 1f /* already running with kernel GS.base */ - swapgs + movq %rdx,TF_RDX(%rsp) + movq %rax,TF_RAX(%rsp) + movq %rcx,TF_RCX(%rsp) movq PCPU(CURPCB),%rdi andl $~PCB_FULL_IRET,PCB_FLAGS(%rdi) -1: SAVE_SEGS + call handle_ibrs_entry + jmp alltraps_save_segs + SUPERALIGN_TEXT + .globl alltraps_k + .type alltraps_k,@function +alltraps_k: + lfence + movq %rdi,TF_RDI(%rsp) movq %rdx,TF_RDX(%rsp) movq %rax,TF_RAX(%rsp) movq %rcx,TF_RCX(%rsp) - testb $SEL_RPL_MASK,TF_CS(%rsp) - jz 2f - call handle_ibrs_entry -2: testl $PSL_I,TF_RFLAGS(%rsp) +alltraps_save_segs: + SAVE_SEGS + testl $PSL_I,TF_RFLAGS(%rsp) jz alltraps_pushregs_no_rax sti alltraps_pushregs_no_rax: @@ -234,21 +291,27 @@ calltrap: jmp doreti /* Handle any pending ASTs */ /* - * alltraps_noen entry point. Unlike alltraps above, we want to - * leave the interrupts disabled. This corresponds to - * SDT_SYS386IGT on the i386 port. + * alltraps_noen_u/k entry points. + * Again, SWAPGS must be already performed by prologue, if needed. + * Unlike alltraps above, we want to leave the interrupts disabled. + * This corresponds to SDT_SYS386IGT on the i386 port. */ SUPERALIGN_TEXT - .globl alltraps_noen - .type alltraps_noen,@function -alltraps_noen: + .globl alltraps_noen_u + .type alltraps_noen_u,@function +alltraps_noen_u: movq %rdi,TF_RDI(%rsp) - testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */ - jz 1f /* already running with kernel GS.base */ - swapgs movq PCPU(CURPCB),%rdi andl $~PCB_FULL_IRET,PCB_FLAGS(%rdi) -1: SAVE_SEGS + jmp alltraps_noen_save_segs + SUPERALIGN_TEXT + .globl alltraps_noen_k + .type alltraps_noen_k,@function +alltraps_noen_k: + lfence + movq %rdi,TF_RDI(%rsp) +alltraps_noen_save_segs: + SAVE_SEGS movq %rdx,TF_RDX(%rsp) movq %rax,TF_RAX(%rsp) movq %rcx,TF_RCX(%rsp) @@ -285,7 +348,7 @@ IDTVEC(dblfault) testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */ jz 1f /* already running with kernel GS.base */ swapgs -1: +1: lfence movq PCPU(KCR3),%rax cmpq $~0,%rax je 2f @@ -297,34 +360,43 @@ IDTVEC(dblfault) ALIGN_TEXT IDTVEC(page_pti) - testb $SEL_RPL_MASK,PTI_CS-2*8(%rsp) - jz Xpage + testb $SEL_RPL_MASK,PTI_CS-PTI_ERR(%rsp) + jz page_k swapgs + lfence pushq %rax movq %cr3,%rax movq %rax,PCPU(SAVED_UCR3) cmpq $~0,PCPU(UCR3) jne 1f popq %rax - jmp 2f + jmp page_u 1: pushq %rdx PTI_UUENTRY has_err=1 -2: subq $TF_ERR,%rsp - movq %rdi,TF_RDI(%rsp) - movq %rax,TF_RAX(%rsp) - movq %rdx,TF_RDX(%rsp) - movq %rcx,TF_RCX(%rsp) jmp page_u + ALIGN_TEXT IDTVEC(page) + testb $SEL_RPL_MASK,TF_CS-TF_ERR(%rsp) /* Did we come from kernel? */ + jnz page_u_swapgs /* already running with kernel GS.base */ +page_k: + lfence subq $TF_ERR,%rsp movq %rdi,TF_RDI(%rsp) /* free up GP registers */ movq %rax,TF_RAX(%rsp) movq %rdx,TF_RDX(%rsp) movq %rcx,TF_RCX(%rsp) - testb $SEL_RPL_MASK,TF_CS(%rsp) /* Did we come from kernel? */ - jz page_cr2 /* already running with kernel GS.base */ + jmp page_cr2 + ALIGN_TEXT +page_u_swapgs: swapgs -page_u: movq PCPU(CURPCB),%rdi + lfence +page_u: + subq $TF_ERR,%rsp + movq %rdi,TF_RDI(%rsp) + movq %rax,TF_RAX(%rsp) + movq %rdx,TF_RDX(%rsp) + movq %rcx,TF_RCX(%rsp) + movq PCPU(CURPCB),%rdi andl $~PCB_FULL_IRET,PCB_FLAGS(%rdi) movq PCPU(SAVED_UCR3),%rax movq %rax,PCB_SAVED_UCR3(%rdi) @@ -355,6 +427,7 @@ page_cr2: .macro PROTF_ENTRY name,trapno \name\()_pti_doreti: swapgs + lfence cmpq $~0,PCPU(UCR3) je 1f pushq %rax @@ -377,9 +450,9 @@ IDTVEC(\name\()_pti) cmpq $doreti_iret,PTI_RIP-2*8(%rsp) je \name\()_pti_doreti testb $SEL_RPL_MASK,PTI_CS-2*8(%rsp) /* %rax, %rdx not yet pushed */ - jz X\name + jz X\name /* lfence is not needed until %gs: use */ PTI_UENTRY has_err=1 - swapgs + swapgs /* fence provided by PTI_UENTRY */ IDTVEC(\name) subq $TF_ERR,%rsp movl $\trapno,TF_TRAPNO(%rsp) @@ -412,6 +485,7 @@ prot_addrf: jne 2f rdgsbase %rdx 2: swapgs + lfence movq PCPU(CURPCB),%rdi testb $CPUID_STDEXT_FSGSBASE,cpu_stdext_feature(%rip) jz 4f @@ -431,7 +505,8 @@ prot_addrf: jmp alltraps_pushregs_no_rax 5: swapgs -6: movq PCPU(CURPCB),%rdi +6: lfence + movq PCPU(CURPCB),%rdi jmp 4b /* @@ -446,6 +521,7 @@ prot_addrf: SUPERALIGN_TEXT IDTVEC(fast_syscall_pti) swapgs + lfence movq %rax,PCPU(SCRATCH_RAX) cmpq $~0,PCPU(UCR3) je fast_syscall_common @@ -455,6 +531,7 @@ IDTVEC(fast_syscall_pti) SUPERALIGN_TEXT IDTVEC(fast_syscall) swapgs + lfence movq %rax,PCPU(SCRATCH_RAX) fast_syscall_common: movq %rsp,PCPU(SCRATCH_RSP) @@ -583,6 +660,7 @@ IDTVEC(dbg) popfq testb $SEL_RPL_MASK,TF_CS(%rsp) jnz dbg_fromuserspace + lfence /* * We've interrupted the kernel. Preserve GS.base in %r12, * %cr3 in %r13, and possibly lower half of MSR_IA32_SPEC_CTL in %r14d. @@ -638,6 +716,7 @@ dbg_fromuserspace: * in trap(). */ swapgs + lfence movq PCPU(KCR3),%rax cmpq $~0,%rax je 1f @@ -723,6 +802,7 @@ IDTVEC(nmi) * We've interrupted the kernel. Preserve GS.base in %r12, * %cr3 in %r13, and possibly lower half of MSR_IA32_SPEC_CTL in %r14d. */ + lfence movl $MSR_GSBASE,%ecx rdmsr movq %rax,%r12 @@ -748,6 +828,7 @@ IDTVEC(nmi) nmi_fromuserspace: incl %ebx swapgs + lfence movq %cr3,%r13 movq PCPU(KCR3),%rax cmpq $~0,%rax Modified: projects/nfsv42/sys/amd64/amd64/machdep.c ============================================================================== --- projects/nfsv42/sys/amd64/amd64/machdep.c Sun Sep 8 22:52:47 2019 (r352050) +++ projects/nfsv42/sys/amd64/amd64/machdep.c Mon Sep 9 00:46:22 2019 (r352051) @@ -210,27 +210,13 @@ int cold = 1; long Maxmem = 0; long realmem = 0; -/* - * The number of PHYSMAP entries must be one less than the number of - * PHYSSEG entries because the PHYSMAP entry that spans the largest - * physical address that is accessible by ISA DMA is split into two - * PHYSSEG entries. - */ -#define PHYSMAP_SIZE (2 * (VM_PHYSSEG_MAX - 1)) - -vm_paddr_t phys_avail[PHYSMAP_SIZE + 2]; -vm_paddr_t dump_avail[PHYSMAP_SIZE + 2]; - -/* must be 2 less so 0 0 can signal end of chunks */ -#define PHYS_AVAIL_ARRAY_END (nitems(phys_avail) - 2) -#define DUMP_AVAIL_ARRAY_END (nitems(dump_avail) - 2) - struct kva_md_info kmi; static struct trapframe proc0_tf; struct region_descriptor r_gdt, r_idt; -struct pcpu __pcpu[MAXCPU]; +struct pcpu *__pcpu; +struct pcpu temp_bsp_pcpu; struct mtx icu_lock; @@ -1036,7 +1022,7 @@ add_physmap_entry(uint64_t base, uint64_t length, vm_p physmap_idx += 2; *physmap_idxp = physmap_idx; - if (physmap_idx == PHYSMAP_SIZE) { + if (physmap_idx == PHYS_AVAIL_ENTRIES) { printf( "Too many segments in the physical address map, giving up\n"); return (0); @@ -1229,7 +1215,7 @@ static void getmemsize(caddr_t kmdp, u_int64_t first) { int i, physmap_idx, pa_indx, da_indx; - vm_paddr_t pa, physmap[PHYSMAP_SIZE]; + vm_paddr_t pa, physmap[PHYS_AVAIL_ENTRIES]; u_long physmem_start, physmem_tunable, memtest; pt_entry_t *pte; quad_t dcons_addr, dcons_size; @@ -1446,7 +1432,7 @@ skip_memtest: phys_avail[pa_indx] += PAGE_SIZE; } else { pa_indx++; - if (pa_indx == PHYS_AVAIL_ARRAY_END) { + if (pa_indx == PHYS_AVAIL_ENTRIES) { printf( "Too many holes in the physical address space, giving up\n"); pa_indx--; @@ -1462,7 +1448,7 @@ do_dump_avail: dump_avail[da_indx] += PAGE_SIZE; } else { da_indx++; - if (da_indx == DUMP_AVAIL_ARRAY_END) { + if (da_indx == PHYS_AVAIL_ENTRIES) { da_indx--; goto do_next; } @@ -1558,13 +1544,68 @@ amd64_conf_fast_syscall(void) wrmsr(MSR_SF_MASK, PSL_NT | PSL_T | PSL_I | PSL_C | PSL_D | PSL_AC); } +void +amd64_bsp_pcpu_init1(struct pcpu *pc) +{ + + PCPU_SET(prvspace, pc); + PCPU_SET(curthread, &thread0); + PCPU_SET(tssp, &common_tss[0]); + PCPU_SET(commontssp, &common_tss[0]); + PCPU_SET(tss, (struct system_segment_descriptor *)&gdt[GPROC0_SEL]); + PCPU_SET(ldt, (struct system_segment_descriptor *)&gdt[GUSERLDT_SEL]); + PCPU_SET(fs32p, &gdt[GUFS32_SEL]); + PCPU_SET(gs32p, &gdt[GUGS32_SEL]); +} + +void +amd64_bsp_pcpu_init2(uint64_t rsp0) +{ + + PCPU_SET(rsp0, rsp0); + PCPU_SET(pti_rsp0, ((vm_offset_t)PCPU_PTR(pti_stack) + + PC_PTI_STACK_SZ * sizeof(uint64_t)) & ~0xful); + PCPU_SET(curpcb, thread0.td_pcb); +} + +void +amd64_bsp_ist_init(struct pcpu *pc) +{ + struct nmi_pcpu *np; + + /* doublefault stack space, runs on ist1 */ + common_tss[0].tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)]; + + /* + * NMI stack, runs on ist2. The pcpu pointer is stored just + * above the start of the ist2 stack. + */ + np = ((struct nmi_pcpu *)&nmi0_stack[sizeof(nmi0_stack)]) - 1; + np->np_pcpu = (register_t)pc; + common_tss[0].tss_ist2 = (long)np; + + /* + * MC# stack, runs on ist3. The pcpu pointer is stored just + * above the start of the ist3 stack. + */ + np = ((struct nmi_pcpu *)&mce0_stack[sizeof(mce0_stack)]) - 1; + np->np_pcpu = (register_t)pc; + common_tss[0].tss_ist3 = (long)np; + + /* + * DB# stack, runs on ist4. + */ + np = ((struct nmi_pcpu *)&dbg0_stack[sizeof(dbg0_stack)]) - 1; + np->np_pcpu = (register_t)pc; + common_tss[0].tss_ist4 = (long)np; +} + u_int64_t hammer_time(u_int64_t modulep, u_int64_t physfree) { caddr_t kmdp; int gsel_tss, x; struct pcpu *pc; - struct nmi_pcpu *np; struct xstate_hdr *xhdr; u_int64_t rsp0; char *env; @@ -1638,7 +1679,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) r_gdt.rd_limit = NGDT * sizeof(gdt[0]) - 1; r_gdt.rd_base = (long) gdt; lgdt(&r_gdt); - pc = &__pcpu[0]; + pc = &temp_bsp_pcpu; wrmsr(MSR_FSBASE, 0); /* User value */ wrmsr(MSR_GSBASE, (u_int64_t)pc); @@ -1647,15 +1688,8 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) pcpu_init(pc, 0, sizeof(struct pcpu)); dpcpu_init((void *)(physfree + KERNBASE), 0); physfree += DPCPU_SIZE; - PCPU_SET(prvspace, pc); - PCPU_SET(curthread, &thread0); + amd64_bsp_pcpu_init1(pc); /* Non-late cninit() and printf() can be moved up to here. */ - PCPU_SET(tssp, &common_tss[0]); - PCPU_SET(commontssp, &common_tss[0]); - PCPU_SET(tss, (struct system_segment_descriptor *)&gdt[GPROC0_SEL]); - PCPU_SET(ldt, (struct system_segment_descriptor *)&gdt[GUSERLDT_SEL]); - PCPU_SET(fs32p, &gdt[GUFS32_SEL]); - PCPU_SET(gs32p, &gdt[GUGS32_SEL]); /* * Initialize mutexes. @@ -1744,31 +1778,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) finishidentcpu(); /* Final stage of CPU initialization */ initializecpu(); /* Initialize CPU registers */ - /* doublefault stack space, runs on ist1 */ - common_tss[0].tss_ist1 = (long)&dblfault_stack[sizeof(dblfault_stack)]; - - /* - * NMI stack, runs on ist2. The pcpu pointer is stored just - * above the start of the ist2 stack. - */ - np = ((struct nmi_pcpu *) &nmi0_stack[sizeof(nmi0_stack)]) - 1; - np->np_pcpu = (register_t) pc; - common_tss[0].tss_ist2 = (long) np; - - /* - * MC# stack, runs on ist3. The pcpu pointer is stored just - * above the start of the ist3 stack. - */ - np = ((struct nmi_pcpu *) &mce0_stack[sizeof(mce0_stack)]) - 1; - np->np_pcpu = (register_t) pc; - common_tss[0].tss_ist3 = (long) np; - - /* - * DB# stack, runs on ist4. - */ - np = ((struct nmi_pcpu *) &dbg0_stack[sizeof(dbg0_stack)]) - 1; - np->np_pcpu = (register_t) pc; - common_tss[0].tss_ist4 = (long) np; + amd64_bsp_ist_init(pc); /* Set the IO permission bitmap (empty due to tss seg limit) */ common_tss[0].tss_iobase = sizeof(struct amd64tss) + IOPERM_BITMAP_SIZE; @@ -1857,10 +1867,7 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) /* Ensure the stack is aligned to 16 bytes */ rsp0 &= ~0xFul; common_tss[0].tss_rsp0 = rsp0; - PCPU_SET(rsp0, rsp0); - PCPU_SET(pti_rsp0, ((vm_offset_t)PCPU_PTR(pti_stack) + - PC_PTI_STACK_SZ * sizeof(uint64_t)) & ~0xful); - PCPU_SET(curpcb, thread0.td_pcb); + amd64_bsp_pcpu_init2(rsp0); /* transfer to user mode */ Modified: projects/nfsv42/sys/amd64/amd64/mp_machdep.c ============================================================================== --- projects/nfsv42/sys/amd64/amd64/mp_machdep.c Sun Sep 8 22:52:47 2019 (r352050) +++ projects/nfsv42/sys/amd64/amd64/mp_machdep.c Mon Sep 9 00:46:22 2019 (r352051) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #ifdef GPROF #include #endif @@ -59,6 +60,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include @@ -75,6 +78,9 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include + #define WARMBOOT_TARGET 0 #define WARMBOOT_OFF (KERNBASE + 0x0467) #define WARMBOOT_SEG (KERNBASE + 0x0469) @@ -88,8 +94,6 @@ __FBSDID("$FreeBSD$"); #define AP_BOOTPT_SZ (PAGE_SIZE * 3) -extern struct pcpu __pcpu[]; - /* Temporary variables for init_secondary() */ char *doublefault_stack; char *mce_stack; @@ -384,6 +388,27 @@ init_secondary(void) * local functions and data */ +#ifdef NUMA +static void +mp_realloc_pcpu(int cpuid, int domain) +{ + vm_page_t m; + vm_offset_t oa, na; + + oa = (vm_offset_t)&__pcpu[cpuid]; + if (_vm_phys_domain(pmap_kextract(oa)) == domain) + return; + m = vm_page_alloc_domain(NULL, 0, domain, + VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); + if (m == NULL) + return; + na = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); + pagecopy((void *)oa, (void *)na); + pmap_qenter((vm_offset_t)&__pcpu[cpuid], &m, 1); + /* XXX old pcpu page leaked. */ +} +#endif + /* * start each AP in our list */ @@ -392,7 +417,7 @@ native_start_all_aps(void) { u_int64_t *pt4, *pt3, *pt2; u_int32_t mpbioswarmvec; - int apic_id, cpu, i; + int apic_id, cpu, domain, i; u_char mpbiosreason; mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN); @@ -431,21 +456,39 @@ native_start_all_aps(void) outb(CMOS_REG, BIOS_RESET); outb(CMOS_DATA, BIOS_WARM); /* 'warm-start' */ + /* Relocate pcpu areas to the correct domain. */ +#ifdef NUMA + if (vm_ndomains > 1) + for (cpu = 1; cpu < mp_ncpus; cpu++) { + apic_id = cpu_apic_ids[cpu]; + domain = acpi_pxm_get_cpu_locality(apic_id); + mp_realloc_pcpu(cpu, domain); + } +#endif + /* start each AP */ + domain = 0; for (cpu = 1; cpu < mp_ncpus; cpu++) { apic_id = cpu_apic_ids[cpu]; - +#ifdef NUMA + if (vm_ndomains > 1) + domain = acpi_pxm_get_cpu_locality(apic_id); +#endif /* allocate and set up an idle stack data page */ bootstacks[cpu] = (void *)kmem_malloc(kstack_pages * PAGE_SIZE, M_WAITOK | M_ZERO); doublefault_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); mce_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); - nmi_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); - dbg_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO); - dpcpu = (void *)kmem_malloc(DPCPU_SIZE, M_WAITOK | M_ZERO); + nmi_stack = (char *)kmem_malloc_domainset( + DOMAINSET_PREF(domain), PAGE_SIZE, M_WAITOK | M_ZERO); + dbg_stack = (char *)kmem_malloc_domainset( + DOMAINSET_PREF(domain), PAGE_SIZE, M_WAITOK | M_ZERO); + dpcpu = (void *)kmem_malloc_domainset(DOMAINSET_PREF(domain), + DPCPU_SIZE, M_WAITOK | M_ZERO); - bootSTK = (char *)bootstacks[cpu] + kstack_pages * PAGE_SIZE - 8; + bootSTK = (char *)bootstacks[cpu] + + kstack_pages * PAGE_SIZE - 8; bootAP = cpu; /* attempt to start the Application Processor */ @@ -465,7 +508,7 @@ native_start_all_aps(void) outb(CMOS_DATA, mpbiosreason); /* number of APs actually started */ - return mp_naps; + return (mp_naps); } Modified: projects/nfsv42/sys/amd64/amd64/pmap.c ============================================================================== --- projects/nfsv42/sys/amd64/amd64/pmap.c Sun Sep 8 22:52:47 2019 (r352050) +++ projects/nfsv42/sys/amd64/amd64/pmap.c Mon Sep 9 00:46:22 2019 (r352051) @@ -124,6 +124,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -421,8 +422,8 @@ static int pmap_flags = PMAP_PDE_SUPERPAGE; /* flags f static vmem_t *large_vmem; static u_int lm_ents; -#define PMAP_LARGEMAP_MAX_ADDRESS() \ - (LARGEMAP_MIN_ADDRESS + NBPML4 * (u_long)lm_ents) +#define PMAP_ADDRESS_IN_LARGEMAP(va) ((va) >= LARGEMAP_MIN_ADDRESS && \ + (va) < LARGEMAP_MIN_ADDRESS + NBPML4 * (u_long)lm_ents) int pmap_pcid_enabled = 1; SYSCTL_INT(_vm_pmap, OID_AUTO, pcid_enabled, CTLFLAG_RDTUN | CTLFLAG_NOFETCH, @@ -1097,6 +1098,13 @@ static caddr_t crashdumpmap; #define PMAP_ENTER_NORECLAIM 0x1000000 /* Don't reclaim PV entries. */ #define PMAP_ENTER_NOREPLACE 0x2000000 /* Don't replace mappings. */ +/* + * Internal flags for pmap_mapdev_internal() and + * pmap_change_attr_locked(). + */ +#define MAPDEV_FLUSHCACHE 0x0000001 /* Flush cache after mapping. */ +#define MAPDEV_SETATTR 0x0000002 /* Modify existing attrs. */ + static void free_pv_chunk(struct pv_chunk *pc); static void free_pv_entry(pmap_t pmap, pv_entry_t pv); static pv_entry_t get_pv_entry(pmap_t pmap, struct rwlock **lockp); @@ -1117,7 +1125,7 @@ static pv_entry_t pmap_pvh_remove(struct md_page *pvh, vm_offset_t va); static int pmap_change_attr_locked(vm_offset_t va, vm_size_t size, int mode, - bool noflush); + int flags); static boolean_t pmap_demote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va); static boolean_t pmap_demote_pde_locked(pmap_t pmap, pd_entry_t *pde, vm_offset_t va, struct rwlock **lockp); @@ -1582,8 +1590,8 @@ void pmap_bootstrap(vm_paddr_t *firstaddr) { vm_offset_t va; - pt_entry_t *pte; - uint64_t cr4; + pt_entry_t *pte, *pcpu_pte; + uint64_t cr4, pcpu_phys; u_long res; int i; @@ -1598,6 +1606,8 @@ pmap_bootstrap(vm_paddr_t *firstaddr) */ create_pagetables(firstaddr); + pcpu_phys = allocpages(firstaddr, MAXCPU); + /* * Add a physical memory segment (vm_phys_seg) corresponding to the * preallocated kernel page table pages so that vm_page structures @@ -1665,8 +1675,21 @@ pmap_bootstrap(vm_paddr_t *firstaddr) SYSMAP(caddr_t, CMAP1, crashdumpmap, MAXDUMPPGS) CADDR1 = crashdumpmap; + SYSMAP(struct pcpu *, pcpu_pte, __pcpu, MAXCPU); virtual_avail = va; + for (i = 0; i < MAXCPU; i++) { + pcpu_pte[i] = (pcpu_phys + ptoa(i)) | X86_PG_V | X86_PG_RW | + pg_g | pg_nx | X86_PG_M | X86_PG_A; + } + STAILQ_INIT(&cpuhead); + wrmsr(MSR_GSBASE, (uint64_t)&__pcpu[0]); + pcpu_init(&__pcpu[0], 0, sizeof(struct pcpu)); + amd64_bsp_pcpu_init1(&__pcpu[0]); + amd64_bsp_ist_init(&__pcpu[0]); + __pcpu[0].pc_dynamic = temp_bsp_pcpu.pc_dynamic; + __pcpu[0].pc_acpi_id = temp_bsp_pcpu.pc_acpi_id; + /* * Initialize the PAT MSR. * pmap_init_pat() clears and sets CR4_PGE, which, as a @@ -2071,6 +2094,41 @@ pmap_cache_mask(pmap_t pmap, boolean_t is_pde) return (mask); } +static int +pmap_pat_index(pmap_t pmap, pt_entry_t pte, bool is_pde) +{ + int pat_flag, pat_idx; + + pat_idx = 0; + switch (pmap->pm_type) { + case PT_X86: + case PT_RVI: + /* The PAT bit is different for PTE's and PDE's. */ + pat_flag = is_pde ? X86_PG_PDE_PAT : X86_PG_PTE_PAT; + + if ((pte & pat_flag) != 0) + pat_idx |= 0x4; + if ((pte & PG_NC_PCD) != 0) + pat_idx |= 0x2; + if ((pte & PG_NC_PWT) != 0) + pat_idx |= 0x1; + break; + case PT_EPT: + if ((pte & EPT_PG_IGNORE_PAT) != 0) + panic("EPT PTE %#lx has no PAT memory type", pte); + pat_idx = (pte & EPT_PG_MEMORY_TYPE(0x7)) >> 3; + break; + } + + /* See pmap_init_pat(). */ + if (pat_idx == 4) + pat_idx = 0; + if (pat_idx == 7) + pat_idx = 3; + + return (pat_idx); +} + bool pmap_ps_enabled(pmap_t pmap) { @@ -3050,8 +3108,7 @@ pmap_kextract(vm_offset_t va) if (va >= DMAP_MIN_ADDRESS && va < DMAP_MAX_ADDRESS) { pa = DMAP_TO_PHYS(va); - } else if (LARGEMAP_MIN_ADDRESS <= va && - va < PMAP_LARGEMAP_MAX_ADDRESS()) { + } else if (PMAP_ADDRESS_IN_LARGEMAP(va)) { pa = pmap_large_map_kextract(va); } else { pde = *vtopde(va); @@ -3774,6 +3831,49 @@ SYSCTL_PROC(_vm, OID_AUTO, kvm_free, CTLTYPE_LONG|CTLF 0, 0, kvm_free, "LU", "Amount of KVM free"); /* + * Allocate physical memory for the vm_page array and map it into KVA, + * attempting to back the vm_pages with domain-local memory. + */ +void +pmap_page_array_startup(long pages) +{ + pdp_entry_t *pdpe; + pd_entry_t *pde, newpdir; + vm_offset_t va, start, end; + vm_paddr_t pa; + long pfn; + int domain, i; + + vm_page_array_size = pages; + + start = va = VM_MIN_KERNEL_ADDRESS; + end = va + pages * sizeof(struct vm_page); + while (va < end) { + pfn = first_page + (va - start) / sizeof(struct vm_page); + domain = _vm_phys_domain(ptoa(pfn)); + pdpe = pmap_pdpe(kernel_pmap, va); + if ((*pdpe & X86_PG_V) == 0) { + pa = vm_phys_early_alloc(domain, PAGE_SIZE); + dump_add_page(pa); + pagezero((void *)PHYS_TO_DMAP(pa)); + *pdpe = (pdp_entry_t)(pa | X86_PG_V | X86_PG_RW | + X86_PG_A | X86_PG_M); + } + pde = pmap_pdpe_to_pde(pdpe, va); + if ((*pde & X86_PG_V) != 0) + panic("Unexpected pde"); + pa = vm_phys_early_alloc(domain, NBPDR); + for (i = 0; i < NPDEPG; i++) + dump_add_page(pa + i * PAGE_SIZE); + newpdir = (pd_entry_t)(pa | X86_PG_V | X86_PG_RW | X86_PG_A | + X86_PG_M | PG_PS | pg_g | pg_nx); + pde_store(pde, newpdir); + va += NBPDR; + } + vm_page_array = (vm_page_t)start; +} + +/* * grow the number of kernel page table entries, if needed */ void @@ -7444,7 +7544,7 @@ pmap_advise(pmap_t pmap, vm_offset_t sva, vm_offset_t pt_entry_t *pte, PG_A, PG_G, PG_M, PG_RW, PG_V; vm_offset_t va, va_next; vm_page_t m; - boolean_t anychanged; + bool anychanged; if (advice != MADV_DONTNEED && advice != MADV_FREE) return; @@ -7463,7 +7563,7 @@ pmap_advise(pmap_t pmap, vm_offset_t sva, vm_offset_t PG_M = pmap_modified_bit(pmap); PG_V = pmap_valid_bit(pmap); PG_RW = pmap_rw_bit(pmap); - anychanged = FALSE; + anychanged = false; pmap_delayed_invl_start(); PMAP_LOCK(pmap); for (; sva < eva; sva = va_next) { @@ -7505,17 +7605,25 @@ pmap_advise(pmap_t pmap, vm_offset_t sva, vm_offset_t /* * Unless the page mappings are wired, remove the * mapping to a single page so that a subsequent - * access may repromote. Since the underlying page - * table page is fully populated, this removal never - * frees a page table page. + * access may repromote. Choosing the last page + * within the address range [sva, min(va_next, eva)) + * generally results in more repromotions. Since the + * underlying page table page is fully populated, this + * removal never frees a page table page. */ if ((oldpde & PG_W) == 0) { - pte = pmap_pde_to_pte(pde, sva); + va = eva; + if (va > va_next) + va = va_next; + va -= PAGE_SIZE; + KASSERT(va >= sva, + ("pmap_advise: no address gap")); + pte = pmap_pde_to_pte(pde, va); KASSERT((*pte & PG_V) != 0, ("pmap_advise: invalid PTE")); - pmap_remove_pte(pmap, pte, sva, *pde, NULL, + pmap_remove_pte(pmap, pte, va, *pde, NULL, &lock); - anychanged = TRUE; + anychanged = true; } if (lock != NULL) rw_wunlock(lock); @@ -7547,7 +7655,7 @@ pmap_advise(pmap_t pmap, vm_offset_t sva, vm_offset_t if (va == va_next) va = sva; } else - anychanged = TRUE; *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***