From owner-svn-src-projects@freebsd.org Sun Jun 5 17:31:37 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 61FE7B6A226 for <svn-src-projects@mailman.ysv.freebsd.org>; Sun, 5 Jun 2016 17:31:37 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id 2BDF11E51; Sun, 5 Jun 2016 17:31:37 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u55HVack096625; Sun, 5 Jun 2016 17:31:36 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u55HVakG096624; Sun, 5 Jun 2016 17:31:36 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606051731.u55HVakG096624@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Sun, 5 Jun 2016 17:31:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301458 - projects/vnet/sys/net X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sun, 05 Jun 2016 17:31:37 -0000 Author: bz Date: Sun Jun 5 17:31:36 2016 New Revision: 301458 URL: https://svnweb.freebsd.org/changeset/base/301458 Log: Fix a wonderful SVN mismerge. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/sys/net/if_ethersubr.c Modified: projects/vnet/sys/net/if_ethersubr.c ============================================================================== --- projects/vnet/sys/net/if_ethersubr.c Sun Jun 5 17:11:23 2016 (r301457) +++ projects/vnet/sys/net/if_ethersubr.c Sun Jun 5 17:31:36 2016 (r301458) @@ -754,7 +754,6 @@ ether_input(struct ifnet *ifp, struct mb KASSERT(m->m_pkthdr.rcvif == ifp, ("%s: ifnet mismatch m %p " "rcvif %p ifp %p", __func__, m, m->m_pkthdr.rcvif, ifp)); CURVNET_SET_QUIET(ifp->if_vnet); - CURVNET_SET_QUIET(ifp->if_vnet); netisr_dispatch(NETISR_ETHER, m); CURVNET_RESTORE(); m = mn; From owner-svn-src-projects@freebsd.org Mon Jun 6 10:21:56 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A6FBDB46781 for <svn-src-projects@mailman.ysv.freebsd.org>; Mon, 6 Jun 2016 10:21:56 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id 50965139A; Mon, 6 Jun 2016 10:21:56 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u56ALtHn075864; Mon, 6 Jun 2016 10:21:55 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u56ALrF3075840; Mon, 6 Jun 2016 10:21:53 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606061021.u56ALrF3075840@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Mon, 6 Jun 2016 10:21:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301499 - in projects/vnet: . bin/sh contrib/bmake contrib/bmake/mk contrib/elftoolchain/brandelf contrib/elftoolchain/elfcopy contrib/elftoolchain/elfdump contrib/elftoolchain/libdwarf... X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 06 Jun 2016 10:21:56 -0000 Author: bz Date: Mon Jun 6 10:21:53 2016 New Revision: 301499 URL: https://svnweb.freebsd.org/changeset/base/301499 Log: MfH @r301498 Sponsored by: The FreeBSD Foundation Added: projects/vnet/contrib/libucl/src/mum.h - copied unchanged from r301498, head/contrib/libucl/src/mum.h projects/vnet/etc/rc.d/ypldap - copied unchanged from r301498, head/etc/rc.d/ypldap projects/vnet/lib/clang/freebsd_cc_version.h - copied unchanged from r301498, head/lib/clang/freebsd_cc_version.h projects/vnet/lib/libblacklist/Makefile.depend - copied unchanged from r301498, head/lib/libblacklist/Makefile.depend projects/vnet/lib/libdevdctl/Makefile.depend - copied unchanged from r301498, head/lib/libdevdctl/Makefile.depend projects/vnet/libexec/blacklistd-helper/Makefile.depend - copied unchanged from r301498, head/libexec/blacklistd-helper/Makefile.depend projects/vnet/sys/boot/efi/libefi/time_event.c - copied unchanged from r301498, head/sys/boot/efi/libefi/time_event.c projects/vnet/sys/dev/bhnd/bhnd_nexus.c - copied unchanged from r301498, head/sys/dev/bhnd/bhnd_nexus.c projects/vnet/sys/dev/bhnd/bhnd_nexusvar.h - copied unchanged from r301498, head/sys/dev/bhnd/bhnd_nexusvar.h projects/vnet/sys/dev/bhnd/cores/chipc/chipc_cfi.c - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_cfi.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc_slicer.c - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_slicer.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc_slicer.h - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_slicer.h projects/vnet/sys/dev/bhnd/cores/chipc/chipc_spi.c - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_spi.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc_spi.h - copied unchanged from r301498, head/sys/dev/bhnd/cores/chipc/chipc_spi.h projects/vnet/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c - copied unchanged from r301498, head/sys/dev/hyperv/vmbus/amd64/hyperv_machdep.c projects/vnet/sys/dev/hyperv/vmbus/hyperv_machdep.h - copied unchanged from r301498, head/sys/dev/hyperv/vmbus/hyperv_machdep.h projects/vnet/sys/dev/hyperv/vmbus/i386/hyperv_machdep.c - copied unchanged from r301498, head/sys/dev/hyperv/vmbus/i386/hyperv_machdep.c projects/vnet/usr.bin/bsdcat/Makefile.depend - copied unchanged from r301498, head/usr.bin/bsdcat/Makefile.depend projects/vnet/usr.bin/resizewin/Makefile.depend - copied unchanged from r301498, head/usr.bin/resizewin/Makefile.depend projects/vnet/usr.bin/sdiff/Makefile.depend - copied unchanged from r301498, head/usr.bin/sdiff/Makefile.depend projects/vnet/usr.sbin/blacklistctl/Makefile.depend - copied unchanged from r301498, head/usr.sbin/blacklistctl/Makefile.depend projects/vnet/usr.sbin/blacklistd/Makefile.depend - copied unchanged from r301498, head/usr.sbin/blacklistd/Makefile.depend projects/vnet/usr.sbin/zonectl/Makefile.depend - copied unchanged from r301498, head/usr.sbin/zonectl/Makefile.depend Deleted: projects/vnet/contrib/libucl/src/xxhash.c projects/vnet/contrib/libucl/src/xxhash.h projects/vnet/sys/dev/bhnd/soc/bhnd_soc.c projects/vnet/sys/dev/bhnd/soc/bhnd_soc.h projects/vnet/sys/dev/siba/siba_cc.c projects/vnet/sys/dev/siba/siba_mips.c projects/vnet/sys/dev/siba/siba_pcib.c projects/vnet/sys/dev/siba/siba_pcibvar.h Modified: projects/vnet/Makefile projects/vnet/Makefile.inc1 projects/vnet/bin/sh/Makefile projects/vnet/bin/sh/miscbltin.c projects/vnet/contrib/bmake/ChangeLog projects/vnet/contrib/bmake/Makefile projects/vnet/contrib/bmake/bmake.1 projects/vnet/contrib/bmake/bmake.cat1 projects/vnet/contrib/bmake/boot-strap projects/vnet/contrib/bmake/main.c projects/vnet/contrib/bmake/make-bootstrap.sh.in projects/vnet/contrib/bmake/make.1 projects/vnet/contrib/bmake/make.h projects/vnet/contrib/bmake/meta.c projects/vnet/contrib/bmake/mk/ChangeLog projects/vnet/contrib/bmake/mk/dpadd.mk projects/vnet/contrib/bmake/mk/install-mk projects/vnet/contrib/bmake/mk/meta.autodep.mk projects/vnet/contrib/bmake/mk/meta.stage.mk projects/vnet/contrib/bmake/nonints.h projects/vnet/contrib/bmake/var.c projects/vnet/contrib/elftoolchain/brandelf/brandelf.c projects/vnet/contrib/elftoolchain/elfcopy/main.c projects/vnet/contrib/elftoolchain/elfdump/elfdump.c projects/vnet/contrib/elftoolchain/libdwarf/libdwarf_reloc.c projects/vnet/contrib/elftoolchain/libelftc/elftc_reloc_type_str.c projects/vnet/contrib/elftoolchain/readelf/readelf.c projects/vnet/contrib/gcclibs/include/objalloc.h projects/vnet/contrib/gcclibs/libiberty/objalloc.c projects/vnet/contrib/libucl/src/Makefile.am projects/vnet/contrib/libucl/src/ucl_hash.c projects/vnet/contrib/libucl/src/ucl_internal.h projects/vnet/contrib/libucl/src/ucl_msgpack.c projects/vnet/contrib/libucl/src/ucl_parser.c projects/vnet/contrib/libucl/src/ucl_util.c projects/vnet/contrib/libucl/uthash/uthash.h projects/vnet/contrib/one-true-awk/b.c projects/vnet/contrib/one-true-awk/lex.c projects/vnet/contrib/one-true-awk/maketab.c projects/vnet/contrib/one-true-awk/parse.c projects/vnet/contrib/one-true-awk/run.c projects/vnet/contrib/one-true-awk/tran.c projects/vnet/crypto/openssl/crypto/opensslv.h projects/vnet/etc/defaults/periodic.conf projects/vnet/etc/defaults/rc.conf projects/vnet/etc/mtree/BSD.usr.dist projects/vnet/etc/rc.d/Makefile projects/vnet/gnu/usr.bin/cc/c++/Makefile.depend projects/vnet/gnu/usr.bin/cc/cc/Makefile.depend projects/vnet/gnu/usr.bin/cc/cc1/Makefile.depend projects/vnet/gnu/usr.bin/cc/cc1plus/Makefile.depend projects/vnet/gnu/usr.bin/cc/cc_tools/Makefile.depend projects/vnet/gnu/usr.bin/cc/cpp/Makefile.depend projects/vnet/gnu/usr.bin/cc/gcov/Makefile.depend projects/vnet/gnu/usr.bin/groff/src/libs/libdriver/Makefile.depend projects/vnet/gnu/usr.bin/groff/src/libs/libgroff/Makefile.depend projects/vnet/kerberos5/Makefile.inc projects/vnet/kerberos5/lib/libasn1/Makefile projects/vnet/kerberos5/lib/libgssapi_spnego/Makefile projects/vnet/kerberos5/lib/libhdb/Makefile projects/vnet/kerberos5/lib/libhx509/Makefile projects/vnet/kerberos5/tools/asn1_compile/Makefile.depend projects/vnet/lib/clang/include/clang/Basic/Version.inc projects/vnet/lib/clang/libclangbasic/Makefile projects/vnet/lib/libc/gen/fnmatch.c projects/vnet/lib/libc/gen/glob.c projects/vnet/lib/libc/locale/collate.h projects/vnet/lib/libc/locale/collcmp.c projects/vnet/lib/libc/regex/regcomp.c projects/vnet/lib/libc/stdlib/random.3 projects/vnet/lib/libc/sys/_umtx_op.2 projects/vnet/lib/libc/sys/cpuset_getaffinity.2 projects/vnet/lib/libc/sys/thr_new.2 projects/vnet/lib/libelftc/Makefile projects/vnet/lib/libthr/libthr.3 projects/vnet/lib/libucl/Makefile projects/vnet/libexec/rlogind/Makefile projects/vnet/libexec/rlogind/rlogind.c projects/vnet/release/release.conf.sample projects/vnet/release/release.sh projects/vnet/sbin/ifconfig/ifconfig.8 projects/vnet/sbin/ifconfig/ifvlan.c projects/vnet/share/examples/Makefile projects/vnet/share/man/man3/pthread_attr_affinity_np.3 projects/vnet/share/man/man3/pthread_create.3 projects/vnet/share/man/man4/bcma.4 projects/vnet/share/man/man4/bhnd.4 projects/vnet/share/man/man4/bhndb.4 projects/vnet/share/man/man4/siba.4 projects/vnet/share/man/man4/vlan.4 projects/vnet/share/man/man5/src.conf.5 projects/vnet/share/mk/bsd.compiler.mk projects/vnet/share/mk/bsd.dep.mk projects/vnet/share/mk/bsd.info.mk projects/vnet/share/mk/bsd.lib.mk projects/vnet/share/mk/bsd.man.mk projects/vnet/share/mk/bsd.nls.mk projects/vnet/share/mk/bsd.prog.mk projects/vnet/share/mk/bsd.snmpmod.mk projects/vnet/share/mk/local.meta.sys.mk projects/vnet/share/mk/meta.stage.mk projects/vnet/share/mk/src.opts.mk projects/vnet/share/mk/sys.mk projects/vnet/sys/amd64/amd64/pmap.c projects/vnet/sys/arm/arm/nexus.c projects/vnet/sys/arm/mv/mv_common.c projects/vnet/sys/arm/nvidia/tegra124/tegra124_cpufreq.c projects/vnet/sys/arm64/arm64/gic_v3.c projects/vnet/sys/arm64/arm64/nexus.c projects/vnet/sys/boot/efi/include/efilib.h projects/vnet/sys/boot/efi/libefi/Makefile projects/vnet/sys/boot/efi/libefi/time.c projects/vnet/sys/boot/efi/loader/arch/amd64/elf64_freebsd.c projects/vnet/sys/boot/efi/loader/arch/arm/exec.c projects/vnet/sys/boot/efi/loader/arch/arm64/exec.c projects/vnet/sys/boot/efi/loader/arch/i386/elf32_freebsd.c projects/vnet/sys/boot/efi/loader/main.c projects/vnet/sys/cam/ctl/ctl_frontend_iscsi.c projects/vnet/sys/cam/ctl/ctl_frontend_iscsi.h projects/vnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c projects/vnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c projects/vnet/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c projects/vnet/sys/conf/files projects/vnet/sys/conf/files.amd64 projects/vnet/sys/conf/files.i386 projects/vnet/sys/conf/kern.post.mk projects/vnet/sys/conf/kern.pre.mk projects/vnet/sys/conf/kmod.mk projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9300.h projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_attach.c projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_mci.c projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9300_reset.c projects/vnet/sys/contrib/dev/ath/ath_hal/ar9300/ar9462_2p0_initvals.h projects/vnet/sys/dev/acpica/acpi_lid.c projects/vnet/sys/dev/ath/ath_hal/ah_btcoex.h projects/vnet/sys/dev/ath/ath_hal/ar5416/ar5416_btcoex.c projects/vnet/sys/dev/ath/if_ath_btcoex.c projects/vnet/sys/dev/bhnd/bcma/bcma.c projects/vnet/sys/dev/bhnd/bcma/bcma_nexus.c projects/vnet/sys/dev/bhnd/bhnd.h projects/vnet/sys/dev/bhnd/bhnd_bus_if.m projects/vnet/sys/dev/bhnd/bhnd_subr.c projects/vnet/sys/dev/bhnd/cores/chipc/bhnd_chipc_if.m projects/vnet/sys/dev/bhnd/cores/chipc/bhnd_sprom_chipc.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc.c projects/vnet/sys/dev/bhnd/cores/chipc/chipc.h projects/vnet/sys/dev/bhnd/cores/chipc/chipcreg.h projects/vnet/sys/dev/bhnd/cores/chipc/chipcvar.h projects/vnet/sys/dev/bhnd/nvram/bhnd_nvram.h projects/vnet/sys/dev/bhnd/nvram/bhnd_sprom.c projects/vnet/sys/dev/bhnd/nvram/bhnd_sprom_subr.c projects/vnet/sys/dev/bhnd/nvram/bhnd_spromvar.h projects/vnet/sys/dev/bhnd/siba/siba.c projects/vnet/sys/dev/bhnd/siba/siba_nexus.c projects/vnet/sys/dev/bhnd/siba/siba_subr.c projects/vnet/sys/dev/bwn/if_bwn.c projects/vnet/sys/dev/bwn/if_bwn_phy_n.c projects/vnet/sys/dev/cesa/cesa.c projects/vnet/sys/dev/cesa/cesa.h projects/vnet/sys/dev/etherswitch/mtkswitch/mtkswitch_mt7620.c projects/vnet/sys/dev/fdt/simplebus.c projects/vnet/sys/dev/filemon/filemon.c projects/vnet/sys/dev/filemon/filemon_wrapper.c projects/vnet/sys/dev/gpio/ofw_gpiobus.c projects/vnet/sys/dev/hyperv/vmbus/hv_channel_mgmt.c projects/vnet/sys/dev/hyperv/vmbus/hv_connection.c projects/vnet/sys/dev/hyperv/vmbus/hv_vmbus_priv.h projects/vnet/sys/dev/hyperv/vmbus/hyperv.c projects/vnet/sys/dev/hyperv/vmbus/vmbus.c projects/vnet/sys/dev/hyperv/vmbus/vmbus_reg.h projects/vnet/sys/dev/hyperv/vmbus/vmbus_var.h projects/vnet/sys/dev/iicbus/ofw_iicbus.c projects/vnet/sys/dev/ioat/ioat.c projects/vnet/sys/dev/ioat/ioat.h projects/vnet/sys/dev/ioat/ioat_internal.h projects/vnet/sys/dev/iscsi/iscsi.c projects/vnet/sys/dev/iscsi/iscsi_ioctl.h projects/vnet/sys/dev/ntb/ntb_hw/ntb_hw.c projects/vnet/sys/dev/nxge/xgehal/xgehal-device.c projects/vnet/sys/dev/ofw/ofw_bus_subr.c projects/vnet/sys/dev/ofw/ofw_bus_subr.h projects/vnet/sys/dev/ofw/ofwbus.c projects/vnet/sys/dev/pci/pci_host_generic.c projects/vnet/sys/dev/sfxge/common/ef10_ev.c projects/vnet/sys/dev/sfxge/common/ef10_nic.c projects/vnet/sys/dev/sfxge/common/ef10_tlv_layout.h projects/vnet/sys/dev/sfxge/common/efx.h projects/vnet/sys/dev/sfxge/common/efx_ev.c projects/vnet/sys/dev/sfxge/sfxge.c projects/vnet/sys/dev/sfxge/sfxge_ev.c projects/vnet/sys/dev/sfxge/sfxge_intr.c projects/vnet/sys/dev/sfxge/sfxge_rx.c projects/vnet/sys/dev/sfxge/sfxge_tx.c projects/vnet/sys/dev/usb/wlan/if_run.c projects/vnet/sys/dev/vnic/mrml_bridge.c projects/vnet/sys/dev/vnic/thunder_mdio_fdt.c projects/vnet/sys/kern/bus_if.m projects/vnet/sys/kern/init_main.c projects/vnet/sys/kern/kern_fork.c projects/vnet/sys/kern/kern_proc.c projects/vnet/sys/kern/kern_synch.c projects/vnet/sys/kern/kern_thread.c projects/vnet/sys/kern/sched_4bsd.c projects/vnet/sys/kern/sched_ule.c projects/vnet/sys/kern/subr_bus.c projects/vnet/sys/kern/subr_intr.c projects/vnet/sys/mips/broadcom/files.broadcom projects/vnet/sys/mips/broadcom/uart_bus_chipc.c projects/vnet/sys/mips/conf/BCM projects/vnet/sys/mips/conf/BCM.hints projects/vnet/sys/mips/conf/SENTRY5 projects/vnet/sys/mips/conf/SENTRY5.hints projects/vnet/sys/mips/mips/locore.S projects/vnet/sys/mips/mips/nexus.c projects/vnet/sys/modules/hyperv/vmbus/Makefile projects/vnet/sys/modules/sfxge/Makefile projects/vnet/sys/net/if.h projects/vnet/sys/net/if_vlan.c projects/vnet/sys/net/if_vlan_var.h projects/vnet/sys/netinet/icmp6.h projects/vnet/sys/netpfil/ipfw/ip_fw_table_algo.c projects/vnet/sys/sys/bus.h projects/vnet/sys/sys/intr.h projects/vnet/sys/sys/priv.h projects/vnet/sys/sys/proc.h projects/vnet/sys/sys/soundcard.h projects/vnet/sys/x86/x86/local_apic.c projects/vnet/targets/pseudo/bootstrap-tools/Makefile projects/vnet/targets/pseudo/tests/Makefile.depend projects/vnet/targets/pseudo/userland/Makefile.depend projects/vnet/targets/pseudo/userland/lib/Makefile.depend projects/vnet/targets/pseudo/userland/libexec/Makefile.depend projects/vnet/tools/build/mk/OptionalObsoleteFiles.inc projects/vnet/tools/build/options/WITH_META_MODE projects/vnet/usr.bin/bmake/Makefile projects/vnet/usr.bin/elfcopy/Makefile projects/vnet/usr.bin/getent/getent.1 projects/vnet/usr.bin/getent/getent.c projects/vnet/usr.bin/iscsictl/iscsictl.c projects/vnet/usr.sbin/acpi/iasl/Makefile projects/vnet/usr.sbin/bluetooth/btpand/btpand.c projects/vnet/usr.sbin/bsnmpd/bsnmpd/Makefile projects/vnet/usr.sbin/ctladm/ctladm.c projects/vnet/usr.sbin/ctld/ctld.h projects/vnet/usr.sbin/ctld/kernel.c projects/vnet/usr.sbin/ctld/login.c projects/vnet/usr.sbin/pw/pw_group.c projects/vnet/usr.sbin/pw/pw_user.c Directory Properties: projects/vnet/ (props changed) projects/vnet/contrib/bmake/ (props changed) projects/vnet/contrib/elftoolchain/ (props changed) projects/vnet/contrib/elftoolchain/brandelf/ (props changed) projects/vnet/contrib/elftoolchain/elfdump/ (props changed) projects/vnet/contrib/libucl/ (props changed) projects/vnet/contrib/one-true-awk/ (props changed) projects/vnet/crypto/openssl/ (props changed) projects/vnet/gnu/usr.bin/cc/cc_tools/ (props changed) projects/vnet/sys/cddl/contrib/opensolaris/ (props changed) Modified: projects/vnet/Makefile ============================================================================== --- projects/vnet/Makefile Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/Makefile Mon Jun 6 10:21:53 2016 (r301499) @@ -103,7 +103,9 @@ # This is included so CC is set to ccache for -V, and COMPILER_TYPE/VERSION # can be cached for sub-makes. +.if ${MAKE_VERSION} >= 20140620 .include <bsd.compiler.mk> +.endif # Note: we use this awkward construct to be compatible with FreeBSD's # old make used in 10.0 and 9.2 and earlier. @@ -162,17 +164,26 @@ _MAKEOBJDIRPREFIX!= /usr/bin/env -i PATH # We cannot blindly use a make which may not be the one we want # so be exlicit - until all choice is removed. WANT_MAKE= bmake +.if !empty(.MAKE.MODE:Mmeta) +# 20160604 - support missing-meta,missing-filemon and performance improvements +WANT_MAKE_VERSION= 20160604 +.else # 20160220 - support .dinclude for FAST_DEPEND. WANT_MAKE_VERSION= 20160220 +.endif MYMAKE= ${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}/${WANT_MAKE} .if defined(.PARSEDIR) HAVE_MAKE= bmake .else HAVE_MAKE= fmake .endif +.if ${HAVE_MAKE} != ${WANT_MAKE} || \ + (defined(WANT_MAKE_VERSION) && ${MAKE_VERSION} < ${WANT_MAKE_VERSION}) +NEED_MAKE_UPGRADE= t +.endif .if exists(${MYMAKE}) SUB_MAKE:= ${MYMAKE} -m ${.CURDIR}/share/mk -.elif ${WANT_MAKE} != ${HAVE_MAKE} +.elif defined(NEED_MAKE_UPGRADE) # It may not exist yet but we may cause it to. # In the case of fmake, upgrade_checks may cause a newer version to be built. SUB_MAKE= `test -x ${MYMAKE} && echo ${MYMAKE} || echo ${MAKE}` \ @@ -313,8 +324,7 @@ kernel: buildkernel installkernel # for building the world. # upgrade_checks: -.if ${HAVE_MAKE} != ${WANT_MAKE} || \ - (defined(WANT_MAKE_VERSION) && ${MAKE_VERSION} < ${WANT_MAKE_VERSION}) +.if defined(NEED_MAKE_UPGRADE) @${_+_}(cd ${.CURDIR} && ${MAKE} ${WANT_MAKE:S,^f,,}) .endif Modified: projects/vnet/Makefile.inc1 ============================================================================== --- projects/vnet/Makefile.inc1 Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/Makefile.inc1 Mon Jun 6 10:21:53 2016 (r301499) @@ -99,7 +99,7 @@ _expected_compiler_type= gcc .if ${_expected_compiler_type} == "clang" CROSS_COMPILER_FREEBSD_VERSION!= \ awk '$$2 == "FREEBSD_CC_VERSION" {printf("%d\n", $$3)}' \ - ${SRCDIR}/lib/clang/include/clang/Basic/Version.inc || echo unknown + ${SRCDIR}/lib/clang/freebsd_cc_version.h || echo unknown CROSS_COMPILER_VERSION!= \ awk '$$2 == "CLANG_VERSION" {split($$3, a, "."); print a[1] * 10000 + a[2] * 100 + a[3]}' \ ${SRCDIR}/lib/clang/include/clang/Basic/Version.inc || echo unknown @@ -118,9 +118,6 @@ CROSS_COMPILER_VERSION!= \ # Everything matches, disable the bootstrap compiler. MK_CLANG_BOOTSTRAP= no MK_GCC_BOOTSTRAP= no -CROSSENV+= COMPILER_VERSION=${COMPILER_VERSION} \ - COMPILER_TYPE=${COMPILER_TYPE} \ - COMPILER_FREEBSD_VERSION=${COMPILER_FREEBSD_VERSION} .if make(buildworld) .info SYSTEM_COMPILER: Determined that CC=${CC} matches the source tree. Not bootstrapping a cross-compiler. .endif @@ -128,6 +125,21 @@ CROSSENV+= COMPILER_VERSION=${COMPILER_V .endif # ${_expected_compiler_type} == ${COMPILER_TYPE} .endif # ${XCC:N${CCACHE_BIN}:M/*} +# For installworld need to ensure that the looked-up compiler metadata is +# passed along rather than trying to run cc from the restricted +# STRICTTMPPATH. +.if ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no" +.if !defined(X_COMPILER_TYPE) +CROSSENV+= COMPILER_VERSION=${COMPILER_VERSION} \ + COMPILER_TYPE=${COMPILER_TYPE} \ + COMPILER_FREEBSD_VERSION=${COMPILER_FREEBSD_VERSION} +.else +CROSSENV+= COMPILER_VERSION=${X_COMPILER_VERSION} \ + COMPILER_TYPE=${X_COMPILER_TYPE} \ + COMPILER_FREEBSD_VERSION=${X_COMPILER_FREEBSD_VERSION} +.endif +.endif + # Handle external binutils. .if defined(CROSS_TOOLCHAIN_PREFIX) CROSS_BINUTILS_PREFIX?=${CROSS_TOOLCHAIN_PREFIX} @@ -419,6 +431,9 @@ PACKAGE= kernel # BOOTSTRAPPING?= 0 +# Keep these in sync +MINIMUM_SUPPORTED_OSREL?= 900044 +MINIMUM_SUPPORTED_REL?= 9.1 # Common environment for world related stages CROSSENV+= MAKEOBJDIRPREFIX=${OBJTREE} \ @@ -1500,8 +1515,8 @@ _elftoolchain_libs= lib/libelf lib/libdw .endif legacy: .PHONY -.if ${BOOTSTRAPPING} < 800107 && ${BOOTSTRAPPING} != 0 - @echo "ERROR: Source upgrades from versions prior to 8.0 are not supported."; \ +.if ${BOOTSTRAPPING} < ${MINIMUM_SUPPORTED_OSREL} && ${BOOTSTRAPPING} != 0 + @echo "ERROR: Source upgrades from versions prior to ${MINIMUM_SUPPORTED_REL} are not supported."; \ false .endif .for _tool in tools/build ${_elftoolchain_libs} @@ -1509,8 +1524,9 @@ legacy: .PHONY cd ${.CURDIR}/${_tool}; \ ${MAKE} DIRPRFX=${_tool}/ obj; \ ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX}/legacy includes; \ - ${MAKE} DIRPRFX=${_tool}/ all; \ - ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX}/legacy install + ${MAKE} DIRPRFX=${_tool}/ MK_INCLUDES=no all; \ + ${MAKE} DIRPRFX=${_tool}/ MK_INCLUDES=no \ + DESTDIR=${MAKEOBJDIRPREFIX}/legacy install .endfor # Modified: projects/vnet/bin/sh/Makefile ============================================================================== --- projects/vnet/bin/sh/Makefile Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/bin/sh/Makefile Mon Jun 6 10:21:53 2016 (r301499) @@ -39,6 +39,7 @@ CLEANFILES+= ${GENSRCS} ${GENHDRS} build-tools: mknodes mksyntax .ORDER: builtins.c builtins.h +builtins.h: .NOMETA builtins.c builtins.h: mkbuiltins builtins.def sh ${.CURDIR}/mkbuiltins ${.CURDIR} @@ -51,10 +52,12 @@ mknodes: mknodes.o ${BUILD_TOOLS_META} mksyntax: mksyntax.o ${BUILD_TOOLS_META} .ORDER: nodes.c nodes.h +nodes.h: .NOMETA nodes.c nodes.h: mknodes nodetypes nodes.c.pat ${BTOOLSPATH:U.}/mknodes ${.CURDIR}/nodetypes ${.CURDIR}/nodes.c.pat .ORDER: syntax.c syntax.h +syntax.h: .NOMETA syntax.c syntax.h: mksyntax ${BTOOLSPATH:U.}/mksyntax Modified: projects/vnet/bin/sh/miscbltin.c ============================================================================== --- projects/vnet/bin/sh/miscbltin.c Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/bin/sh/miscbltin.c Mon Jun 6 10:21:53 2016 (r301499) @@ -406,7 +406,7 @@ static const struct limits limits[] = { { "swap limit", "kbytes", RLIMIT_SWAP, 1024, 'w' }, #endif #ifdef RLIMIT_SBSIZE - { "sbsize", "bytes", RLIMIT_SBSIZE, 1, 'b' }, + { "socket buffer size", "bytes", RLIMIT_SBSIZE, 1, 'b' }, #endif #ifdef RLIMIT_NPTS { "pseudo-terminals", (char *)0, RLIMIT_NPTS, 1, 'p' }, @@ -415,7 +415,7 @@ static const struct limits limits[] = { { "kqueues", (char *)0, RLIMIT_KQUEUES, 1, 'k' }, #endif #ifdef RLIMIT_UMTXP - { "umtxp", (char *)0, RLIMIT_UMTXP, 1, 'o' }, + { "umtx shared locks", (char *)0, RLIMIT_UMTXP, 1, 'o' }, #endif { (char *) 0, (char *)0, 0, 0, '\0' } }; Modified: projects/vnet/contrib/bmake/ChangeLog ============================================================================== --- projects/vnet/contrib/bmake/ChangeLog Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/ChangeLog Mon Jun 6 10:21:53 2016 (r301499) @@ -1,3 +1,26 @@ +2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> + + * Makefile (_MAKE_VERSION): 20160604 + Merge with NetBSD make, pick up + o meta.c: missing filemon data is only relevant if we read a + meta file. + Also do not return oodate for a missing metafile if gn->path + points to .CURDIR + +2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> + + * Makefile (_MAKE_VERSION): 20160602 + Merge with NetBSD make, pick up + o cached_realpath(): avoid hitting filesystem more than necessary. + o meta.c: refactor need_meta decision, add knobs for + missing meta file and filemon data wrt out-of-datedness. + +2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> + + * Makefile (_MAKE_VERSION): 20160528 + + * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION + 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160512 Modified: projects/vnet/contrib/bmake/Makefile ============================================================================== --- projects/vnet/contrib/bmake/Makefile Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/Makefile Mon Jun 6 10:21:53 2016 (r301499) @@ -1,7 +1,7 @@ -# $Id: Makefile,v 1.63 2016/05/12 20:34:46 sjg Exp $ +# $Id: Makefile,v 1.66 2016/06/04 22:21:15 sjg Exp $ # Base version on src date -_MAKE_VERSION= 20160512 +_MAKE_VERSION= 20160604 PROG= bmake Modified: projects/vnet/contrib/bmake/bmake.1 ============================================================================== --- projects/vnet/contrib/bmake/bmake.1 Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/bmake.1 Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.257 2016/05/10 23:45:45 sjg Exp $ +.\" $NetBSD: make.1,v 1.259 2016/06/03 07:07:37 wiz Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd May 10, 2016 +.Dd June 2, 2016 .Dt MAKE 1 .Os .Sh NAME @@ -846,7 +846,7 @@ Can affect the mode that .Nm runs in. It can contain a number of keywords: -.Bl -hang -width ignore-cmd +.Bl -hang -width missing-filemon=bf. .It Pa compat Like .Fl B , @@ -870,6 +870,17 @@ will not create .meta files in This can be overridden by setting .Va bf to a value which represents True. +.It Pa missing-meta= Ar bf +If +.Va bf +is True, then a missing .meta file makes the target out-of-date. +.It Pa missing-filemon= Ar bf +If +.Va bf +is True, then missing filemon data makes the target out-of-date. +.It Pa nofilemon +Do not use +.Xr filemon 4 . .It Pa env For debugging, it can be useful to include the environment in the .meta file. Modified: projects/vnet/contrib/bmake/bmake.cat1 ============================================================================== --- projects/vnet/contrib/bmake/bmake.cat1 Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/bmake.cat1 Mon Jun 6 10:21:53 2016 (r301499) @@ -531,37 +531,51 @@ VVAARRIIAABBLLEE AASSSSIIGG mode that bbmmaakkee runs in. It can contain a number of key- words: - _c_o_m_p_a_t Like --BB, puts bbmmaakkee into "compat" mode. + _c_o_m_p_a_t Like --BB, puts bbmmaakkee into "compat" + mode. - _m_e_t_a Puts bbmmaakkee into "meta" mode, where meta files - are created for each target to capture the - command run, the output generated and if - filemon(4) is available, the system calls - which are of interest to bbmmaakkee. The captured - output can be very useful when diagnosing - errors. - - _c_u_r_d_i_r_O_k_= _b_f Normally bbmmaakkee will not create .meta files - in `_._C_U_R_D_I_R'. This can be overridden by set- - ting _b_f to a value which represents True. - - _e_n_v For debugging, it can be useful to include - the environment in the .meta file. - - _v_e_r_b_o_s_e If in "meta" mode, print a clue about the - target being built. This is useful if the - build is otherwise running silently. The - message printed the value of: - _._M_A_K_E_._M_E_T_A_._P_R_E_F_I_X. - - _i_g_n_o_r_e_-_c_m_d Some makefiles have commands which are simply - not stable. This keyword causes them to be - ignored for determining whether a target is - out of date in "meta" mode. See also - ..NNOOMMEETTAA__CCMMPP. + _m_e_t_a Puts bbmmaakkee into "meta" mode, where + meta files are created for each tar- + get to capture the command run, the + output generated and if filemon(4) + is available, the system calls which + are of interest to bbmmaakkee. The cap- + tured output can be very useful when + diagnosing errors. + + _c_u_r_d_i_r_O_k_= _b_f Normally bbmmaakkee will not create .meta + files in `_._C_U_R_D_I_R'. This can be + overridden by setting _b_f to a value + which represents True. + + _m_i_s_s_i_n_g_-_m_e_t_a_= _b_f If _b_f is True, then a missing .meta + file makes the target out-of-date. + + _m_i_s_s_i_n_g_-_f_i_l_e_m_o_n_= _b_f If _b_f is True, then missing filemon + data makes the target out-of-date. + + _n_o_f_i_l_e_m_o_n Do not use filemon(4). + + _e_n_v For debugging, it can be useful to + include the environment in the .meta + file. + + _v_e_r_b_o_s_e If in "meta" mode, print a clue + about the target being built. This + is useful if the build is otherwise + running silently. The message + printed the value of: + _._M_A_K_E_._M_E_T_A_._P_R_E_F_I_X. + + _i_g_n_o_r_e_-_c_m_d Some makefiles have commands which + are simply not stable. This keyword + causes them to be ignored for deter- + mining whether a target is out of + date in "meta" mode. See also + ..NNOOMMEETTAA__CCMMPP. - _s_i_l_e_n_t_= _b_f If _b_f is True, when a .meta file is created, - mark the target ..SSIILLEENNTT. + _s_i_l_e_n_t_= _b_f If _b_f is True, when a .meta file is + created, mark the target ..SSIILLEENNTT. _._M_A_K_E_._M_E_T_A_._B_A_I_L_I_W_I_C_K In "meta" mode, provides a list of prefixes which match @@ -1475,4 +1489,4 @@ BBUUGGSS There is no way of escaping a space character in a filename. -NetBSD 5.1 May 10, 2016 NetBSD 5.1 +NetBSD 5.1 June 2, 2016 NetBSD 5.1 Modified: projects/vnet/contrib/bmake/boot-strap ============================================================================== --- projects/vnet/contrib/bmake/boot-strap Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/boot-strap Mon Jun 6 10:21:53 2016 (r301499) @@ -111,7 +111,7 @@ # Simon J. Gerraty <sjg@crufty.net> # RCSid: -# $Id: boot-strap,v 1.48 2015/10/25 05:20:48 sjg Exp $ +# $Id: boot-strap,v 1.49 2016/05/29 00:09:14 sjg Exp $ # # @(#) Copyright (c) 2001 Simon J. Gerraty # @@ -451,7 +451,7 @@ op_all() { op_install else op_test - MAKE_VERSION=`sed -n '/^MAKE_VERSION/ { s,.*= *,,;p; }' $srcdir/Makefile` + MAKE_VERSION=`sed -n '/^_MAKE_VERSION/ { s,.*= *,,;p; }' $srcdir/Makefile` echo You can install by running: echo echo $0 $cmd_args op=install Modified: projects/vnet/contrib/bmake/main.c ============================================================================== --- projects/vnet/contrib/bmake/main.c Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/main.c Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.244 2016/04/05 04:25:43 sjg Exp $ */ +/* $NetBSD: main.c,v 1.245 2016/06/03 01:21:59 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -69,7 +69,7 @@ */ #ifndef MAKE_NATIVE -static char rcsid[] = "$NetBSD: main.c,v 1.244 2016/04/05 04:25:43 sjg Exp $"; +static char rcsid[] = "$NetBSD: main.c,v 1.245 2016/06/03 01:21:59 sjg Exp $"; #else #include <sys/cdefs.h> #ifndef lint @@ -81,7 +81,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19 #if 0 static char sccsid[] = "@(#)main.c 8.3 (Berkeley) 3/19/94"; #else -__RCSID("$NetBSD: main.c,v 1.244 2016/04/05 04:25:43 sjg Exp $"); +__RCSID("$NetBSD: main.c,v 1.245 2016/06/03 01:21:59 sjg Exp $"); #endif #endif /* not lint */ #endif @@ -1014,7 +1014,7 @@ main(int argc, char **argv) /* * A relative path, canonicalize it. */ - p1 = realpath(argv[0], mdpath); + p1 = cached_realpath(argv[0], mdpath); if (!p1 || *p1 != '/' || stat(p1, &sb) < 0) { p1 = argv[0]; /* realpath failed */ } @@ -1884,6 +1884,40 @@ usage(void) } +/* + * realpath(3) can get expensive, cache results... + */ +char * +cached_realpath(const char *pathname, char *resolved) +{ + static GNode *cache; + char *rp, *cp; + + if (!pathname || !pathname[0]) + return NULL; + + if (!cache) { + cache = Targ_NewGN("Realpath"); +#ifndef DEBUG_REALPATH_CACHE + cache->flags = INTERNAL; +#endif + } + + rp = Var_Value(pathname, cache, &cp); + if (rp) { + /* a hit */ + if (resolved) + strlcpy(resolved, rp, MAXPATHLEN); + else + resolved = bmake_strdup(rp); + } else { + if ((rp = realpath(pathname, resolved))) { + Var_Set(pathname, rp, cache, 0); + } + } + return rp ? resolved : NULL; +} + int PrintAddr(void *a, void *b) { Modified: projects/vnet/contrib/bmake/make-bootstrap.sh.in ============================================================================== --- projects/vnet/contrib/bmake/make-bootstrap.sh.in Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/make-bootstrap.sh.in Mon Jun 6 10:21:53 2016 (r301499) @@ -13,7 +13,7 @@ esac CC="@CC@" CFLAGS="@CFLAGS@ -I. -I${srcdir} @DEFS@ @CPPFLAGS@ -DMAKE_NATIVE ${XDEFS} -DBMAKE_PATH_MAX=@bmake_path_max@" -MAKE_VERSION=`sed -n '/^MAKE_VERSION=/s,.*=[^0-9]*,,p' $srcdir/Makefile` +MAKE_VERSION=`sed -n '/^_MAKE_VERSION=/s,.*=[^0-9]*,,p' $srcdir/Makefile` MDEFS="-DMAKE_VERSION=\"$MAKE_VERSION\" \ -D@force_machine@MACHINE=\"@machine@\" -DMACHINE_ARCH=\"@machine_arch@\" \ Modified: projects/vnet/contrib/bmake/make.1 ============================================================================== --- projects/vnet/contrib/bmake/make.1 Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/make.1 Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -.\" $NetBSD: make.1,v 1.257 2016/05/10 23:45:45 sjg Exp $ +.\" $NetBSD: make.1,v 1.259 2016/06/03 07:07:37 wiz Exp $ .\" .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 .\" -.Dd May 10, 2016 +.Dd June 2, 2016 .Dt MAKE 1 .Os .Sh NAME @@ -857,7 +857,7 @@ Can affect the mode that .Nm runs in. It can contain a number of keywords: -.Bl -hang -width ignore-cmd +.Bl -hang -width missing-filemon=bf. .It Pa compat Like .Fl B , @@ -881,6 +881,17 @@ will not create .meta files in This can be overridden by setting .Va bf to a value which represents True. +.It Pa missing-meta= Ar bf +If +.Va bf +is True, then a missing .meta file makes the target out-of-date. +.It Pa missing-filemon= Ar bf +If +.Va bf +is True, then missing filemon data makes the target out-of-date. +.It Pa nofilemon +Do not use +.Xr filemon 4 . .It Pa env For debugging, it can be useful to include the environment in the .meta file. Modified: projects/vnet/contrib/bmake/make.h ============================================================================== --- projects/vnet/contrib/bmake/make.h Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/make.h Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -/* $NetBSD: make.h,v 1.98 2016/02/18 18:29:14 christos Exp $ */ +/* $NetBSD: make.h,v 1.99 2016/06/03 01:21:59 sjg Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -199,6 +199,7 @@ typedef struct GNode { #define DONE_ALLSRC 0x40 /* We do it once only */ #define CYCLE 0x1000 /* Used by MakePrintStatus */ #define DONECYCLE 0x2000 /* Used by MakePrintStatus */ +#define INTERNAL 0x4000 /* Internal use only */ enum enum_made { UNMADE, DEFERRED, REQUESTED, BEINGMADE, MADE, UPTODATE, ERROR, ABORTED Modified: projects/vnet/contrib/bmake/meta.c ============================================================================== --- projects/vnet/contrib/bmake/meta.c Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/meta.c Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -/* $NetBSD: meta.c,v 1.57 2016/05/12 20:28:34 sjg Exp $ */ +/* $NetBSD: meta.c,v 1.60 2016/06/04 22:17:14 sjg Exp $ */ /* * Implement 'meta' mode. @@ -73,6 +73,8 @@ static char *metaIgnorePathsStr; /* stri Boolean useMeta = FALSE; static Boolean useFilemon = FALSE; static Boolean writeMeta = FALSE; +static Boolean metaMissing = FALSE; /* oodate if missing */ +static Boolean filemonMissing = FALSE; /* oodate if missing */ static Boolean metaEnv = FALSE; /* don't save env unless asked */ static Boolean metaVerbose = FALSE; static Boolean metaIgnoreCMDs = FALSE; /* ignore CMDs in .meta files */ @@ -237,24 +239,13 @@ eat_dots(char *buf, size_t bufsz, int do static char * meta_name(struct GNode *gn, char *mname, size_t mnamelen, const char *dname, - const char *tname) + const char *tname, + const char *cwd) { char buf[MAXPATHLEN]; - char cwd[MAXPATHLEN]; char *rp; char *cp; char *tp; - char *p[4]; /* >= number of possible uses */ - int i; - - i = 0; - if (!dname) - dname = Var_Value(".OBJDIR", gn, &p[i++]); - if (!tname) - tname = Var_Value(TARGET, gn, &p[i++]); - - if (realpath(dname, cwd)) - dname = cwd; /* * Weed out relative paths from the target file name. @@ -264,7 +255,7 @@ meta_name(struct GNode *gn, char *mname, * basename as given to us. */ if ((cp = strrchr(tname, '/'))) { - if (realpath(tname, buf)) { + if (cached_realpath(tname, buf)) { if ((rp = strrchr(buf, '/'))) { rp++; cp++; @@ -309,9 +300,6 @@ meta_name(struct GNode *gn, char *mname, } } free(tp); - for (i--; i >= 0; i--) { - free(p[i]); - } return (mname); } @@ -391,29 +379,26 @@ printCMD(void *cmdp, void *mfpp) */ #define SKIP_META_TYPE(_type) do { \ if ((gn->type & __CONCAT(OP_, _type))) { \ - if (DEBUG(META)) { \ + if (verbose) { \ fprintf(debug_file, "Skipping meta for %s: .%s\n", \ gn->name, __STRING(_type)); \ } \ - return (NULL); \ + return FALSE; \ } \ } while (0) -static FILE * -meta_create(BuildMon *pbm, GNode *gn) + +/* + * Do we need/want a .meta file ? + */ +static Boolean +meta_needed(GNode *gn, const char *dname, const char *tname, + char *objdir, int verbose) { - meta_file_t mf; - char buf[MAXPATHLEN]; - char objdir[MAXPATHLEN]; - char **ptr; - const char *dname; - const char *tname; - char *fname; - const char *cp; - char *p[4]; /* >= possible uses */ - int i; struct stat fs; + if (verbose) + verbose = DEBUG(META); /* This may be a phony node which we don't want meta data for... */ /* Skip .meta for .BEGIN, .END, .ERROR etc as well. */ @@ -426,48 +411,70 @@ meta_create(BuildMon *pbm, GNode *gn) SKIP_META_TYPE(MAKE); } - mf.fp = NULL; - - i = 0; - - dname = Var_Value(".OBJDIR", gn, &p[i++]); - tname = Var_Value(TARGET, gn, &p[i++]); - - /* The object directory may not exist. Check it.. */ - if (stat(dname, &fs) != 0) { - if (DEBUG(META)) - fprintf(debug_file, "Skipping meta for %s: no .OBJDIR\n", - gn->name); - goto out; - } /* Check if there are no commands to execute. */ if (Lst_IsEmpty(gn->commands)) { - if (DEBUG(META)) + if (verbose) fprintf(debug_file, "Skipping meta for %s: no commands\n", gn->name); - goto out; + return FALSE; + } + if ((gn->type & (OP_META|OP_SUBMAKE)) == OP_SUBMAKE) { + /* OP_SUBMAKE is a bit too aggressive */ + if (Lst_ForEach(gn->commands, is_submake, gn)) { + if (DEBUG(META)) + fprintf(debug_file, "Skipping meta for %s: .SUBMAKE\n", + gn->name); + return FALSE; + } + } + + /* The object directory may not exist. Check it.. */ + if (stat(dname, &fs) != 0) { + if (verbose) + fprintf(debug_file, "Skipping meta for %s: no .OBJDIR\n", + gn->name); + return FALSE; } /* make sure these are canonical */ - if (realpath(dname, objdir)) + if (cached_realpath(dname, objdir)) dname = objdir; /* If we aren't in the object directory, don't create a meta file. */ if (!metaCurdirOk && strcmp(curdir, dname) == 0) { - if (DEBUG(META)) + if (verbose) fprintf(debug_file, "Skipping meta for %s: .OBJDIR == .CURDIR\n", gn->name); - goto out; - } - if (!(gn->type & OP_META)) { - /* We do not generate .meta files for sub-makes */ - if (Lst_ForEach(gn->commands, is_submake, gn)) { - if (DEBUG(META)) - fprintf(debug_file, "Skipping meta for %s: .MAKE\n", - gn->name); - goto out; - } + return FALSE; } + return TRUE; +} + + +static FILE * +meta_create(BuildMon *pbm, GNode *gn) +{ + meta_file_t mf; + char buf[MAXPATHLEN]; + char objdir[MAXPATHLEN]; + char **ptr; + const char *dname; + const char *tname; + char *fname; + const char *cp; + char *p[4]; /* >= possible uses */ + int i; + + mf.fp = NULL; + i = 0; + + dname = Var_Value(".OBJDIR", gn, &p[i++]); + tname = Var_Value(TARGET, gn, &p[i++]); + + /* if this succeeds objdir is realpath of dname */ + if (!meta_needed(gn, dname, tname, objdir, TRUE)) + goto out; + dname = objdir; if (metaVerbose) { char *mp; @@ -492,7 +499,7 @@ meta_create(BuildMon *pbm, GNode *gn) goto out; fname = meta_name(gn, pbm->meta_fname, sizeof(pbm->meta_fname), - dname, tname); + dname, tname, objdir); #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -561,6 +568,10 @@ meta_init(void) } +#define get_mode_bf(bf, token) \ + if ((cp = strstr(make_mode, token))) \ + bf = boolValue(&cp[sizeof(token) - 1]) + /* * Initialization we need after reading makefiles. */ @@ -583,17 +594,13 @@ meta_mode_init(const char *make_mode) writeMeta = FALSE; if (strstr(make_mode, "nofilemon")) useFilemon = FALSE; - if ((cp = strstr(make_mode, "curdirok="))) { - metaCurdirOk = boolValue(&cp[9]); - } - if ((cp = strstr(make_mode, "silent="))) { - metaSilent = boolValue(&cp[7]); - } if (strstr(make_mode, "ignore-cmd")) metaIgnoreCMDs = TRUE; - /* for backwards compatability */ - Var_Set(".MAKE.META_CREATED", "${.MAKE.META.CREATED}", VAR_GLOBAL, 0); - Var_Set(".MAKE.META_FILES", "${.MAKE.META.FILES}", VAR_GLOBAL, 0); + if (useFilemon) + get_mode_bf(filemonMissing, "missing-filemon="); + get_mode_bf(metaCurdirOk, "curdirok="); + get_mode_bf(metaMissing, "missing-meta="); + get_mode_bf(metaSilent, "silent="); } if (metaVerbose && !Var_Exists(MAKE_META_PREFIX, VAR_GLOBAL)) { /* @@ -921,6 +928,8 @@ meta_oodate(GNode *gn, Boolean oodate) char fname1[MAXPATHLEN]; char fname2[MAXPATHLEN]; char fname3[MAXPATHLEN]; + const char *dname; + const char *tname; char *p; char *cp; char *link_src; @@ -930,10 +939,23 @@ meta_oodate(GNode *gn, Boolean oodate) FILE *fp; Boolean needOODATE = FALSE; Lst missingFiles; - + char *pa[4]; /* >= possible uses */ + int i; + int have_filemon = FALSE; + if (oodate) return oodate; /* we're done */ + i = 0; + + dname = Var_Value(".OBJDIR", gn, &pa[i++]); + tname = Var_Value(TARGET, gn, &pa[i++]); + + /* if this succeeds fname3 is realpath of dname */ + if (!meta_needed(gn, dname, tname, fname3, FALSE)) + goto oodate_out; + dname = fname3; + missingFiles = Lst_Init(FALSE); /* @@ -944,7 +966,7 @@ meta_oodate(GNode *gn, Boolean oodate) */ Make_DoAllVar(gn); - meta_name(gn, fname, sizeof(fname), NULL, NULL); + meta_name(gn, fname, sizeof(fname), dname, tname, dname); #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -957,7 +979,6 @@ meta_oodate(GNode *gn, Boolean oodate) int lineno = 0; int lastpid = 0; int pid; - int f = 0; int x; LstNode ln; struct stat fs; @@ -996,13 +1017,13 @@ meta_oodate(GNode *gn, Boolean oodate) link_src = NULL; move_target = NULL; /* Find the start of the build monitor section. */ - if (!f) { + if (!have_filemon) { if (strncmp(buf, "-- filemon", 10) == 0) { - f = 1; + have_filemon = TRUE; continue; } if (strncmp(buf, "# buildmon", 10) == 0) { - f = 1; + have_filemon = TRUE; continue; } } @@ -1014,7 +1035,7 @@ meta_oodate(GNode *gn, Boolean oodate) fprintf(debug_file, "%s: %d: %s\n", fname, lineno, buf); #endif strsep(&p, " "); - if (f) { + if (have_filemon) { /* * We are in the 'filemon' output section. * Each record from filemon follows the general form: @@ -1239,7 +1260,7 @@ meta_oodate(GNode *gn, Boolean oodate) * they are _expected_ to change. */ if (*p == '/') { - realpath(p, fname1); /* clean it up */ + cached_realpath(p, fname1); /* clean it up */ if (Lst_ForEach(metaIgnorePaths, prefix_match, fname1)) { #ifdef DEBUG_META_MODE if (DEBUG(META)) @@ -1324,7 +1345,7 @@ meta_oodate(GNode *gn, Boolean oodate) oodate = TRUE; } else if (S_ISDIR(fs.st_mode)) { /* Update the latest directory. */ - realpath(p, latestdir); + cached_realpath(p, latestdir); } } else if (errno == ENOENT && *p == '/' && strncmp(p, cwd, cwdlen) != 0) { @@ -1434,12 +1455,27 @@ meta_oodate(GNode *gn, Boolean oodate) fname, (char *)Lst_Datum(Lst_First(missingFiles))); oodate = TRUE; } - } else { - if ((gn->type & OP_META)) { + if (!oodate && !have_filemon && filemonMissing) { if (DEBUG(META)) - fprintf(debug_file, "%s: required but missing\n", fname); + fprintf(debug_file, "%s: missing filemon data\n", fname); oodate = TRUE; } + } else { + if (writeMeta && metaMissing) { + cp = NULL; + + /* if target is in .CURDIR we do not need a meta file */ + if (gn->path && (cp = strrchr(gn->path, '/')) && cp > gn->path) { + if (strncmp(curdir, gn->path, (cp - gn->path)) != 0) { + cp = NULL; /* not in .CURDIR */ + } + } + if (!cp) { + if (DEBUG(META)) + fprintf(debug_file, "%s: required but missing\n", fname); + oodate = TRUE; + } + } } Lst_Destroy(missingFiles, (FreeProc *)free); @@ -1454,6 +1490,11 @@ meta_oodate(GNode *gn, Boolean oodate) Var_Set(OODATE, Var_Value(ALLSRC, gn, &cp), gn, 0); free(cp); } + + oodate_out: + for (i--; i >= 0; i--) { + free(pa[i]); + } return oodate; } Modified: projects/vnet/contrib/bmake/mk/ChangeLog ============================================================================== --- projects/vnet/contrib/bmake/mk/ChangeLog Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/ChangeLog Mon Jun 6 10:21:53 2016 (r301499) @@ -1,3 +1,16 @@ +2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> + + * install-mk (MK_VERSION): 20160602 + * meta.autodep.mk: when passing META_FILES to gendirdeps.mk + do not apply :T to META_XTRAS + patch from Bryan Drewery at FreeBSD.org. + +2016-05-30 Simon J. Gerraty <sjg@bad.crufty.net> + + * install-mk (MK_VERSION): 20160530 + * meta.stage.mk: we assume ${CLEANFILES} gets .NOPATH + make it so. + 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> * install-mk (MK_VERSION): 20160512 Modified: projects/vnet/contrib/bmake/mk/dpadd.mk ============================================================================== --- projects/vnet/contrib/bmake/mk/dpadd.mk Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/dpadd.mk Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -# $Id: dpadd.mk,v 1.21 2016/05/18 20:54:55 sjg Exp $ +# $Id: dpadd.mk,v 1.22 2016/05/31 23:30:59 sjg Exp $ # # @(#) Copyright (c) 2004, Simon J. Gerraty # @@ -100,7 +100,7 @@ __dpadd_libs := ${DPADD:M*/lib*} # Order -L's to search ours first. # Avoids picking up old versions already installed. -__dpadd_libdirs := ${__dpadd_libs}:R:H:S/^/-L/g:O:u:N-L} +__dpadd_libdirs := ${__dpadd_libs:R:H:S/^/-L/g:O:u:N-L} LDADD += ${__dpadd_libdirs:M-L${OBJTOP}/*} LDADD += ${__dpadd_libdirs:N-L${OBJTOP}/*:N-L${HOST_LIBDIR:U/usr/lib}} .if defined(HOST_LIBDIR) && ${HOST_LIBDIR} != "/usr/lib" Modified: projects/vnet/contrib/bmake/mk/install-mk ============================================================================== --- projects/vnet/contrib/bmake/mk/install-mk Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/install-mk Mon Jun 6 10:21:53 2016 (r301499) @@ -55,7 +55,7 @@ # Simon J. Gerraty <sjg@crufty.net> # RCSid: -# $Id: install-mk,v 1.126 2016/05/18 20:54:55 sjg Exp $ +# $Id: install-mk,v 1.128 2016/06/03 17:22:32 sjg Exp $ # # @(#) Copyright (c) 1994 Simon J. Gerraty # @@ -70,7 +70,7 @@ # sjg@crufty.net # -MK_VERSION=20160512 +MK_VERSION=20160602 OWNER= GROUP= MODE=444 Modified: projects/vnet/contrib/bmake/mk/meta.autodep.mk ============================================================================== --- projects/vnet/contrib/bmake/mk/meta.autodep.mk Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/meta.autodep.mk Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -# $Id: meta.autodep.mk,v 1.44 2016/04/07 17:00:38 sjg Exp $ +# $Id: meta.autodep.mk,v 1.45 2016/06/03 17:22:32 sjg Exp $ # # @(#) Copyright (c) 2010, Simon J. Gerraty @@ -266,7 +266,7 @@ ${_DEPENDFILE}: ${_depend} ${.PARSEDIR}/ DPADD='${FORCE_DPADD:O:u}' ${_gendirdeps_mutex} \ MAKESYSPATH=${_makesyspath} \ ${.MAKE} -f gendirdeps.mk RELDIR=${RELDIR} _DEPENDFILE=${_DEPENDFILE} \ - META_FILES='${META_XTRAS:T:O:u} ${META_FILES:T:O:u:${META_FILE_FILTER:ts:}}') + META_FILES='${META_XTRAS:O:u} ${META_FILES:T:O:u:${META_FILE_FILTER:ts:}}') @test -s $@ && touch $@; : .endif Modified: projects/vnet/contrib/bmake/mk/meta.stage.mk ============================================================================== --- projects/vnet/contrib/bmake/mk/meta.stage.mk Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/mk/meta.stage.mk Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -# $Id: meta.stage.mk,v 1.44 2016/03/16 18:21:23 sjg Exp $ +# $Id: meta.stage.mk,v 1.45 2016/05/26 03:59:09 sjg Exp $ # # @(#) Copyright (c) 2011, Simon J. Gerraty # @@ -270,6 +270,8 @@ beforeinstall: .dirdep .NOPATH: ${STAGE_FILES} .if !empty(STAGE_TARGETS) +.NOPATH: ${CLEANFILES} + MK_STALE_STAGED?= no .if ${MK_STALE_STAGED} == "yes" all: stale_staged Modified: projects/vnet/contrib/bmake/nonints.h ============================================================================== --- projects/vnet/contrib/bmake/nonints.h Mon Jun 6 10:13:48 2016 (r301498) +++ projects/vnet/contrib/bmake/nonints.h Mon Jun 6 10:21:53 2016 (r301499) @@ -1,4 +1,4 @@ -/* $NetBSD: nonints.h,v 1.72 2016/02/18 20:25:08 sjg Exp $ */ +/* $NetBSD: nonints.h,v 1.73 2016/06/03 01:21:59 sjg Exp $ */ /*- * Copyright (c) 1988, 1989, 1990, 1993 @@ -122,6 +122,7 @@ void execError(const char *, const char char *getTmpdir(void); Boolean s2Boolean(const char *, Boolean); Boolean getBoolean(const char *, Boolean); +char *cached_realpath(const char *, char *); /* parse.c */ void Parse_Error(int, const char *, ...) MAKE_ATTR_PRINTFLIKE(2, 3); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Mon Jun 6 14:05:55 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4685B6BF3E for <svn-src-projects@mailman.ysv.freebsd.org>; Mon, 6 Jun 2016 14:05:55 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id 9632A1251; Mon, 6 Jun 2016 14:05:55 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u56E5sDJ059328; Mon, 6 Jun 2016 14:05:54 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u56E5sXf059326; Mon, 6 Jun 2016 14:05:54 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606061405.u56E5sXf059326@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Mon, 6 Jun 2016 14:05:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301509 - projects/vnet/sys/net X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 06 Jun 2016 14:05:55 -0000 Author: bz Date: Mon Jun 6 14:05:54 2016 New Revision: 301509 URL: https://svnweb.freebsd.org/changeset/base/301509 Log: MfH @r301508 Get some more "noise" out of the diff. There should be more though. Not sure why the merge did not pick this up. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/sys/net/if.c projects/vnet/sys/net/pfil.c Directory Properties: projects/vnet/ (props changed) Modified: projects/vnet/sys/net/if.c ============================================================================== --- projects/vnet/sys/net/if.c Mon Jun 6 14:01:09 2016 (r301508) +++ projects/vnet/sys/net/if.c Mon Jun 6 14:05:54 2016 (r301509) @@ -848,7 +848,7 @@ if_purgeaddrs(struct ifnet *ifp) { struct ifaddr *ifa, *next; - /* XXX IF_ADDR_R/WLOCK */ + /* XXX cannot hold IF_ADDR_WLOCK over called functions. */ TAILQ_FOREACH_SAFE(ifa, &ifp->if_addrhead, ifa_link, next) { if (ifa->ifa_addr->sa_family == AF_LINK) continue; Modified: projects/vnet/sys/net/pfil.c ============================================================================== --- projects/vnet/sys/net/pfil.c Mon Jun 6 14:01:09 2016 (r301508) +++ projects/vnet/sys/net/pfil.c Mon Jun 6 14:05:54 2016 (r301509) @@ -364,7 +364,7 @@ pfil_chain_remove(pfil_chain_t *chain, p * course). */ static void -vnet_pfil_init(const void *unused) +vnet_pfil_init(const void *unused __unused) { LIST_INIT(&V_pfil_head_list); @@ -375,7 +375,7 @@ vnet_pfil_init(const void *unused) * Called for the removal of each instance. */ static void -vnet_pfil_uninit(const void *unused) +vnet_pfil_uninit(const void *unused __unused) { VNET_ASSERT(LIST_EMPTY(&V_pfil_head_list), From owner-svn-src-projects@freebsd.org Mon Jun 6 14:24:03 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 04B72B6D4D1 for <svn-src-projects@mailman.ysv.freebsd.org>; Mon, 6 Jun 2016 14:24:03 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id C8BBB1086; Mon, 6 Jun 2016 14:24:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u56EO128067055; Mon, 6 Jun 2016 14:24:01 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u56EO1Ol067054; Mon, 6 Jun 2016 14:24:01 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606061424.u56EO1Ol067054@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Mon, 6 Jun 2016 14:24:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301510 - projects/vnet/sys/net X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 06 Jun 2016 14:24:03 -0000 Author: bz Date: Mon Jun 6 14:24:01 2016 New Revision: 301510 URL: https://svnweb.freebsd.org/changeset/base/301510 Log: Revert some local debugging which was not merged to HEAD. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/sys/net/netisr.c Modified: projects/vnet/sys/net/netisr.c ============================================================================== --- projects/vnet/sys/net/netisr.c Mon Jun 6 14:05:54 2016 (r301509) +++ projects/vnet/sys/net/netisr.c Mon Jun 6 14:24:01 2016 (r301510) @@ -861,9 +861,6 @@ netisr_process_workstream_proto(struct n struct netisr_work local_npw, *npwp; u_int handled; struct mbuf *m; -#ifdef INVARIANTS - u_int b, f; -#endif NETISR_LOCK_ASSERT(); NWS_LOCK_ASSERT(nwsp); @@ -877,10 +874,6 @@ netisr_process_workstream_proto(struct n if (npwp->nw_len == 0) return (0); -#ifdef INVARIANTS - b = npwp->nw_len; - f = 0; -#endif /* * Move the global work queue to a thread-local work queue. * @@ -901,7 +894,6 @@ netisr_process_workstream_proto(struct n if (local_npw.nw_head == NULL) local_npw.nw_tail = NULL; local_npw.nw_len--; - f++; VNET_ASSERT(m->m_pkthdr.rcvif != NULL, ("%s:%d rcvif == NULL: m=%p", __func__, __LINE__, m)); CURVNET_SET(m->m_pkthdr.rcvif->if_vnet); @@ -909,8 +901,7 @@ netisr_process_workstream_proto(struct n CURVNET_RESTORE(); } KASSERT(local_npw.nw_len == 0, - ("%s(%u): len %u b %u f %u", __func__, proto, local_npw.nw_len, - b, f)); + ("%s(%u): len %u", __func__, proto, local_npw.nw_len)); if (netisr_proto[proto].np_drainedcpu) netisr_proto[proto].np_drainedcpu(nwsp->nws_cpu); NWS_LOCK(nwsp); From owner-svn-src-projects@freebsd.org Mon Jun 6 20:38:36 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2210FB6D78F for <svn-src-projects@mailman.ysv.freebsd.org>; Mon, 6 Jun 2016 20:38:36 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id E70FF16A7; Mon, 6 Jun 2016 20:38:35 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u56KcZU7007760; Mon, 6 Jun 2016 20:38:35 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u56KcZrw007759; Mon, 6 Jun 2016 20:38:35 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606062038.u56KcZrw007759@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Mon, 6 Jun 2016 20:38:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301519 - projects/vnet/sys/net X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 06 Jun 2016 20:38:36 -0000 Author: bz Date: Mon Jun 6 20:38:34 2016 New Revision: 301519 URL: https://svnweb.freebsd.org/changeset/base/301519 Log: Revert the VNET_ASSERT to a KASSERT to remove noise from the diff and we do want the assertion also in case VIMAGE is not compiled in. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/sys/net/pfil.c Modified: projects/vnet/sys/net/pfil.c ============================================================================== --- projects/vnet/sys/net/pfil.c Mon Jun 6 20:28:53 2016 (r301518) +++ projects/vnet/sys/net/pfil.c Mon Jun 6 20:38:34 2016 (r301519) @@ -378,7 +378,7 @@ static void vnet_pfil_uninit(const void *unused __unused) { - VNET_ASSERT(LIST_EMPTY(&V_pfil_head_list), + KASSERT(LIST_EMPTY(&V_pfil_head_list), ("%s: pfil_head_list %p not empty", __func__, &V_pfil_head_list)); PFIL_LOCK_DESTROY_REAL(&V_pfil_lock); } From owner-svn-src-projects@freebsd.org Mon Jun 6 20:42:55 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 868C1B6D91C for <svn-src-projects@mailman.ysv.freebsd.org>; Mon, 6 Jun 2016 20:42:55 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id 4F3EA1BBF; Mon, 6 Jun 2016 20:42:55 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u56KgsPv011192; Mon, 6 Jun 2016 20:42:54 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u56KgsaS011191; Mon, 6 Jun 2016 20:42:54 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606062042.u56KgsaS011191@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Mon, 6 Jun 2016 20:42:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301521 - projects/vnet/sys/net X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 06 Jun 2016 20:42:55 -0000 Author: bz Date: Mon Jun 6 20:42:54 2016 New Revision: 301521 URL: https://svnweb.freebsd.org/changeset/base/301521 Log: Re-add two whitespace lines to get the diff clean to head. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/sys/net/if_ethersubr.c Modified: projects/vnet/sys/net/if_ethersubr.c ============================================================================== --- projects/vnet/sys/net/if_ethersubr.c Mon Jun 6 20:42:46 2016 (r301520) +++ projects/vnet/sys/net/if_ethersubr.c Mon Jun 6 20:42:54 2016 (r301521) @@ -732,6 +732,8 @@ VNET_SYSUNINIT(vnet_ether_uninit, SI_SUB vnet_ether_destroy, NULL); #endif + + static void ether_input(struct ifnet *ifp, struct mbuf *m) { From owner-svn-src-projects@freebsd.org Mon Jun 6 21:04:32 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 45F3DB6DC98 for <svn-src-projects@mailman.ysv.freebsd.org>; Mon, 6 Jun 2016 21:04:32 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id 0A3041481; Mon, 6 Jun 2016 21:04:31 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u56L4VKN018818; Mon, 6 Jun 2016 21:04:31 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u56L4UUf018806; Mon, 6 Jun 2016 21:04:30 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606062104.u56L4UUf018806@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Mon, 6 Jun 2016 21:04:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301523 - in projects/vnet: etc/defaults libexec/ftpd share/man/man4 sys/dev/acpica sys/dev/cxgbe sys/dev/xen/netfront sys/kern sys/xen tools/tools/cxgbetool usr.bin/indent X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 06 Jun 2016 21:04:32 -0000 Author: bz Date: Mon Jun 6 21:04:29 2016 New Revision: 301523 URL: https://svnweb.freebsd.org/changeset/base/301523 Log: MfH After upstreaming more ddb bits and removing some whitespace noise from the diff. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/etc/defaults/rc.conf projects/vnet/libexec/ftpd/blacklist.c projects/vnet/libexec/ftpd/ftpd.c projects/vnet/share/man/man4/ddb.4 projects/vnet/sys/dev/acpica/acpi_thermal.c projects/vnet/sys/dev/cxgbe/t4_ioctl.h projects/vnet/sys/dev/xen/netfront/netfront.c projects/vnet/sys/kern/kern_shutdown.c projects/vnet/sys/kern/kern_timeout.c projects/vnet/sys/xen/xen-os.h projects/vnet/tools/tools/cxgbetool/cxgbetool.c projects/vnet/usr.bin/indent/lexi.c Directory Properties: projects/vnet/ (props changed) Modified: projects/vnet/etc/defaults/rc.conf ============================================================================== --- projects/vnet/etc/defaults/rc.conf Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/etc/defaults/rc.conf Mon Jun 6 21:04:29 2016 (r301523) @@ -270,7 +270,7 @@ hastd_program="/sbin/hastd" # path to ha hastd_flags="" # Optional flags to hastd. ctld_enable="NO" # CAM Target Layer / iSCSI target daemon. local_unbound_enable="NO" # local caching resolver -blacklistd_enable="YES" # Run blacklistd daemon (YES/NO). +blacklistd_enable="NO" # Run blacklistd daemon (YES/NO). blacklistd_flags="" # Optional flags for blacklistd(8). # Modified: projects/vnet/libexec/ftpd/blacklist.c ============================================================================== --- projects/vnet/libexec/ftpd/blacklist.c Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/libexec/ftpd/blacklist.c Mon Jun 6 21:04:29 2016 (r301523) @@ -48,8 +48,6 @@ void blacklist_notify(int action, int fd, char *msg) { if (blstate == NULL) - blacklist_init(); - if (blstate == NULL) return; (void)blacklist_r(blstate, action, fd, msg); } Modified: projects/vnet/libexec/ftpd/ftpd.c ============================================================================== --- projects/vnet/libexec/ftpd/ftpd.c Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/libexec/ftpd/ftpd.c Mon Jun 6 21:04:29 2016 (r301523) @@ -268,7 +268,7 @@ int main(int argc, char *argv[], char **envp) { socklen_t addrlen; - int ch, on = 1, tos; + int ch, on = 1, tos, s = STDIN_FILENO; char *cp, line[LINE_MAX]; FILE *fd; char *bindname = NULL; @@ -504,8 +504,8 @@ main(int argc, char *argv[], char **envp switch (pid = fork()) { case 0: /* child */ - (void) dup2(fd, 0); - (void) dup2(fd, 1); + (void) dup2(fd, s); + (void) dup2(fd, STDOUT_FILENO); (void) close(fd); for (i = 1; i <= *ctl_sock; i++) close(ctl_sock[i]); @@ -522,7 +522,7 @@ main(int argc, char *argv[], char **envp } } else { addrlen = sizeof(his_addr); - if (getpeername(0, (struct sockaddr *)&his_addr, &addrlen) < 0) { + if (getpeername(s, (struct sockaddr *)&his_addr, &addrlen) < 0) { syslog(LOG_ERR, "getpeername (%s): %m",argv[0]); exit(1); } @@ -557,7 +557,7 @@ gotchild: (void)sigaction(SIGPIPE, &sa, NULL); addrlen = sizeof(ctrl_addr); - if (getsockname(0, (struct sockaddr *)&ctrl_addr, &addrlen) < 0) { + if (getsockname(s, (struct sockaddr *)&ctrl_addr, &addrlen) < 0) { syslog(LOG_ERR, "getsockname (%s): %m",argv[0]); exit(1); } @@ -570,7 +570,7 @@ gotchild: if (ctrl_addr.su_family == AF_INET) { tos = IPTOS_LOWDELAY; - if (setsockopt(0, IPPROTO_IP, IP_TOS, &tos, sizeof(int)) < 0) + if (setsockopt(s, IPPROTO_IP, IP_TOS, &tos, sizeof(int)) < 0) syslog(LOG_WARNING, "control setsockopt (IP_TOS): %m"); } #endif @@ -578,7 +578,7 @@ gotchild: * Disable Nagle on the control channel so that we don't have to wait * for peer's ACK before issuing our next reply. */ - if (setsockopt(0, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)) < 0) + if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)) < 0) syslog(LOG_WARNING, "control setsockopt (TCP_NODELAY): %m"); data_source.su_port = htons(ntohs(ctrl_addr.su_port) - 1); @@ -587,12 +587,12 @@ gotchild: /* Try to handle urgent data inline */ #ifdef SO_OOBINLINE - if (setsockopt(0, SOL_SOCKET, SO_OOBINLINE, &on, sizeof(on)) < 0) + if (setsockopt(s, SOL_SOCKET, SO_OOBINLINE, &on, sizeof(on)) < 0) syslog(LOG_WARNING, "control setsockopt (SO_OOBINLINE): %m"); #endif #ifdef F_SETOWN - if (fcntl(fileno(stdin), F_SETOWN, getpid()) == -1) + if (fcntl(s, F_SETOWN, getpid()) == -1) syslog(LOG_ERR, "fcntl F_SETOWN: %m"); #endif dolog((struct sockaddr *)&his_addr); @@ -1423,7 +1423,7 @@ skip: if (rval) { reply(530, "Login incorrect."); #ifdef USE_BLACKLIST - blacklist_notify(1, 0, "Login incorrect"); + blacklist_notify(1, STDIN_FILENO, "Login incorrect"); #endif if (logging) { syslog(LOG_NOTICE, @@ -1444,7 +1444,7 @@ skip: } #ifdef USE_BLACKLIST else { - blacklist_notify(0, 0, "Login successful"); + blacklist_notify(0, STDIN_FILENO, "Login successful"); } #endif } Modified: projects/vnet/share/man/man4/ddb.4 ============================================================================== --- projects/vnet/share/man/man4/ddb.4 Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/share/man/man4/ddb.4 Mon Jun 6 21:04:29 2016 (r301523) @@ -60,7 +60,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 18, 2016 +.Dd June 6, 2016 .Dt DDB 4 .Os .Sh NAME @@ -599,6 +599,13 @@ See the header file for more details on the exact meaning of the structure fields. .\" .Pp +.It Ic show Cm callout Ar addr +Show information about the callout structure +.Vt struct callout +present at +.Ar addr . +.\" +.Pp .It Ic show Cm cbstat Show brief information about the TTY subsystem. .\" @@ -834,6 +841,10 @@ option is specified the complete object is printed. .\" .Pp +.It Ic show Cm panic +Print the panic message if set. +.\" +.Pp .It Ic show Cm page Show statistics on VM pages. .\" Modified: projects/vnet/sys/dev/acpica/acpi_thermal.c ============================================================================== --- projects/vnet/sys/dev/acpica/acpi_thermal.c Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/sys/dev/acpica/acpi_thermal.c Mon Jun 6 21:04:29 2016 (r301523) @@ -311,19 +311,40 @@ acpi_tz_attach(device_t dev) "thermal sampling period for passive cooling"); /* - * Create thread to service all of the thermal zones. Register - * our power profile event handler. + * Register our power profile event handler. */ sc->tz_event = EVENTHANDLER_REGISTER(power_profile_change, acpi_tz_power_profile, sc, 0); - if (acpi_tz_proc == NULL) { - error = kproc_create(acpi_tz_thread, NULL, &acpi_tz_proc, - RFHIGHPID, 0, "acpi_thermal"); - if (error != 0) { - device_printf(sc->tz_dev, "could not create thread - %d", error); - goto out; - } - } + + /* + * Flag the event handler for a manual invocation by our timeout. + * We defer it like this so that the rest of the subsystem has time + * to come up. Don't bother evaluating/printing the temperature at + * this point; on many systems it'll be bogus until the EC is running. + */ + sc->tz_flags |= TZ_FLAG_GETPROFILE; + + return_VALUE (0); +} + +static void +acpi_tz_startup(void *arg __unused) +{ + struct acpi_tz_softc *sc; + device_t *devs; + int devcount, error, i; + + devclass_get_devices(acpi_tz_devclass, &devs, &devcount); + if (devcount == 0) + return; + + /* + * Create thread to service all of the thermal zones. + */ + error = kproc_create(acpi_tz_thread, NULL, &acpi_tz_proc, RFHIGHPID, 0, + "acpi_thermal"); + if (error != 0) + printf("acpi_tz: could not create thread - %d", error); /* * Create a thread to handle passive cooling for 1st zone which @@ -335,34 +356,22 @@ acpi_tz_attach(device_t dev) * given frequency whereas it's possible for different thermal * zones to specify independent settings for multiple CPUs. */ - if (acpi_tz_cooling_unit < 0 && acpi_tz_cooling_is_available(sc)) - sc->tz_cooling_enabled = TRUE; - if (sc->tz_cooling_enabled) { - error = acpi_tz_cooling_thread_start(sc); - if (error != 0) { - sc->tz_cooling_enabled = FALSE; - goto out; + for (i = 0; i < devcount; i++) { + sc = device_get_softc(devs[i]); + if (acpi_tz_cooling_is_available(sc)) { + sc->tz_cooling_enabled = TRUE; + error = acpi_tz_cooling_thread_start(sc); + if (error != 0) { + sc->tz_cooling_enabled = FALSE; + break; + } + acpi_tz_cooling_unit = device_get_unit(devs[i]); + break; } - acpi_tz_cooling_unit = device_get_unit(dev); - } - - /* - * Flag the event handler for a manual invocation by our timeout. - * We defer it like this so that the rest of the subsystem has time - * to come up. Don't bother evaluating/printing the temperature at - * this point; on many systems it'll be bogus until the EC is running. - */ - sc->tz_flags |= TZ_FLAG_GETPROFILE; - -out: - if (error != 0) { - EVENTHANDLER_DEREGISTER(power_profile_change, sc->tz_event); - AcpiRemoveNotifyHandler(sc->tz_handle, ACPI_DEVICE_NOTIFY, - acpi_tz_notify_handler); - sysctl_ctx_free(&sc->tz_sysctl_ctx); } - return_VALUE (error); + free(devs, M_TEMP); } +SYSINIT(acpi_tz, SI_SUB_KICK_SCHEDULER, SI_ORDER_ANY, acpi_tz_startup, NULL); /* * Parse the current state of this thermal zone and set up to use it. Modified: projects/vnet/sys/dev/cxgbe/t4_ioctl.h ============================================================================== --- projects/vnet/sys/dev/cxgbe/t4_ioctl.h Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/sys/dev/cxgbe/t4_ioctl.h Mon Jun 6 21:04:29 2016 (r301523) @@ -215,6 +215,20 @@ struct t4_filter { struct t4_filter_specification fs; }; +/* Tx Scheduling Class parameters */ +struct t4_sched_class_params { + int8_t level; /* scheduler hierarchy level */ + int8_t mode; /* per-class or per-flow */ + int8_t rateunit; /* bit or packet rate */ + int8_t ratemode; /* %port relative or kbps absolute */ + int8_t channel; /* scheduler channel [0..N] */ + int8_t cl; /* scheduler class [0..N] */ + int32_t minrate; /* minimum rate */ + int32_t maxrate; /* maximum rate */ + int16_t weight; /* percent weight */ + int16_t pktsize; /* average packet size */ +}; + /* * Support for "sched-class" command to allow a TX Scheduling Class to be * programmed with various parameters. @@ -226,19 +240,7 @@ struct t4_sched_params { struct { /* sub-command SCHED_CLASS_CONFIG */ int8_t minmax; /* minmax enable */ } config; - struct { /* sub-command SCHED_CLASS_PARAMS */ - int8_t level; /* scheduler hierarchy level */ - int8_t mode; /* per-class or per-flow */ - int8_t rateunit; /* bit or packet rate */ - int8_t ratemode; /* %port relative or kbps - absolute */ - int8_t channel; /* scheduler channel [0..N] */ - int8_t cl; /* scheduler class [0..N] */ - int32_t minrate; /* minimum rate */ - int32_t maxrate; /* maximum rate */ - int16_t weight; /* percent weight */ - int16_t pktsize; /* average packet size */ - } params; + struct t4_sched_class_params params; uint8_t reserved[6 + 8 * 8]; } u; }; Modified: projects/vnet/sys/dev/xen/netfront/netfront.c ============================================================================== --- projects/vnet/sys/dev/xen/netfront/netfront.c Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/sys/dev/xen/netfront/netfront.c Mon Jun 6 21:04:29 2016 (r301523) @@ -146,7 +146,8 @@ static int setup_device(device_t dev, st static int xn_ifmedia_upd(struct ifnet *ifp); static void xn_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); -int xn_connect(struct netfront_info *); +static int xn_connect(struct netfront_info *); +static void xn_kick_rings(struct netfront_info *); static int xn_get_responses(struct netfront_rxq *, struct netfront_rx_info *, RING_IDX, RING_IDX *, @@ -976,7 +977,9 @@ netfront_backend_changed(device_t dev, X break; if (xn_connect(sc) != 0) break; - xenbus_set_state(dev, XenbusStateConnected); + /* Switch to connected state before kicking the rings. */ + xenbus_set_state(sc->xbdev, XenbusStateConnected); + xn_kick_rings(sc); break; case XenbusStateClosing: xenbus_set_state(dev, XenbusStateClosed); @@ -1924,7 +1927,7 @@ xn_rebuild_rx_bufs(struct netfront_rxq * } /* START of Xenolinux helper functions adapted to FreeBSD */ -int +static int xn_connect(struct netfront_info *np) { int i, error; @@ -1968,8 +1971,20 @@ xn_connect(struct netfront_info *np) * packets. */ netfront_carrier_on(np); + + return (0); +} + +static void +xn_kick_rings(struct netfront_info *np) +{ + struct netfront_rxq *rxq; + struct netfront_txq *txq; + int i; + for (i = 0; i < np->num_queues; i++) { txq = &np->txq[i]; + rxq = &np->rxq[i]; xen_intr_signal(txq->xen_intr_handle); XN_TX_LOCK(txq); xn_txeof(txq); @@ -1978,8 +1993,6 @@ xn_connect(struct netfront_info *np) xn_alloc_rx_buffers(rxq); XN_RX_UNLOCK(rxq); } - - return (0); } static void Modified: projects/vnet/sys/kern/kern_shutdown.c ============================================================================== --- projects/vnet/sys/kern/kern_shutdown.c Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/sys/kern/kern_shutdown.c Mon Jun 6 21:04:29 2016 (r301523) @@ -935,7 +935,7 @@ DB_SHOW_COMMAND(panic, db_show_panic) { if (panicstr == NULL) - db_printf("Not paniced\n"); + db_printf("panicstr not set\n"); else db_printf("panic: %s\n", panicstr); } Modified: projects/vnet/sys/kern/kern_timeout.c ============================================================================== --- projects/vnet/sys/kern/kern_timeout.c Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/sys/kern/kern_timeout.c Mon Jun 6 21:04:29 2016 (r301523) @@ -1623,7 +1623,6 @@ SYSCTL_PROC(_kern, OID_AUTO, callout_sta "Dump immediate statistic snapshot of the scheduled callouts"); #ifdef DDB - static void _show_callout(struct callout *c) { Modified: projects/vnet/sys/xen/xen-os.h ============================================================================== --- projects/vnet/sys/xen/xen-os.h Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/sys/xen/xen-os.h Mon Jun 6 21:04:29 2016 (r301523) @@ -118,7 +118,7 @@ xen_clear_bit(int bit, volatile long *ad atomic_clear_long(&addr[bit / NBPL], 1UL << (bit % NBPL)); } -#undef NPBL +#undef NBPL /* * Functions to allocate/free unused memory in order Modified: projects/vnet/tools/tools/cxgbetool/cxgbetool.c ============================================================================== --- projects/vnet/tools/tools/cxgbetool/cxgbetool.c Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/tools/tools/cxgbetool/cxgbetool.c Mon Jun 6 21:04:29 2016 (r301523) @@ -2526,9 +2526,9 @@ sched_class(int argc, const char *argv[] errs++; } if (op.u.params.ratemode == SCHED_CLASS_RATEMODE_ABS && - !in_range(op.u.params.maxrate, 1, 10000000)) { + !in_range(op.u.params.maxrate, 1, 100000000)) { warnx("sched params \"max-rate\" takes " - "value(1-10000000) for rate-mode absolute"); + "value(1-100000000) for rate-mode absolute"); errs++; } if (op.u.params.maxrate > 0 && Modified: projects/vnet/usr.bin/indent/lexi.c ============================================================================== --- projects/vnet/usr.bin/indent/lexi.c Mon Jun 6 20:57:24 2016 (r301522) +++ projects/vnet/usr.bin/indent/lexi.c Mon Jun 6 21:04:29 2016 (r301523) @@ -79,7 +79,7 @@ struct templ specials[1000] = {"double", 4}, {"long", 4}, {"short", 4}, - {"typdef", 4}, + {"typedef", 4}, {"unsigned", 4}, {"register", 4}, {"static", 4}, From owner-svn-src-projects@freebsd.org Mon Jun 6 22:37:05 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9CDAFB6D137 for <svn-src-projects@mailman.ysv.freebsd.org>; Mon, 6 Jun 2016 22:37:05 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id 51F061279; Mon, 6 Jun 2016 22:37:05 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u56Mb4gB051847; Mon, 6 Jun 2016 22:37:04 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u56Mb4ki051845; Mon, 6 Jun 2016 22:37:04 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606062237.u56Mb4ki051845@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Mon, 6 Jun 2016 22:37:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301529 - in projects/vnet: share/man/man4 sys/netinet X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 06 Jun 2016 22:37:05 -0000 Author: bz Date: Mon Jun 6 22:37:04 2016 New Revision: 301529 URL: https://svnweb.freebsd.org/changeset/base/301529 Log: MfH Adter getting some multicast debugging aid upstreamed. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/share/man/man4/ddb.4 projects/vnet/sys/netinet/igmp.c Directory Properties: projects/vnet/ (props changed) Modified: projects/vnet/share/man/man4/ddb.4 ============================================================================== --- projects/vnet/share/man/man4/ddb.4 Mon Jun 6 22:34:12 2016 (r301528) +++ projects/vnet/share/man/man4/ddb.4 Mon Jun 6 22:37:04 2016 (r301529) @@ -688,6 +688,13 @@ The second one is the name of the interr Those functions are machine dependent. .\" .Pp +.It Ic show Cm igi_list Ar addr +Show information about the IGMP structure +.Vt struct igmp_ifsoftc +present at +.Ar addr . +.\" +.Pp .It Ic show Cm inodedeps Op Ar addr Show brief information about each inodedep structure. If Modified: projects/vnet/sys/netinet/igmp.c ============================================================================== --- projects/vnet/sys/netinet/igmp.c Mon Jun 6 22:34:12 2016 (r301528) +++ projects/vnet/sys/netinet/igmp.c Mon Jun 6 22:37:04 2016 (r301529) @@ -3646,6 +3646,37 @@ DB_SHOW_COMMAND(igi_list, db_show_igi_li } #endif +#ifdef DDB +DB_SHOW_COMMAND(igi_list, db_show_igi_list) +{ + struct igmp_ifsoftc *igi, *tigi; + LIST_HEAD(_igi_list, igmp_ifsoftc) *igi_head; + + if (!have_addr) { + db_printf("usage: show igi_list <addr>\n"); + return; + } + igi_head = (struct _igi_list *)addr; + + LIST_FOREACH_SAFE(igi, igi_head, igi_link, tigi) { + db_printf("igmp_ifsoftc %p:\n", igi); + db_printf(" ifp %p\n", igi->igi_ifp); + db_printf(" version %u\n", igi->igi_version); + db_printf(" v1_timer %u\n", igi->igi_v1_timer); + db_printf(" v2_timer %u\n", igi->igi_v2_timer); + db_printf(" v3_timer %u\n", igi->igi_v3_timer); + db_printf(" flags %#x\n", igi->igi_flags); + db_printf(" rv %u\n", igi->igi_rv); + db_printf(" qi %u\n", igi->igi_qi); + db_printf(" qri %u\n", igi->igi_qri); + db_printf(" uri %u\n", igi->igi_uri); + /* SLIST_HEAD(,in_multi) igi_relinmhead */ + /* struct mbufq igi_gq; */ + db_printf("\n"); + } +} +#endif + static int igmp_modevent(module_t mod, int type, void *unused __unused) { From owner-svn-src-projects@freebsd.org Mon Jun 6 22:39:33 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 55FADB6D169 for <svn-src-projects@mailman.ysv.freebsd.org>; Mon, 6 Jun 2016 22:39:33 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id 28A361399; Mon, 6 Jun 2016 22:39:33 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u56MdWiY051963; Mon, 6 Jun 2016 22:39:32 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u56MdWwu051962; Mon, 6 Jun 2016 22:39:32 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606062239.u56MdWwu051962@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Mon, 6 Jun 2016 22:39:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301530 - projects/vnet/sys/netinet X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 06 Jun 2016 22:39:33 -0000 Author: bz Date: Mon Jun 6 22:39:32 2016 New Revision: 301530 URL: https://svnweb.freebsd.org/changeset/base/301530 Log: Fix another SVN mismerge. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/sys/netinet/igmp.c Modified: projects/vnet/sys/netinet/igmp.c ============================================================================== --- projects/vnet/sys/netinet/igmp.c Mon Jun 6 22:37:04 2016 (r301529) +++ projects/vnet/sys/netinet/igmp.c Mon Jun 6 22:39:32 2016 (r301530) @@ -3621,37 +3621,6 @@ DB_SHOW_COMMAND(igi_list, db_show_igi_li struct igmp_ifsoftc *igi, *tigi; LIST_HEAD(_igi_list, igmp_ifsoftc) *igi_head; - if (!have_addr) { - db_printf("usage: show igi_list <addr>\n"); - return; - } - igi_head = (struct _igi_list *)addr; - - LIST_FOREACH_SAFE(igi, igi_head, igi_link, tigi) { - db_printf("igmp_ifsoftc %p:\n", igi); - db_printf(" ifp %p\n", igi->igi_ifp); - db_printf(" version %u\n", igi->igi_version); - db_printf(" v1_timer %u\n", igi->igi_v1_timer); - db_printf(" v2_timer %u\n", igi->igi_v2_timer); - db_printf(" v3_timer %u\n", igi->igi_v3_timer); - db_printf(" flags %#x\n", igi->igi_flags); - db_printf(" rv %u\n", igi->igi_rv); - db_printf(" qi %u\n", igi->igi_qi); - db_printf(" qri %u\n", igi->igi_qri); - db_printf(" uri %u\n", igi->igi_uri); - /* SLIST_HEAD(,in_multi) igi_relinmhead */ - /* struct mbufq igi_gq; */ - db_printf("\n"); - } -} -#endif - -#ifdef DDB -DB_SHOW_COMMAND(igi_list, db_show_igi_list) -{ - struct igmp_ifsoftc *igi, *tigi; - LIST_HEAD(_igi_list, igmp_ifsoftc) *igi_head; - if (!have_addr) { db_printf("usage: show igi_list <addr>\n"); return; From owner-svn-src-projects@freebsd.org Mon Jun 6 23:00:44 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1FDF1B6D659 for <svn-src-projects@mailman.ysv.freebsd.org>; Mon, 6 Jun 2016 23:00:44 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id B142C1255; Mon, 6 Jun 2016 23:00:43 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u56N0gYh059410; Mon, 6 Jun 2016 23:00:42 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u56N0gHu059409; Mon, 6 Jun 2016 23:00:42 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606062300.u56N0gHu059409@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Mon, 6 Jun 2016 23:00:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301534 - projects/vnet/sys/net X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Mon, 06 Jun 2016 23:00:44 -0000 Author: bz Date: Mon Jun 6 23:00:42 2016 New Revision: 301534 URL: https://svnweb.freebsd.org/changeset/base/301534 Log: Re-sort to match HEAD. Sponsored by: The FreeBSD Foundation Modified: projects/vnet/sys/net/if.c Modified: projects/vnet/sys/net/if.c ============================================================================== --- projects/vnet/sys/net/if.c Mon Jun 6 22:59:58 2016 (r301533) +++ projects/vnet/sys/net/if.c Mon Jun 6 23:00:42 2016 (r301534) @@ -1099,8 +1099,8 @@ static void if_vmove(struct ifnet *ifp, struct vnet *new_vnet) { struct if_clone *ifc; - int rc; u_int bif_dlt, bif_hdrlen; + int rc; /* * if_detach_internal() will call the eventhandler to notify From owner-svn-src-projects@freebsd.org Tue Jun 7 14:16:12 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D3713B6D1C0 for <svn-src-projects@mailman.ysv.freebsd.org>; Tue, 7 Jun 2016 14:16:12 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id 7215A16F8; Tue, 7 Jun 2016 14:16:12 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u57EGBEM096289; Tue, 7 Jun 2016 14:16:11 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u57EGAgR096272; Tue, 7 Jun 2016 14:16:10 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606071416.u57EGAgR096272@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Tue, 7 Jun 2016 14:16:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301547 - in projects/vnet: release/doc/en_US.ISO8859-1/relnotes share/man/man5 sys/compat/linuxkpi/common/include/linux sys/dev/cxgb sys/dev/cxgbe sys/dev/e1000 sys/dev/gpio sys/dev/hy... X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Tue, 07 Jun 2016 14:16:12 -0000 Author: bz Date: Tue Jun 7 14:16:10 2016 New Revision: 301547 URL: https://svnweb.freebsd.org/changeset/base/301547 Log: MfH @r301546 Sponsored by: The FreeBSD Foundation Added: projects/vnet/usr.sbin/bluetooth/ath3kfw/ath3k_dbg.h - copied unchanged from r301546, head/usr.sbin/bluetooth/ath3kfw/ath3k_dbg.h projects/vnet/usr.sbin/bluetooth/ath3kfw/ath3k_fw.c - copied unchanged from r301546, head/usr.sbin/bluetooth/ath3kfw/ath3k_fw.c projects/vnet/usr.sbin/bluetooth/ath3kfw/ath3k_fw.h - copied unchanged from r301546, head/usr.sbin/bluetooth/ath3kfw/ath3k_fw.h projects/vnet/usr.sbin/bluetooth/ath3kfw/ath3k_hw.c - copied unchanged from r301546, head/usr.sbin/bluetooth/ath3kfw/ath3k_hw.c projects/vnet/usr.sbin/bluetooth/ath3kfw/ath3k_hw.h - copied unchanged from r301546, head/usr.sbin/bluetooth/ath3kfw/ath3k_hw.h projects/vnet/usr.sbin/bluetooth/ath3kfw/main.c - copied unchanged from r301546, head/usr.sbin/bluetooth/ath3kfw/main.c Deleted: projects/vnet/usr.sbin/bluetooth/ath3kfw/ath3kfw.c Modified: projects/vnet/release/doc/en_US.ISO8859-1/relnotes/article.xml projects/vnet/share/man/man5/rc.conf.5 projects/vnet/sys/compat/linuxkpi/common/include/linux/etherdevice.h projects/vnet/sys/compat/linuxkpi/common/include/linux/random.h projects/vnet/sys/dev/cxgb/cxgb_sge.c projects/vnet/sys/dev/cxgbe/adapter.h projects/vnet/sys/dev/cxgbe/t4_main.c projects/vnet/sys/dev/e1000/if_igb.c projects/vnet/sys/dev/gpio/gpiobus.c projects/vnet/sys/dev/gpio/gpiobusvar.h projects/vnet/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/vnet/sys/dev/ixgbe/ix_txrx.c projects/vnet/sys/dev/ixl/ixl_txrx.c projects/vnet/sys/dev/mlx5/driver.h projects/vnet/sys/dev/mlx5/mlx5_core/mlx5_vport.c projects/vnet/sys/dev/mlx5/mlx5_en/mlx5_en_flow_table.c projects/vnet/sys/dev/mlx5/mlx5_en/mlx5_en_main.c projects/vnet/sys/dev/mlx5/mlx5_en/mlx5_en_rx.c projects/vnet/sys/dev/mlx5/vport.h projects/vnet/sys/dev/qlxgbe/ql_isr.c projects/vnet/sys/dev/qlxge/qls_isr.c projects/vnet/sys/kern/subr_intr.c projects/vnet/sys/net/flowtable.c projects/vnet/sys/net/if_vxlan.c projects/vnet/sys/netinet/sctp_input.c projects/vnet/sys/netinet/sctp_pcb.c projects/vnet/sys/ofed/drivers/net/mlx4/en_rx.c projects/vnet/sys/sys/intr.h projects/vnet/usr.sbin/bluetooth/ath3kfw/Makefile projects/vnet/usr.sbin/bluetooth/ath3kfw/ath3kfw.8 projects/vnet/usr.sbin/newsyslog/newsyslog.c projects/vnet/usr.sbin/ypldap/ypldap.8 Directory Properties: projects/vnet/ (props changed) Modified: projects/vnet/release/doc/en_US.ISO8859-1/relnotes/article.xml ============================================================================== --- projects/vnet/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/release/doc/en_US.ISO8859-1/relnotes/article.xml Tue Jun 7 14:16:10 2016 (r301547) @@ -1771,6 +1771,10 @@ </tgroup> </informaltable> + <para revision="300779">Dummynet AQM, an independent implementation of + CoDel and FQ-CoDel for ipfw/dummynet has been imported to the base + system.</para> + </sect2> </sect1> Modified: projects/vnet/share/man/man5/rc.conf.5 ============================================================================== --- projects/vnet/share/man/man5/rc.conf.5 Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/share/man/man5/rc.conf.5 Tue Jun 7 14:16:10 2016 (r301547) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 30, 2016 +.Dd June 8, 2016 .Dt RC.CONF 5 .Os .Sh NAME @@ -2559,6 +2559,22 @@ is set to these are the flags to pass to the .Xr ypbind 8 service. +.It Va nis_ypldap_enable +.Pq Vt bool +If set to +.Dq Li YES , +run the +.Xr ypldap 8 +daemon at system boot time. +.It Va nis_ypldap_flags +.Pq Vt str +If +.Va nis.ypldap_enable +is set to +.Dq Li YES , +these are the flags to pass to the +.Xr ypldap 8 +daemon. .It Va nis_ypset_enable .Pq Vt bool If set to Modified: projects/vnet/sys/compat/linuxkpi/common/include/linux/etherdevice.h ============================================================================== --- projects/vnet/sys/compat/linuxkpi/common/include/linux/etherdevice.h Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/compat/linuxkpi/common/include/linux/etherdevice.h Tue Jun 7 14:16:10 2016 (r301547) @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2015 Mellanox Technologies, Ltd. All rights reserved. + * Copyright (c) 2015-2016 Mellanox Technologies, Ltd. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -102,7 +102,8 @@ eth_broadcast_addr(u8 *pa) static inline void random_ether_addr(u8 * dst) { - read_random(dst, 6); + if (read_random(dst, 6) == 0) + arc4rand(dst, 6, 0); dst[0] &= 0xfe; dst[0] |= 0x02; Modified: projects/vnet/sys/compat/linuxkpi/common/include/linux/random.h ============================================================================== --- projects/vnet/sys/compat/linuxkpi/common/include/linux/random.h Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/compat/linuxkpi/common/include/linux/random.h Tue Jun 7 14:16:10 2016 (r301547) @@ -2,7 +2,7 @@ * Copyright (c) 2010 Isilon Systems, Inc. * Copyright (c) 2010 iX Systems, Inc. * Copyright (c) 2010 Panasas, Inc. - * Copyright (c) 2013, 2014 Mellanox Technologies, Ltd. + * Copyright (c) 2013-2016 Mellanox Technologies, Ltd. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -32,11 +32,13 @@ #define _LINUX_RANDOM_H_ #include <sys/random.h> +#include <sys/libkern.h> static inline void get_random_bytes(void *buf, int nbytes) { - read_random(buf, nbytes); + if (read_random(buf, nbytes) == 0) + arc4rand(buf, nbytes, 0); } #endif /* _LINUX_RANDOM_H_ */ Modified: projects/vnet/sys/dev/cxgb/cxgb_sge.c ============================================================================== --- projects/vnet/sys/dev/cxgb/cxgb_sge.c Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/cxgb/cxgb_sge.c Tue Jun 7 14:16:10 2016 (r301547) @@ -2900,7 +2900,8 @@ process_responses(adapter_t *adap, struc eop = get_packet(adap, drop_thresh, qs, mh, r); if (eop) { if (r->rss_hdr.hash_type && !adap->timestamp) { - M_HASHTYPE_SET(mh->mh_head, M_HASHTYPE_OPAQUE); + M_HASHTYPE_SET(mh->mh_head, + M_HASHTYPE_OPAQUE_HASH); mh->mh_head->m_pkthdr.flowid = rss_hash; } } Modified: projects/vnet/sys/dev/cxgbe/adapter.h ============================================================================== --- projects/vnet/sys/dev/cxgbe/adapter.h Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/cxgbe/adapter.h Tue Jun 7 14:16:10 2016 (r301547) @@ -54,6 +54,7 @@ #include <netinet/tcp_lro.h> #include "offload.h" +#include "t4_ioctl.h" #include "common/t4_msg.h" #include "firmware/t4fw_interface.h" @@ -264,6 +265,17 @@ struct vi_info { uint8_t hw_addr[ETHER_ADDR_LEN]; /* factory MAC address, won't change */ }; +enum { + /* tx_sched_class flags */ + TX_SC_OK = (1 << 0), /* Set up in hardware, active. */ +}; + +struct tx_sched_class { + int refcount; + int flags; + struct t4_sched_class_params params; +}; + struct port_info { device_t dev; struct adapter *adapter; @@ -273,6 +285,8 @@ struct port_info { int up_vis; int uld_vis; + struct tx_sched_class *tc; /* traffic classes for this channel */ + struct mtx pi_lock; char lockname[16]; unsigned long flags; Modified: projects/vnet/sys/dev/cxgbe/t4_main.c ============================================================================== --- projects/vnet/sys/dev/cxgbe/t4_main.c Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/cxgbe/t4_main.c Tue Jun 7 14:16:10 2016 (r301547) @@ -496,6 +496,7 @@ static int sysctl_tp_la(SYSCTL_HANDLER_A static int sysctl_tx_rate(SYSCTL_HANDLER_ARGS); static int sysctl_ulprx_la(SYSCTL_HANDLER_ARGS); static int sysctl_wcwr_stats(SYSCTL_HANDLER_ARGS); +static int sysctl_tc_params(SYSCTL_HANDLER_ARGS); #endif #ifdef TCP_OFFLOAD static int sysctl_tp_tick(SYSCTL_HANDLER_ARGS); @@ -875,6 +876,9 @@ t4_attach(device_t dev) mtx_init(&pi->pi_lock, pi->lockname, 0, MTX_DEF); sc->chan_map[pi->tx_chan] = i; + pi->tc = malloc(sizeof(struct tx_sched_class) * + sc->chip_params->nsched_cls, M_CXGBE, M_ZERO | M_WAITOK); + if (is_10G_port(pi) || is_40G_port(pi)) { n10g++; for_each_vi(pi, j, vi) { @@ -1131,6 +1135,7 @@ t4_detach(device_t dev) mtx_destroy(&pi->pi_lock); free(pi->vi, M_CXGBE); + free(pi->tc, M_CXGBE); free(pi, M_CXGBE); } } @@ -5030,8 +5035,10 @@ cxgbe_sysctls(struct port_info *pi) { struct sysctl_ctx_list *ctx; struct sysctl_oid *oid; - struct sysctl_oid_list *children; + struct sysctl_oid_list *children, *children2; struct adapter *sc = pi->adapter; + int i; + char name[16]; ctx = device_get_sysctl_ctx(pi->dev); @@ -5060,6 +5067,29 @@ cxgbe_sysctls(struct port_info *pi) port_top_speed(pi), "max speed (in Gbps)"); /* + * dev.(cxgbe|cxl).X.tc. + */ + oid = SYSCTL_ADD_NODE(ctx, children, OID_AUTO, "tc", CTLFLAG_RD, NULL, + "Tx scheduler traffic classes"); + for (i = 0; i < sc->chip_params->nsched_cls; i++) { + struct tx_sched_class *tc = &pi->tc[i]; + + snprintf(name, sizeof(name), "%d", i); + children2 = SYSCTL_CHILDREN(SYSCTL_ADD_NODE(ctx, + SYSCTL_CHILDREN(oid), OID_AUTO, name, CTLFLAG_RD, NULL, + "traffic class")); + SYSCTL_ADD_UINT(ctx, children2, OID_AUTO, "flags", CTLFLAG_RD, + &tc->flags, 0, "flags"); + SYSCTL_ADD_UINT(ctx, children2, OID_AUTO, "refcount", + CTLFLAG_RD, &tc->refcount, 0, "references to this class"); +#ifdef SBUF_DRAIN + SYSCTL_ADD_PROC(ctx, children2, OID_AUTO, "params", + CTLTYPE_STRING | CTLFLAG_RD, sc, (pi->port_id << 16) | i, + sysctl_tc_params, "A", "traffic class parameters"); +#endif + } + + /* * dev.cxgbe.X.stats. */ oid = SYSCTL_ADD_NODE(ctx, children, OID_AUTO, "stats", CTLFLAG_RD, @@ -7452,6 +7482,101 @@ sysctl_wcwr_stats(SYSCTL_HANDLER_ARGS) return (rc); } + +static int +sysctl_tc_params(SYSCTL_HANDLER_ARGS) +{ + struct adapter *sc = arg1; + struct tx_sched_class *tc; + struct t4_sched_class_params p; + struct sbuf *sb; + int i, rc, port_id, flags, mbps, gbps; + + rc = sysctl_wire_old_buffer(req, 0); + if (rc != 0) + return (rc); + + sb = sbuf_new_for_sysctl(NULL, NULL, 4096, req); + if (sb == NULL) + return (ENOMEM); + + port_id = arg2 >> 16; + MPASS(port_id < sc->params.nports); + MPASS(sc->port[port_id] != NULL); + i = arg2 & 0xffff; + MPASS(i < sc->chip_params->nsched_cls); + tc = &sc->port[port_id]->tc[i]; + + rc = begin_synchronized_op(sc, NULL, HOLD_LOCK | SLEEP_OK | INTR_OK, + "t4tc_p"); + if (rc) + goto done; + flags = tc->flags; + p = tc->params; + end_synchronized_op(sc, LOCK_HELD); + + if ((flags & TX_SC_OK) == 0) { + sbuf_printf(sb, "none"); + goto done; + } + + if (p.level == SCHED_CLASS_LEVEL_CL_WRR) { + sbuf_printf(sb, "cl-wrr weight %u", p.weight); + goto done; + } else if (p.level == SCHED_CLASS_LEVEL_CL_RL) + sbuf_printf(sb, "cl-rl"); + else if (p.level == SCHED_CLASS_LEVEL_CH_RL) + sbuf_printf(sb, "ch-rl"); + else { + rc = ENXIO; + goto done; + } + + if (p.ratemode == SCHED_CLASS_RATEMODE_REL) { + /* XXX: top speed or actual link speed? */ + gbps = port_top_speed(sc->port[port_id]); + sbuf_printf(sb, " %u%% of %uGbps", p.maxrate, gbps); + } + else if (p.ratemode == SCHED_CLASS_RATEMODE_ABS) { + switch (p.rateunit) { + case SCHED_CLASS_RATEUNIT_BITS: + mbps = p.maxrate / 1000; + gbps = p.maxrate / 1000000; + if (p.maxrate == gbps * 1000000) + sbuf_printf(sb, " %uGbps", gbps); + else if (p.maxrate == mbps * 1000) + sbuf_printf(sb, " %uMbps", mbps); + else + sbuf_printf(sb, " %uKbps", p.maxrate); + break; + case SCHED_CLASS_RATEUNIT_PKTS: + sbuf_printf(sb, " %upps", p.maxrate); + break; + default: + rc = ENXIO; + goto done; + } + } + + switch (p.mode) { + case SCHED_CLASS_MODE_CLASS: + sbuf_printf(sb, " aggregate"); + break; + case SCHED_CLASS_MODE_FLOW: + sbuf_printf(sb, " per-flow"); + break; + default: + rc = ENXIO; + goto done; + } + +done: + if (rc == 0) + rc = sbuf_finish(sb); + sbuf_delete(sb); + + return (rc); +} #endif #ifdef TCP_OFFLOAD @@ -8297,155 +8422,147 @@ in_range(int val, int lo, int hi) } static int -set_sched_class(struct adapter *sc, struct t4_sched_params *p) +set_sched_class_config(struct adapter *sc, int minmax) { - int fw_subcmd, fw_type, rc; + int rc; + + if (minmax < 0) + return (EINVAL); - rc = begin_synchronized_op(sc, NULL, SLEEP_OK | INTR_OK, "t4setsc"); + rc = begin_synchronized_op(sc, NULL, SLEEP_OK | INTR_OK, "t4sscc"); if (rc) return (rc); + rc = -t4_sched_config(sc, FW_SCHED_TYPE_PKTSCHED, minmax, 1); + end_synchronized_op(sc, 0); - if (!(sc->flags & FULL_INIT_DONE)) { - rc = EAGAIN; - goto done; - } + return (rc); +} - /* - * Translate the cxgbetool parameters into T4 firmware parameters. (The - * sub-command and type are in common locations.) - */ - if (p->subcmd == SCHED_CLASS_SUBCMD_CONFIG) - fw_subcmd = FW_SCHED_SC_CONFIG; - else if (p->subcmd == SCHED_CLASS_SUBCMD_PARAMS) - fw_subcmd = FW_SCHED_SC_PARAMS; - else { - rc = EINVAL; - goto done; - } - if (p->type == SCHED_CLASS_TYPE_PACKET) - fw_type = FW_SCHED_TYPE_PKTSCHED; - else { - rc = EINVAL; - goto done; - } +static int +set_sched_class_params(struct adapter *sc, struct t4_sched_class_params *p, + int sleep_ok) +{ + int rc, top_speed, fw_level, fw_mode, fw_rateunit, fw_ratemode; + struct port_info *pi; + struct tx_sched_class *tc; - if (fw_subcmd == FW_SCHED_SC_CONFIG) { - /* Vet our parameters ..*/ - if (p->u.config.minmax < 0) { - rc = EINVAL; - goto done; - } + if (p->level == SCHED_CLASS_LEVEL_CL_RL) + fw_level = FW_SCHED_PARAMS_LEVEL_CL_RL; + else if (p->level == SCHED_CLASS_LEVEL_CL_WRR) + fw_level = FW_SCHED_PARAMS_LEVEL_CL_WRR; + else if (p->level == SCHED_CLASS_LEVEL_CH_RL) + fw_level = FW_SCHED_PARAMS_LEVEL_CH_RL; + else + return (EINVAL); - /* And pass the request to the firmware ...*/ - rc = -t4_sched_config(sc, fw_type, p->u.config.minmax, 1); - goto done; - } + if (p->mode == SCHED_CLASS_MODE_CLASS) + fw_mode = FW_SCHED_PARAMS_MODE_CLASS; + else if (p->mode == SCHED_CLASS_MODE_FLOW) + fw_mode = FW_SCHED_PARAMS_MODE_FLOW; + else + return (EINVAL); - if (fw_subcmd == FW_SCHED_SC_PARAMS) { - int fw_level; - int fw_mode; - int fw_rateunit; - int fw_ratemode; - - if (p->u.params.level == SCHED_CLASS_LEVEL_CL_RL) - fw_level = FW_SCHED_PARAMS_LEVEL_CL_RL; - else if (p->u.params.level == SCHED_CLASS_LEVEL_CL_WRR) - fw_level = FW_SCHED_PARAMS_LEVEL_CL_WRR; - else if (p->u.params.level == SCHED_CLASS_LEVEL_CH_RL) - fw_level = FW_SCHED_PARAMS_LEVEL_CH_RL; - else { - rc = EINVAL; - goto done; - } + if (p->rateunit == SCHED_CLASS_RATEUNIT_BITS) + fw_rateunit = FW_SCHED_PARAMS_UNIT_BITRATE; + else if (p->rateunit == SCHED_CLASS_RATEUNIT_PKTS) + fw_rateunit = FW_SCHED_PARAMS_UNIT_PKTRATE; + else + return (EINVAL); - if (p->u.params.mode == SCHED_CLASS_MODE_CLASS) - fw_mode = FW_SCHED_PARAMS_MODE_CLASS; - else if (p->u.params.mode == SCHED_CLASS_MODE_FLOW) - fw_mode = FW_SCHED_PARAMS_MODE_FLOW; - else { - rc = EINVAL; - goto done; - } + if (p->ratemode == SCHED_CLASS_RATEMODE_REL) + fw_ratemode = FW_SCHED_PARAMS_RATE_REL; + else if (p->ratemode == SCHED_CLASS_RATEMODE_ABS) + fw_ratemode = FW_SCHED_PARAMS_RATE_ABS; + else + return (EINVAL); - if (p->u.params.rateunit == SCHED_CLASS_RATEUNIT_BITS) - fw_rateunit = FW_SCHED_PARAMS_UNIT_BITRATE; - else if (p->u.params.rateunit == SCHED_CLASS_RATEUNIT_PKTS) - fw_rateunit = FW_SCHED_PARAMS_UNIT_PKTRATE; - else { - rc = EINVAL; - goto done; - } + /* Vet our parameters ... */ + if (!in_range(p->channel, 0, sc->chip_params->nchan - 1)) + return (ERANGE); - if (p->u.params.ratemode == SCHED_CLASS_RATEMODE_REL) - fw_ratemode = FW_SCHED_PARAMS_RATE_REL; - else if (p->u.params.ratemode == SCHED_CLASS_RATEMODE_ABS) - fw_ratemode = FW_SCHED_PARAMS_RATE_ABS; - else { - rc = EINVAL; - goto done; - } + pi = sc->port[sc->chan_map[p->channel]]; + if (pi == NULL) + return (ENXIO); + MPASS(pi->tx_chan == p->channel); + top_speed = port_top_speed(pi) * 1000000; /* Gbps -> Kbps */ - /* Vet our parameters ... */ - if (!in_range(p->u.params.channel, 0, 3) || - !in_range(p->u.params.cl, 0, sc->chip_params->nsched_cls) || - !in_range(p->u.params.minrate, 0, 10000000) || - !in_range(p->u.params.maxrate, 0, 10000000) || - !in_range(p->u.params.weight, 0, 100)) { - rc = ERANGE; - goto done; - } + if (!in_range(p->cl, 0, sc->chip_params->nsched_cls) || + !in_range(p->minrate, 0, top_speed) || + !in_range(p->maxrate, 0, top_speed) || + !in_range(p->weight, 0, 100)) + return (ERANGE); + + /* + * Translate any unset parameters into the firmware's + * nomenclature and/or fail the call if the parameters + * are required ... + */ + if (p->rateunit < 0 || p->ratemode < 0 || p->channel < 0 || p->cl < 0) + return (EINVAL); + + if (p->minrate < 0) + p->minrate = 0; + if (p->maxrate < 0) { + if (p->level == SCHED_CLASS_LEVEL_CL_RL || + p->level == SCHED_CLASS_LEVEL_CH_RL) + return (EINVAL); + else + p->maxrate = 0; + } + if (p->weight < 0) { + if (p->level == SCHED_CLASS_LEVEL_CL_WRR) + return (EINVAL); + else + p->weight = 0; + } + if (p->pktsize < 0) { + if (p->level == SCHED_CLASS_LEVEL_CL_RL || + p->level == SCHED_CLASS_LEVEL_CH_RL) + return (EINVAL); + else + p->pktsize = 0; + } + rc = begin_synchronized_op(sc, NULL, + sleep_ok ? (SLEEP_OK | INTR_OK) : HOLD_LOCK, "t4sscp"); + if (rc) + return (rc); + tc = &pi->tc[p->cl]; + tc->params = *p; + rc = -t4_sched_params(sc, FW_SCHED_TYPE_PKTSCHED, fw_level, fw_mode, + fw_rateunit, fw_ratemode, p->channel, p->cl, p->minrate, p->maxrate, + p->weight, p->pktsize, sleep_ok); + if (rc == 0) + tc->flags |= TX_SC_OK; + else { /* - * Translate any unset parameters into the firmware's - * nomenclature and/or fail the call if the parameters - * are required ... + * Unknown state at this point, see tc->params for what was + * attempted. */ - if (p->u.params.rateunit < 0 || p->u.params.ratemode < 0 || - p->u.params.channel < 0 || p->u.params.cl < 0) { - rc = EINVAL; - goto done; - } - if (p->u.params.minrate < 0) - p->u.params.minrate = 0; - if (p->u.params.maxrate < 0) { - if (p->u.params.level == SCHED_CLASS_LEVEL_CL_RL || - p->u.params.level == SCHED_CLASS_LEVEL_CH_RL) { - rc = EINVAL; - goto done; - } else - p->u.params.maxrate = 0; - } - if (p->u.params.weight < 0) { - if (p->u.params.level == SCHED_CLASS_LEVEL_CL_WRR) { - rc = EINVAL; - goto done; - } else - p->u.params.weight = 0; - } - if (p->u.params.pktsize < 0) { - if (p->u.params.level == SCHED_CLASS_LEVEL_CL_RL || - p->u.params.level == SCHED_CLASS_LEVEL_CH_RL) { - rc = EINVAL; - goto done; - } else - p->u.params.pktsize = 0; - } - - /* See what the firmware thinks of the request ... */ - rc = -t4_sched_params(sc, fw_type, fw_level, fw_mode, - fw_rateunit, fw_ratemode, p->u.params.channel, - p->u.params.cl, p->u.params.minrate, p->u.params.maxrate, - p->u.params.weight, p->u.params.pktsize, 1); - goto done; + tc->flags &= ~TX_SC_OK; } + end_synchronized_op(sc, sleep_ok ? 0 : LOCK_HELD); - rc = EINVAL; -done: - end_synchronized_op(sc, 0); return (rc); } static int +set_sched_class(struct adapter *sc, struct t4_sched_params *p) +{ + + if (p->type != SCHED_CLASS_TYPE_PACKET) + return (EINVAL); + + if (p->subcmd == SCHED_CLASS_SUBCMD_CONFIG) + return (set_sched_class_config(sc, p->u.config.minmax)); + + if (p->subcmd == SCHED_CLASS_SUBCMD_PARAMS) + return (set_sched_class_params(sc, &p->u.params, 1)); + + return (EINVAL); +} + +static int set_sched_queue(struct adapter *sc, struct t4_sched_queue *p) { struct port_info *pi = NULL; @@ -8458,11 +8575,6 @@ set_sched_queue(struct adapter *sc, stru if (rc) return (rc); - if (!(sc->flags & FULL_INIT_DONE)) { - rc = EAGAIN; - goto done; - } - if (p->port >= sc->params.nports) { rc = EINVAL; goto done; @@ -8471,7 +8583,14 @@ set_sched_queue(struct adapter *sc, stru /* XXX: Only supported for the main VI. */ pi = sc->port[p->port]; vi = &pi->vi[0]; - if (!in_range(p->queue, 0, vi->ntxq - 1) || !in_range(p->cl, 0, 7)) { + if (!(vi->flags & VI_INIT_DONE)) { + /* tx queues not set up yet */ + rc = EAGAIN; + goto done; + } + + if (!in_range(p->queue, 0, vi->ntxq - 1) || + !in_range(p->cl, 0, sc->chip_params->nsched_cls - 1)) { rc = EINVAL; goto done; } Modified: projects/vnet/sys/dev/e1000/if_igb.c ============================================================================== --- projects/vnet/sys/dev/e1000/if_igb.c Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/e1000/if_igb.c Tue Jun 7 14:16:10 2016 (r301547) @@ -5154,7 +5154,7 @@ igb_rxeof(struct igb_queue *que, int cou default: /* XXX fallthrough */ M_HASHTYPE_SET(rxr->fmp, - M_HASHTYPE_OPAQUE); + M_HASHTYPE_OPAQUE_HASH); } } else { #ifndef IGB_LEGACY_TX Modified: projects/vnet/sys/dev/gpio/gpiobus.c ============================================================================== --- projects/vnet/sys/dev/gpio/gpiobus.c Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/gpio/gpiobus.c Tue Jun 7 14:16:10 2016 (r301547) @@ -79,22 +79,47 @@ static int gpiobus_pin_toggle(device_t, * data will be moved into struct resource. */ #ifdef INTRNG +static void +gpio_destruct_map_data(struct intr_map_data *map_data) +{ + + KASSERT(map_data->type == INTR_MAP_DATA_GPIO, + ("%s: bad map_data type %d", __func__, map_data->type)); + + free(map_data, M_DEVBUF); +} + struct resource * gpio_alloc_intr_resource(device_t consumer_dev, int *rid, u_int alloc_flags, gpio_pin_t pin, uint32_t intr_mode) { - u_int irqnum; - - /* - * Allocate new fictitious interrupt number and store configuration - * into it. - */ - irqnum = intr_gpio_map_irq(pin->dev, pin->pin, pin->flags, intr_mode); - if (irqnum == INTR_IRQ_INVALID) + int rv; + u_int irq; + struct intr_map_data_gpio *gpio_data; + struct resource *res; + + gpio_data = malloc(sizeof(*gpio_data), M_DEVBUF, M_WAITOK | M_ZERO); + gpio_data->hdr.type = INTR_MAP_DATA_GPIO; + gpio_data->hdr.destruct = gpio_destruct_map_data; + gpio_data->gpio_pin_num = pin->pin; + gpio_data->gpio_pin_flags = pin->flags; + gpio_data->gpio_intr_mode = intr_mode; + + rv = intr_map_irq(pin->dev, 0, (struct intr_map_data *)gpio_data, + &irq); + if (rv != 0) { + gpio_destruct_map_data((struct intr_map_data *)gpio_data); return (NULL); + } - return (bus_alloc_resource(consumer_dev, SYS_RES_IRQ, rid, - irqnum, irqnum, 1, alloc_flags)); + res = bus_alloc_resource(consumer_dev, SYS_RES_IRQ, rid, irq, irq, 1, + alloc_flags); + if (res == NULL) { + gpio_destruct_map_data((struct intr_map_data *)gpio_data); + return (NULL); + } + rman_set_virtual(res, gpio_data); + return (res); } #else struct resource * Modified: projects/vnet/sys/dev/gpio/gpiobusvar.h ============================================================================== --- projects/vnet/sys/dev/gpio/gpiobusvar.h Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/gpio/gpiobusvar.h Tue Jun 7 14:16:10 2016 (r301547) @@ -70,6 +70,13 @@ struct gpiobus_pin_data char *name; /* pin name. */ }; +struct intr_map_data_gpio { + struct intr_map_data hdr; + u_int gpio_pin_num; + u_int gpio_pin_flags; + u_int gpio_intr_mode; +}; + struct gpiobus_softc { struct mtx sc_mtx; /* bus mutex */ Modified: projects/vnet/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c ============================================================================== --- projects/vnet/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c Tue Jun 7 14:16:10 2016 (r301547) @@ -1300,6 +1300,7 @@ netvsc_recv(struct hv_vmbus_channel *cha struct ifnet *ifp = rxr->hn_ifp; struct mbuf *m_new; int size, do_lro = 0, do_csum = 1; + int hash_type = M_HASHTYPE_OPAQUE_HASH; if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) return (0); @@ -1430,8 +1431,6 @@ skip: } if (hash_info != NULL && hash_value != NULL) { - int hash_type = M_HASHTYPE_OPAQUE; - rxr->hn_rss_pkts++; m_new->m_pkthdr.flowid = hash_value->hash_value; if ((hash_info->hash_info & NDIS_HASH_FUNCTION_MASK) == @@ -1465,14 +1464,15 @@ skip: break; } } - M_HASHTYPE_SET(m_new, hash_type); } else { - if (hash_value != NULL) + if (hash_value != NULL) { m_new->m_pkthdr.flowid = hash_value->hash_value; - else + } else { m_new->m_pkthdr.flowid = rxr->hn_rx_idx; - M_HASHTYPE_SET(m_new, M_HASHTYPE_OPAQUE); + hash_type = M_HASHTYPE_OPAQUE; + } } + M_HASHTYPE_SET(m_new, hash_type); /* * Note: Moved RX completion back to hv_nv_on_receive() so all Modified: projects/vnet/sys/dev/ixgbe/ix_txrx.c ============================================================================== --- projects/vnet/sys/dev/ixgbe/ix_txrx.c Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/ixgbe/ix_txrx.c Tue Jun 7 14:16:10 2016 (r301547) @@ -1964,7 +1964,7 @@ ixgbe_rxeof(struct ix_queue *que) #endif default: M_HASHTYPE_SET(sendmp, - M_HASHTYPE_OPAQUE); + M_HASHTYPE_OPAQUE_HASH); } } else { sendmp->m_pkthdr.flowid = que->msix; Modified: projects/vnet/sys/dev/ixl/ixl_txrx.c ============================================================================== --- projects/vnet/sys/dev/ixl/ixl_txrx.c Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/ixl/ixl_txrx.c Tue Jun 7 14:16:10 2016 (r301547) @@ -1453,10 +1453,10 @@ ixl_ptype_to_hash(u8 ptype) ex = decoded.outer_frag; if (!decoded.known) - return M_HASHTYPE_OPAQUE; + return M_HASHTYPE_OPAQUE_HASH; if (decoded.outer_ip == I40E_RX_PTYPE_OUTER_L2) - return M_HASHTYPE_OPAQUE; + return M_HASHTYPE_OPAQUE_HASH; /* Note: anything that gets to this point is IP */ if (decoded.outer_ip_ver == I40E_RX_PTYPE_OUTER_IPV6) { @@ -1492,7 +1492,7 @@ ixl_ptype_to_hash(u8 ptype) } } /* We should never get here!! */ - return M_HASHTYPE_OPAQUE; + return M_HASHTYPE_OPAQUE_HASH; } #endif /* RSS */ Modified: projects/vnet/sys/dev/mlx5/driver.h ============================================================================== --- projects/vnet/sys/dev/mlx5/driver.h Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/mlx5/driver.h Tue Jun 7 14:16:10 2016 (r301547) @@ -33,6 +33,7 @@ #include <linux/pci.h> #include <linux/cache.h> #include <linux/rbtree.h> +#include <linux/if_ether.h> #include <linux/semaphore.h> #include <linux/slab.h> #include <linux/vmalloc.h> Modified: projects/vnet/sys/dev/mlx5/mlx5_core/mlx5_vport.c ============================================================================== --- projects/vnet/sys/dev/mlx5/mlx5_core/mlx5_vport.c Tue Jun 7 14:11:15 2016 (r301546) +++ projects/vnet/sys/dev/mlx5/mlx5_core/mlx5_vport.c Tue Jun 7 14:16:10 2016 (r301547) @@ -471,6 +471,241 @@ int mlx5_set_nic_vport_promisc(struct ml return mlx5_modify_nic_vport_context(mdev, in, sizeof(in)); } EXPORT_SYMBOL_GPL(mlx5_set_nic_vport_promisc); + +int mlx5_query_nic_vport_mac_list(struct mlx5_core_dev *dev, + u32 vport, + enum mlx5_list_type list_type, + u8 addr_list[][ETH_ALEN], + int *list_size) +{ + u32 in[MLX5_ST_SZ_DW(query_nic_vport_context_in)]; + void *nic_vport_ctx; + int max_list_size; + int req_list_size; + u8 *mac_addr; + int out_sz; + void *out; + int err; + int i; + + req_list_size = *list_size; + + max_list_size = (list_type == MLX5_NIC_VPORT_LIST_TYPE_UC) ? + 1 << MLX5_CAP_GEN_MAX(dev, log_max_current_uc_list) : + 1 << MLX5_CAP_GEN_MAX(dev, log_max_current_mc_list); + + if (req_list_size > max_list_size) { + mlx5_core_warn(dev, "Requested list size (%d) > (%d) max_list_size\n", + req_list_size, max_list_size); + req_list_size = max_list_size; + } + + out_sz = MLX5_ST_SZ_BYTES(modify_nic_vport_context_in) + + req_list_size * MLX5_ST_SZ_BYTES(mac_address_layout); + + memset(in, 0, sizeof(in)); + out = kzalloc(out_sz, GFP_KERNEL); + if (!out) + return -ENOMEM; + + MLX5_SET(query_nic_vport_context_in, in, opcode, + MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT); + MLX5_SET(query_nic_vport_context_in, in, allowed_list_type, list_type); + MLX5_SET(query_nic_vport_context_in, in, vport_number, vport); + + if (vport) + MLX5_SET(query_nic_vport_context_in, in, other_vport, 1); + + err = mlx5_cmd_exec_check_status(dev, in, sizeof(in), out, out_sz); + if (err) + goto out; + + nic_vport_ctx = MLX5_ADDR_OF(query_nic_vport_context_out, out, + nic_vport_context); + req_list_size = MLX5_GET(nic_vport_context, nic_vport_ctx, + allowed_list_size); + + *list_size = req_list_size; + for (i = 0; i < req_list_size; i++) { + mac_addr = MLX5_ADDR_OF(nic_vport_context, + nic_vport_ctx, + current_uc_mac_address[i]) + 2; + ether_addr_copy(addr_list[i], mac_addr); + } +out: + kfree(out); + return err; +} +EXPORT_SYMBOL_GPL(mlx5_query_nic_vport_mac_list); + +int mlx5_modify_nic_vport_mac_list(struct mlx5_core_dev *dev, + enum mlx5_list_type list_type, + u8 addr_list[][ETH_ALEN], + int list_size) +{ + u32 out[MLX5_ST_SZ_DW(modify_nic_vport_context_out)]; + void *nic_vport_ctx; + int max_list_size; + int in_sz; + void *in; + int err; + int i; + + max_list_size = list_type == MLX5_NIC_VPORT_LIST_TYPE_UC ? + 1 << MLX5_CAP_GEN(dev, log_max_current_uc_list) : + 1 << MLX5_CAP_GEN(dev, log_max_current_mc_list); + + if (list_size > max_list_size) + return -ENOSPC; + + in_sz = MLX5_ST_SZ_BYTES(modify_nic_vport_context_in) + + list_size * MLX5_ST_SZ_BYTES(mac_address_layout); + + memset(out, 0, sizeof(out)); + in = kzalloc(in_sz, GFP_KERNEL); + if (!in) + return -ENOMEM; + + MLX5_SET(modify_nic_vport_context_in, in, opcode, + MLX5_CMD_OP_MODIFY_NIC_VPORT_CONTEXT); + MLX5_SET(modify_nic_vport_context_in, in, + field_select.addresses_list, 1); + + nic_vport_ctx = MLX5_ADDR_OF(modify_nic_vport_context_in, in, + nic_vport_context); + + MLX5_SET(nic_vport_context, nic_vport_ctx, + allowed_list_type, list_type); + MLX5_SET(nic_vport_context, nic_vport_ctx, + allowed_list_size, list_size); + + for (i = 0; i < list_size; i++) { + u8 *curr_mac = MLX5_ADDR_OF(nic_vport_context, + nic_vport_ctx, + current_uc_mac_address[i]) + 2; + ether_addr_copy(curr_mac, addr_list[i]); + } + + err = mlx5_cmd_exec_check_status(dev, in, in_sz, out, sizeof(out)); + kfree(in); + return err; +} +EXPORT_SYMBOL_GPL(mlx5_modify_nic_vport_mac_list); + +int mlx5_query_nic_vport_vlan_list(struct mlx5_core_dev *dev, + u32 vport, + u16 *vlan_list, + int *list_size) +{ + u32 in[MLX5_ST_SZ_DW(query_nic_vport_context_in)]; + void *nic_vport_ctx; + int max_list_size; + int req_list_size; + int out_sz; + void *out; + void *vlan_addr; + int err; + int i; + + req_list_size = *list_size; + + max_list_size = 1 << MLX5_CAP_GEN_MAX(dev, log_max_vlan_list); + + if (req_list_size > max_list_size) { + mlx5_core_warn(dev, "Requested list size (%d) > (%d) max_list_size\n", + req_list_size, max_list_size); + req_list_size = max_list_size; + } + + out_sz = MLX5_ST_SZ_BYTES(modify_nic_vport_context_in) + + req_list_size * MLX5_ST_SZ_BYTES(vlan_layout); + + memset(in, 0, sizeof(in)); + out = kzalloc(out_sz, GFP_KERNEL); + if (!out) + return -ENOMEM; + + MLX5_SET(query_nic_vport_context_in, in, opcode, + MLX5_CMD_OP_QUERY_NIC_VPORT_CONTEXT); + MLX5_SET(query_nic_vport_context_in, in, allowed_list_type, + MLX5_NIC_VPORT_CONTEXT_ALLOWED_LIST_TYPE_VLAN_LIST); + MLX5_SET(query_nic_vport_context_in, in, vport_number, vport); + + if (vport) + MLX5_SET(query_nic_vport_context_in, in, other_vport, 1); + + err = mlx5_cmd_exec_check_status(dev, in, sizeof(in), out, out_sz); + if (err) + goto out; + + nic_vport_ctx = MLX5_ADDR_OF(query_nic_vport_context_out, out, + nic_vport_context); + req_list_size = MLX5_GET(nic_vport_context, nic_vport_ctx, + allowed_list_size); + + *list_size = req_list_size; + for (i = 0; i < req_list_size; i++) { + vlan_addr = MLX5_ADDR_OF(nic_vport_context, nic_vport_ctx, + current_uc_mac_address[i]); + vlan_list[i] = MLX5_GET(vlan_layout, vlan_addr, vlan); + } +out: + kfree(out); + return err; +} +EXPORT_SYMBOL_GPL(mlx5_query_nic_vport_vlan_list); + +int mlx5_modify_nic_vport_vlans(struct mlx5_core_dev *dev, + u16 vlans[], + int list_size) +{ + u32 out[MLX5_ST_SZ_DW(modify_nic_vport_context_out)]; + void *nic_vport_ctx; + int max_list_size; + int in_sz; + void *in; + int err; + int i; + + max_list_size = 1 << MLX5_CAP_GEN(dev, log_max_vlan_list); + + if (list_size > max_list_size) + return -ENOSPC; + + in_sz = MLX5_ST_SZ_BYTES(modify_nic_vport_context_in) + + list_size * MLX5_ST_SZ_BYTES(vlan_layout); + + memset(out, 0, sizeof(out)); + in = kzalloc(in_sz, GFP_KERNEL); + if (!in) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@freebsd.org Wed Jun 8 11:24:02 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B2766B6F7AF for <svn-src-projects@mailman.ysv.freebsd.org>; Wed, 8 Jun 2016 11:24:02 +0000 (UTC) (envelope-from bz@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 mx1.freebsd.org (Postfix) with ESMTPS id 852351217; Wed, 8 Jun 2016 11:24:02 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u58BO13L092141; Wed, 8 Jun 2016 11:24:01 GMT (envelope-from bz@FreeBSD.org) Received: (from bz@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u58BO1IH092140; Wed, 8 Jun 2016 11:24:01 GMT (envelope-from bz@FreeBSD.org) Message-Id: <201606081124.u58BO1IH092140@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: bz set sender to bz@FreeBSD.org using -f From: "Bjoern A. Zeeb" <bz@FreeBSD.org> Date: Wed, 8 Jun 2016 11:24:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301601 - projects/vnet/sys/netinet X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 08 Jun 2016 11:24:02 -0000 Author: bz Date: Wed Jun 8 11:24:01 2016 New Revision: 301601 URL: https://svnweb.freebsd.org/changeset/base/301601 Log: Replace the DELAY with a more sophisticated check to make sure the inps are all gone before doing the cleanup. We might decide to do a partial cleanup before polling, but for now bail on the safe side. Also use pause instead of DELAY [1]. Suggested by: rwatson [1] Sponsored by: The FreeBSD Foundation Modified: projects/vnet/sys/netinet/tcp_subr.c Modified: projects/vnet/sys/netinet/tcp_subr.c ============================================================================== --- projects/vnet/sys/netinet/tcp_subr.c Wed Jun 8 11:18:49 2016 (r301600) +++ projects/vnet/sys/netinet/tcp_subr.c Wed Jun 8 11:24:01 2016 (r301601) @@ -731,18 +731,19 @@ tcp_init(void) static void tcp_destroy(void *unused __unused) { - int error; + int error, n; /* * All our processes are gone, all our sockets should be cleaned * up, which means, we should be past the tcp_discardcb() calls. - * Sleep to let all tcpcb timers really disappear and then cleanup. - * Timewait will cleanup its queue and will be ready to go. - * XXX-BZ In theory a few ticks should be good enough to make sure - * the timers are all really gone. We should see if we could use a - * better metric here and, e.g., check a tcbcb count as an optimization? + * Sleep to let all tcpcb timers really disappear and cleanup. */ - DELAY(1000000 / hz); + do { + pause("tcpdes", hz/10); + INP_LIST_RLOCK(&V_tcbinfo); + n = V_tcbinfo.ipi_count; + INP_LIST_RUNLOCK(&V_tcbinfo); + } while (n != 0); tcp_hc_destroy(); syncache_destroy(); tcp_tw_destroy(); From owner-svn-src-projects@freebsd.org Wed Jun 8 11:57:15 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 65C4EB6FDAE for <svn-src-projects@mailman.ysv.freebsd.org>; Wed, 8 Jun 2016 11:57:15 +0000 (UTC) (envelope-from zec@fer.hr) Received: from mail.fer.hr (mail.fer.hr [161.53.72.233]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mail.fer.hr", Issuer "TERENA SSL CA 3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F097D13D9; Wed, 8 Jun 2016 11:57:13 +0000 (UTC) (envelope-from zec@fer.hr) Received: from x23 (161.53.63.210) by MAIL.fer.hr (161.53.72.233) with Microsoft SMTP Server (TLS) id 14.3.279.2; Wed, 8 Jun 2016 13:56:00 +0200 Date: Wed, 8 Jun 2016 13:56:47 +0200 From: Marko Zec <zec@fer.hr> To: "Bjoern A. Zeeb" <bz@freebsd.org> CC: <src-committers@freebsd.org>, <svn-src-projects@freebsd.org> Subject: Re: svn commit: r301601 - projects/vnet/sys/netinet Message-ID: <20160608135647.52b3bdec@x23> In-Reply-To: <201606081124.u58BO1IH092140@repo.freebsd.org> References: <201606081124.u58BO1IH092140@repo.freebsd.org> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.29; amd64-portbld-freebsd10.1) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Originating-IP: [161.53.63.210] X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 08 Jun 2016 11:57:15 -0000 On Wed, 8 Jun 2016 11:24:01 +0000 "Bjoern A. Zeeb" <bz@freebsd.org> wrote: > Author: bz > Date: Wed Jun 8 11:24:01 2016 > New Revision: 301601 > URL: https://svnweb.freebsd.org/changeset/base/301601 > > Log: > Replace the DELAY with a more sophisticated check to make sure > the inps are all gone before doing the cleanup. We might decide > to do a partial cleanup before polling, but for now bail on the > safe side. > > Also use pause instead of DELAY [1]. This is a welcome improvement! However, unconditionally pausing for 100 ms migt be an overpessimization here. Perhaps the pause could be moved after reading V_tcbinfo.ipi_count, in order to pause conditionally only on non-zero reads, which should almost never happen in practice, as the DELAY() hack was already deemed a safety belt in the first place. And even if / when the pause would be triggered, it would be probably enough to sleep for 10 ms or so - the removed DELAY() actually lasted for only a single clock tick. Marko > Suggested by: rwatson [1] > Sponsored by: The FreeBSD Foundation > > Modified: > projects/vnet/sys/netinet/tcp_subr.c > > Modified: projects/vnet/sys/netinet/tcp_subr.c > ============================================================================== > --- projects/vnet/sys/netinet/tcp_subr.c Wed Jun 8 11:18:49 > 2016 (r301600) +++ projects/vnet/sys/netinet/tcp_subr.c > Wed Jun 8 11:24:01 2016 (r301601) @@ -731,18 +731,19 @@ > tcp_init(void) static void > tcp_destroy(void *unused __unused) > { > - int error; > + int error, n; > > /* > * All our processes are gone, all our sockets should be > cleaned > * up, which means, we should be past the tcp_discardcb() > calls. > - * Sleep to let all tcpcb timers really disappear and then > cleanup. > - * Timewait will cleanup its queue and will be ready to go. > - * XXX-BZ In theory a few ticks should be good enough to > make sure > - * the timers are all really gone. We should see if we > could use a > - * better metric here and, e.g., check a tcbcb count as an > optimization? > + * Sleep to let all tcpcb timers really disappear and > cleanup. */ > - DELAY(1000000 / hz); > + do { > + pause("tcpdes", hz/10); > + INP_LIST_RLOCK(&V_tcbinfo); > + n = V_tcbinfo.ipi_count; > + INP_LIST_RUNLOCK(&V_tcbinfo); > + } while (n != 0); > tcp_hc_destroy(); > syncache_destroy(); > tcp_tw_destroy(); > From owner-svn-src-projects@freebsd.org Wed Jun 8 15:09:08 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id ABDC3B6F1E9 for <svn-src-projects@mailman.ysv.freebsd.org>; Wed, 8 Jun 2016 15:09:08 +0000 (UTC) (envelope-from gavin@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 mx1.freebsd.org (Postfix) with ESMTPS id 64DB212D0; Wed, 8 Jun 2016 15:09:08 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u58F97RX074473; Wed, 8 Jun 2016 15:09:07 GMT (envelope-from gavin@FreeBSD.org) Received: (from gavin@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u58F97Mt074472; Wed, 8 Jun 2016 15:09:07 GMT (envelope-from gavin@FreeBSD.org) Message-Id: <201606081509.u58F97Mt074472@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: gavin set sender to gavin@FreeBSD.org using -f From: Gavin Atkinson <gavin@FreeBSD.org> Date: Wed, 8 Jun 2016 15:09:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301633 - projects/pciehp X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Wed, 08 Jun 2016 15:09:08 -0000 Author: gavin Date: Wed Jun 8 15:09:07 2016 New Revision: 301633 URL: https://svnweb.freebsd.org/changeset/base/301633 Log: Remove projects/pciehp branch - a better, more complete solution has been committed to head in r299142 by jhb. Deleted: projects/pciehp/ From owner-svn-src-projects@freebsd.org Sat Jun 11 14:46:50 2016 Return-Path: <owner-svn-src-projects@freebsd.org> Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A0D87AF02D2 for <svn-src-projects@mailman.ysv.freebsd.org>; Sat, 11 Jun 2016 14:46:50 +0000 (UTC) (envelope-from ngie@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 mx1.freebsd.org (Postfix) with ESMTPS id 723802790; Sat, 11 Jun 2016 14:46:50 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u5BEknOO078668; Sat, 11 Jun 2016 14:46:49 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u5BEknSD078667; Sat, 11 Jun 2016 14:46:49 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201606111446.u5BEknSD078667@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Garrett Cooper <ngie@FreeBSD.org> Date: Sat, 11 Jun 2016 14:46:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r301834 - projects/bsnmp-improved-ipv6-support X-SVN-Group: projects 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.22 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" <svn-src-projects.freebsd.org> List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects/> List-Post: <mailto:svn-src-projects@freebsd.org> List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help> List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-projects>, <mailto:svn-src-projects-request@freebsd.org?subject=subscribe> X-List-Received-Date: Sat, 11 Jun 2016 14:46:50 -0000 Author: ngie Date: Sat Jun 11 14:46:49 2016 New Revision: 301834 URL: https://svnweb.freebsd.org/changeset/base/301834 Log: Copy ^/head to work on importing the improvements made by shonali@ in GSoC 2014 for improving IPv6 with bsnmpd More information about the project content being imported can be found here: https://wiki.freebsd.org/SummerOfCode2014/BSNMPEnhancements Sponsored by: EMC / Isilon Storage Division Added: - copied from r301833, head/ Directory Properties: projects/bsnmp-improved-ipv6-support/ (props changed)