From owner-svn-src-user@FreeBSD.ORG Tue Apr 3 20:16:27 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9110B1065670; Tue, 3 Apr 2012 20:16:27 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 77D978FC08; Tue, 3 Apr 2012 20:16:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q33KGRRm067120; Tue, 3 Apr 2012 20:16:27 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q33KGQVW067091; Tue, 3 Apr 2012 20:16:26 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201204032016.q33KGQVW067091@svn.freebsd.org> From: Attilio Rao Date: Tue, 3 Apr 2012 20:16:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233854 - in user/attilio/vmcontention: bin/sh gnu/lib/libstdc++ gnu/lib/libsupc++ lib/libc/net lib/libprocstat libexec/rtld-elf sbin/ifconfig share/man/man4 share/man/man9 sys/amd64/ac... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Apr 2012 20:16:27 -0000 Author: attilio Date: Tue Apr 3 20:16:26 2012 New Revision: 233854 URL: http://svn.freebsd.org/changeset/base/233854 Log: MFC Added: user/attilio/vmcontention/gnu/lib/libsupc++/Version.map - copied unchanged from r233853, head/gnu/lib/libsupc++/Version.map user/attilio/vmcontention/sys/dev/mfi/mfi_syspd.c - copied unchanged from r233853, head/sys/dev/mfi/mfi_syspd.c user/attilio/vmcontention/sys/dev/mfi/mfi_tbolt.c - copied unchanged from r233853, head/sys/dev/mfi/mfi_tbolt.c user/attilio/vmcontention/sys/x86/include/legacyvar.h - copied unchanged from r233853, head/sys/x86/include/legacyvar.h user/attilio/vmcontention/sys/x86/x86/legacy.c - copied unchanged from r233853, head/sys/x86/x86/legacy.c Deleted: user/attilio/vmcontention/sys/amd64/amd64/legacy.c user/attilio/vmcontention/sys/amd64/include/legacyvar.h user/attilio/vmcontention/sys/i386/i386/legacy.c user/attilio/vmcontention/sys/i386/include/legacyvar.h user/attilio/vmcontention/sys/pc98/include/legacyvar.h Modified: user/attilio/vmcontention/bin/sh/jobs.c user/attilio/vmcontention/gnu/lib/libstdc++/Makefile user/attilio/vmcontention/gnu/lib/libsupc++/Makefile user/attilio/vmcontention/lib/libc/net/getaddrinfo.c user/attilio/vmcontention/lib/libc/net/name6.c user/attilio/vmcontention/lib/libprocstat/Symbol.map user/attilio/vmcontention/lib/libprocstat/Versions.def user/attilio/vmcontention/lib/libprocstat/libprocstat.3 user/attilio/vmcontention/lib/libprocstat/libprocstat.c user/attilio/vmcontention/lib/libprocstat/libprocstat.h user/attilio/vmcontention/libexec/rtld-elf/rtld.c user/attilio/vmcontention/sbin/ifconfig/ifconfig.8 user/attilio/vmcontention/sbin/ifconfig/ifpfsync.c user/attilio/vmcontention/share/man/man4/ahc.4 user/attilio/vmcontention/share/man/man9/ieee80211_crypto.9 user/attilio/vmcontention/sys/amd64/acpica/acpi_wakeup.c user/attilio/vmcontention/sys/amd64/amd64/mp_machdep.c user/attilio/vmcontention/sys/amd64/amd64/trap.c user/attilio/vmcontention/sys/cam/scsi/scsi_da.c user/attilio/vmcontention/sys/conf/files user/attilio/vmcontention/sys/conf/files.amd64 user/attilio/vmcontention/sys/conf/files.i386 user/attilio/vmcontention/sys/conf/files.pc98 user/attilio/vmcontention/sys/contrib/pf/net/if_pfsync.c user/attilio/vmcontention/sys/contrib/pf/net/if_pfsync.h user/attilio/vmcontention/sys/dev/e1000/if_em.c user/attilio/vmcontention/sys/dev/e1000/if_igb.c user/attilio/vmcontention/sys/dev/gpio/gpioc.c user/attilio/vmcontention/sys/dev/isci/isci_task_request.c user/attilio/vmcontention/sys/dev/mfi/mfi.c user/attilio/vmcontention/sys/dev/mfi/mfi_cam.c user/attilio/vmcontention/sys/dev/mfi/mfi_debug.c user/attilio/vmcontention/sys/dev/mfi/mfi_disk.c user/attilio/vmcontention/sys/dev/mfi/mfi_ioctl.h user/attilio/vmcontention/sys/dev/mfi/mfi_linux.c user/attilio/vmcontention/sys/dev/mfi/mfi_pci.c user/attilio/vmcontention/sys/dev/mfi/mfireg.h user/attilio/vmcontention/sys/dev/mfi/mfivar.h user/attilio/vmcontention/sys/dev/mpt/mpt_pci.c user/attilio/vmcontention/sys/dev/sound/usb/uaudio.c user/attilio/vmcontention/sys/dev/sound/usb/uaudioreg.h user/attilio/vmcontention/sys/dev/usb/controller/at91dci.c user/attilio/vmcontention/sys/dev/usb/controller/atmegadci.c user/attilio/vmcontention/sys/dev/usb/controller/avr32dci.c user/attilio/vmcontention/sys/dev/usb/controller/dwc_otg.c user/attilio/vmcontention/sys/dev/usb/controller/ehci.c user/attilio/vmcontention/sys/dev/usb/controller/musb_otg.c user/attilio/vmcontention/sys/dev/usb/controller/ohci.c user/attilio/vmcontention/sys/dev/usb/controller/uhci.c user/attilio/vmcontention/sys/dev/usb/controller/uss820dci.c user/attilio/vmcontention/sys/dev/usb/controller/xhci.c user/attilio/vmcontention/sys/dev/usb/input/atp.c user/attilio/vmcontention/sys/dev/usb/input/uep.c user/attilio/vmcontention/sys/dev/usb/input/uhid.c user/attilio/vmcontention/sys/dev/usb/input/ukbd.c user/attilio/vmcontention/sys/dev/usb/input/ums.c user/attilio/vmcontention/sys/dev/usb/misc/ufm.c user/attilio/vmcontention/sys/dev/usb/net/if_aue.c user/attilio/vmcontention/sys/dev/usb/net/if_axe.c user/attilio/vmcontention/sys/dev/usb/net/if_cdce.c user/attilio/vmcontention/sys/dev/usb/net/if_cue.c user/attilio/vmcontention/sys/dev/usb/net/if_ipheth.c user/attilio/vmcontention/sys/dev/usb/net/if_kue.c user/attilio/vmcontention/sys/dev/usb/net/if_rue.c user/attilio/vmcontention/sys/dev/usb/net/if_udav.c user/attilio/vmcontention/sys/dev/usb/net/if_usie.c user/attilio/vmcontention/sys/dev/usb/net/ruephy.c user/attilio/vmcontention/sys/dev/usb/net/uhso.c user/attilio/vmcontention/sys/dev/usb/serial/ubsa.c user/attilio/vmcontention/sys/dev/usb/serial/uchcom.c user/attilio/vmcontention/sys/dev/usb/serial/ucycom.c user/attilio/vmcontention/sys/dev/usb/serial/ufoma.c user/attilio/vmcontention/sys/dev/usb/serial/ulpt.c user/attilio/vmcontention/sys/dev/usb/serial/umodem.c user/attilio/vmcontention/sys/dev/usb/serial/uplcom.c user/attilio/vmcontention/sys/dev/usb/serial/usb_serial.c user/attilio/vmcontention/sys/dev/usb/serial/usb_serial.h user/attilio/vmcontention/sys/dev/usb/storage/umass.c user/attilio/vmcontention/sys/dev/usb/storage/urio.c user/attilio/vmcontention/sys/dev/usb/storage/ustorage_fs.c user/attilio/vmcontention/sys/dev/usb/template/usb_template.c user/attilio/vmcontention/sys/dev/usb/usb.h user/attilio/vmcontention/sys/dev/usb/usb_busdma.c user/attilio/vmcontention/sys/dev/usb/usb_compat_linux.c user/attilio/vmcontention/sys/dev/usb/usb_dev.c user/attilio/vmcontention/sys/dev/usb/usb_device.c user/attilio/vmcontention/sys/dev/usb/usb_handle_request.c user/attilio/vmcontention/sys/dev/usb/usb_hid.c user/attilio/vmcontention/sys/dev/usb/usb_hub.c user/attilio/vmcontention/sys/dev/usb/usb_msctest.c user/attilio/vmcontention/sys/dev/usb/usb_request.c user/attilio/vmcontention/sys/dev/usb/usb_request.h user/attilio/vmcontention/sys/dev/usb/usb_transfer.c user/attilio/vmcontention/sys/dev/usb/usbdi.h user/attilio/vmcontention/sys/dev/usb/usbhid.h user/attilio/vmcontention/sys/dev/usb/wlan/if_rum.c user/attilio/vmcontention/sys/dev/usb/wlan/if_run.c user/attilio/vmcontention/sys/dev/usb/wlan/if_uath.c user/attilio/vmcontention/sys/dev/usb/wlan/if_upgt.c user/attilio/vmcontention/sys/dev/usb/wlan/if_ural.c user/attilio/vmcontention/sys/dev/usb/wlan/if_urtw.c user/attilio/vmcontention/sys/dev/usb/wlan/if_zyd.c user/attilio/vmcontention/sys/i386/i386/trap.c user/attilio/vmcontention/sys/i386/xbox/xboxfb.c user/attilio/vmcontention/sys/kern/kern_descrip.c user/attilio/vmcontention/sys/kern/kern_exit.c user/attilio/vmcontention/sys/kern/kern_umtx.c user/attilio/vmcontention/sys/kern/uipc_shm.c user/attilio/vmcontention/sys/kern/uipc_socket.c user/attilio/vmcontention/sys/mips/mips/machdep.c user/attilio/vmcontention/sys/modules/mfi/Makefile user/attilio/vmcontention/sys/net80211/ieee80211_regdomain.c user/attilio/vmcontention/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c user/attilio/vmcontention/sys/netinet/ipfw/ip_fw_sockopt.c user/attilio/vmcontention/sys/sparc64/sparc64/trap.c user/attilio/vmcontention/sys/sys/mman.h user/attilio/vmcontention/sys/sys/param.h user/attilio/vmcontention/sys/ufs/ffs/ffs_softdep.c user/attilio/vmcontention/sys/ufs/ufs/ufs_vnops.c user/attilio/vmcontention/sys/x86/include/mca.h user/attilio/vmcontention/sys/x86/pci/pci_bus.c user/attilio/vmcontention/sys/x86/x86/mca.c user/attilio/vmcontention/sys/x86/x86/mptable_pci.c user/attilio/vmcontention/usr.bin/fstat/fstat.c user/attilio/vmcontention/usr.bin/procstat/procstat_files.c user/attilio/vmcontention/usr.sbin/arp/arp.c user/attilio/vmcontention/usr.sbin/makefs/cd9660/cd9660_eltorito.c user/attilio/vmcontention/usr.sbin/mfiutil/mfi_config.c user/attilio/vmcontention/usr.sbin/mfiutil/mfi_drive.c Directory Properties: user/attilio/vmcontention/ (props changed) user/attilio/vmcontention/gnu/lib/ (props changed) user/attilio/vmcontention/lib/libc/ (props changed) user/attilio/vmcontention/sbin/ (props changed) user/attilio/vmcontention/share/man/man4/ (props changed) user/attilio/vmcontention/sys/ (props changed) user/attilio/vmcontention/sys/conf/ (props changed) user/attilio/vmcontention/sys/contrib/pf/ (props changed) user/attilio/vmcontention/usr.bin/procstat/ (props changed) Modified: user/attilio/vmcontention/bin/sh/jobs.c ============================================================================== --- user/attilio/vmcontention/bin/sh/jobs.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/bin/sh/jobs.c Tue Apr 3 20:16:26 2012 (r233854) @@ -893,8 +893,8 @@ vforkexecshell(struct job *jp, char **ar struct jmploc jmploc; struct jmploc *savehandler; - TRACE(("vforkexecshell(%%%td, %p, %d) called\n", jp - jobtab, (void *)n, - mode)); + TRACE(("vforkexecshell(%%%td, %s, %p) called\n", jp - jobtab, argv[0], + (void *)pip)); INTOFF; flushall(); savehandler = handler; Modified: user/attilio/vmcontention/gnu/lib/libstdc++/Makefile ============================================================================== --- user/attilio/vmcontention/gnu/lib/libstdc++/Makefile Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/gnu/lib/libstdc++/Makefile Tue Apr 3 20:16:26 2012 (r233854) @@ -25,7 +25,7 @@ CXXFLAGS+= -fno-implicit-templates -ffun PO_CXXFLAGS= ${CXXFLAGS:N-ffunction-sections} DPADD= ${LIBM} -LDADD= -lm +LDADD= -lm -Wl,-f,libsupc++.so.1 # libstdc++ sources SRCS+= bitmap_allocator.cc pool_allocator.cc \ Modified: user/attilio/vmcontention/gnu/lib/libsupc++/Makefile ============================================================================== --- user/attilio/vmcontention/gnu/lib/libsupc++/Makefile Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/gnu/lib/libsupc++/Makefile Tue Apr 3 20:16:26 2012 (r233854) @@ -7,8 +7,8 @@ SRCDIR= ${.CURDIR}/../../../contrib/libs .PATH: ${SRCDIR} ${GCCLIB}/libiberty -# Static only. LIB= supc++ +SHLIB_MAJOR=1 SRCS+= del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc eh_alloc.cc eh_arm.cc \ eh_aux_runtime.cc eh_call.cc eh_catch.cc eh_exception.cc eh_globals.cc \ eh_personality.cc eh_term_handler.cc eh_terminate.cc eh_throw.cc \ @@ -36,4 +36,9 @@ unwind.h: ${GCCDIR}/unwind-generic.h SRCS+= unwind.h CLEANFILES+= unwind.h +# Symbol versioning + +VERSION_MAP= ${.CURDIR}/Version.map + + .include Copied: user/attilio/vmcontention/gnu/lib/libsupc++/Version.map (from r233853, head/gnu/lib/libsupc++/Version.map) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmcontention/gnu/lib/libsupc++/Version.map Tue Apr 3 20:16:26 2012 (r233854, copy of r233853, head/gnu/lib/libsupc++/Version.map) @@ -0,0 +1,137 @@ +## Linker script for GNU versioning (GNU ld 2.13.91+ only.) +## +## Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 +## Free Software Foundation, Inc. +## +## This file is part of the GNU ISO C++ Library. This library is free +## software; you can redistribute it and/or modify it under the +## terms of the GNU General Public License as published by the +## Free Software Foundation; either version 2, or (at your option) +## any later version. +## +## This library is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License along +## with this library; see the file COPYING. If not, write to the Free +## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +## USA. + +## $FreeBSD$ + + +# Symbols in the support library (libsupc++) have their own tag. +CXXABI_1.3 { + + global: + __cxa_allocate_exception; + __cxa_bad_cast; + __cxa_bad_typeid; + __cxa_begin_catch; + __cxa_begin_cleanup; + __cxa_call_unexpected; + __cxa_current_exception_type; + __cxa_demangle; + __cxa_end_catch; + __cxa_end_cleanup; + __cxa_free_exception; + __cxa_get_globals; + __cxa_get_globals_fast; + __cxa_guard_abort; + __cxa_guard_acquire; + __cxa_guard_release; + __cxa_pure_virtual; + __cxa_rethrow; + __cxa_throw; + __cxa_type_match; + __cxa_vec_cctor; + __cxa_vec_cleanup; + __cxa_vec_ctor; + __cxa_vec_delete2; + __cxa_vec_delete3; + __cxa_vec_delete; + __cxa_vec_dtor; + __cxa_vec_new2; + __cxa_vec_new3; + __cxa_vec_new; + __gxx_personality_v0; + __gxx_personality_sj0; + __dynamic_cast; + + # *_type_info classes, ctor and dtor + _ZN10__cxxabiv117__array_type_info*; + _ZN10__cxxabiv117__class_type_info*; + _ZN10__cxxabiv116__enum_type_info*; + _ZN10__cxxabiv120__function_type_info*; + _ZN10__cxxabiv123__fundamental_type_info*; + _ZN10__cxxabiv117__pbase_type_info*; + _ZN10__cxxabiv129__pointer_to_member_type_info*; + _ZN10__cxxabiv119__pointer_type_info*; + _ZN10__cxxabiv120__si_class_type_info*; + _ZN10__cxxabiv121__vmi_class_type_info*; + + # *_type_info classes, member functions + _ZNK10__cxxabiv117__class_type_info*; + _ZNK10__cxxabiv120__function_type_info*; + _ZNK10__cxxabiv117__pbase_type_info*; + _ZNK10__cxxabiv129__pointer_to_member_type_info*; + _ZNK10__cxxabiv119__pointer_type_info*; + _ZNK10__cxxabiv120__si_class_type_info*; + _ZNK10__cxxabiv121__vmi_class_type_info*; + + # virtual table + _ZTVN10__cxxabiv117__array_type_infoE; + _ZTVN10__cxxabiv117__class_type_infoE; + _ZTVN10__cxxabiv116__enum_type_infoE; + _ZTVN10__cxxabiv120__function_type_infoE; + _ZTVN10__cxxabiv123__fundamental_type_infoE; + _ZTVN10__cxxabiv117__pbase_type_infoE; + _ZTVN10__cxxabiv129__pointer_to_member_type_infoE; + _ZTVN10__cxxabiv119__pointer_type_infoE; + _ZTVN10__cxxabiv120__si_class_type_infoE; + _ZTVN10__cxxabiv121__vmi_class_type_infoE; + + # typeinfo structure (and some names) + _ZTI[a-fh-z]; + _ZTIP[a-fh-z]; + _ZTIPK[a-fh-z]; + _ZTIN10__cxxabiv117__array_type_infoE; + _ZTIN10__cxxabiv117__class_type_infoE; + _ZTIN10__cxxabiv116__enum_type_infoE; + _ZTIN10__cxxabiv120__function_type_infoE; + _ZTIN10__cxxabiv123__fundamental_type_infoE; + _ZTIN10__cxxabiv117__pbase_type_infoE; + _ZTIN10__cxxabiv129__pointer_to_member_type_infoE; + _ZTIN10__cxxabiv119__pointer_type_infoE; + _ZTIN10__cxxabiv120__si_class_type_infoE; + _ZTIN10__cxxabiv121__vmi_class_type_infoE; + + # typeinfo name + _ZTS[a-fh-z]; + _ZTSP[a-fh-z]; + _ZTSPK[a-fh-z]; + _ZTSN10__cxxabiv117__array_type_infoE; + _ZTSN10__cxxabiv117__class_type_infoE; + _ZTSN10__cxxabiv116__enum_type_infoE; + _ZTSN10__cxxabiv120__function_type_infoE; + _ZTSN10__cxxabiv123__fundamental_type_infoE; + _ZTSN10__cxxabiv117__pbase_type_infoE; + _ZTSN10__cxxabiv129__pointer_to_member_type_infoE; + _ZTSN10__cxxabiv119__pointer_type_infoE; + _ZTSN10__cxxabiv120__si_class_type_infoE; + _ZTSN10__cxxabiv121__vmi_class_type_infoE; + + # __gnu_cxx::_verbose_terminate_handler() + _ZN9__gnu_cxx27__verbose_terminate_handlerEv; + + local: + *; +}; + +CXXABI_1.3.1 { + + __cxa_get_exception_ptr; + +} CXXABI_1.3; Modified: user/attilio/vmcontention/lib/libc/net/getaddrinfo.c ============================================================================== --- user/attilio/vmcontention/lib/libc/net/getaddrinfo.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/lib/libc/net/getaddrinfo.c Tue Apr 3 20:16:26 2012 (r233854) @@ -847,8 +847,6 @@ set_source(struct ai_order *aio, struct struct in6_ifreq ifr6; u_int32_t flags6; - /* XXX: interface name should not be hardcoded */ - strncpy(ifr6.ifr_name, "lo0", sizeof(ifr6.ifr_name)); memset(&ifr6, 0, sizeof(ifr6)); memcpy(&ifr6.ifr_addr, ai.ai_addr, ai.ai_addrlen); if (_ioctl(s, SIOCGIFAFLAG_IN6, &ifr6) == 0) { Modified: user/attilio/vmcontention/lib/libc/net/name6.c ============================================================================== --- user/attilio/vmcontention/lib/libc/net/name6.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/lib/libc/net/name6.c Tue Apr 3 20:16:26 2012 (r233854) @@ -884,8 +884,6 @@ set_source(struct hp_order *aio, struct struct in6_ifreq ifr6; u_int32_t flags6; - /* XXX: interface name should not be hardcoded */ - strncpy(ifr6.ifr_name, "lo0", sizeof(ifr6.ifr_name)); memset(&ifr6, 0, sizeof(ifr6)); memcpy(&ifr6.ifr_addr, &ss, ss.ss_len); if (_ioctl(s, SIOCGIFAFLAG_IN6, &ifr6) == 0) { Modified: user/attilio/vmcontention/lib/libprocstat/Symbol.map ============================================================================== --- user/attilio/vmcontention/lib/libprocstat/Symbol.map Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/lib/libprocstat/Symbol.map Tue Apr 3 20:16:26 2012 (r233854) @@ -14,3 +14,7 @@ FBSD_1.2 { procstat_open_kvm; procstat_open_sysctl; }; + +FBSD_1.3 { + procstat_get_shm_info; +}; Modified: user/attilio/vmcontention/lib/libprocstat/Versions.def ============================================================================== --- user/attilio/vmcontention/lib/libprocstat/Versions.def Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/lib/libprocstat/Versions.def Tue Apr 3 20:16:26 2012 (r233854) @@ -3,3 +3,8 @@ # This version was first added to 9.0-current. FBSD_1.2 { }; + +# This version was first added to 10.0-current. +FBSD_1.3 { +} FBSD_1.2; + Modified: user/attilio/vmcontention/lib/libprocstat/libprocstat.3 ============================================================================== --- user/attilio/vmcontention/lib/libprocstat/libprocstat.3 Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/lib/libprocstat/libprocstat.3 Tue Apr 3 20:16:26 2012 (r233854) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 12, 2011 +.Dd April 1, 2012 .Dt LIBPROCSTAT 3 .Os .Sh NAME @@ -37,6 +37,7 @@ .Nm procstat_freeprocs , .Nm procstat_get_pipe_info , .Nm procstat_get_pts_info , +.Nm procstat_get_shm_info , .Nm procstat_get_socket_info , .Nm procstat_get_vnode_info .Nd library interface for file and process information retrieval @@ -70,6 +71,13 @@ .Fa "char *errbuf" .Fc .Ft int +.Fo procstat_get_shm_info +.Fa "struct procstat *procstat" +.Fa "struct filestat *fst" +.Fa "struct shmstat *shm" +.Fa "char *errbuf" +.Fc +.Ft int .Fo procstat_get_socket_info .Fa "struct procstat *procstat" .Fa "struct filestat *fst" @@ -191,10 +199,12 @@ function call. The .Fn procstat_get_pipe_info , .Fn procstat_get_pts_info , +.Fn procstat_get_shm_info , .Fn procstat_get_socket_info and .Fn procstat_get_vnode_info functions are used to retrive information about pipes, pseudo-terminals, +shared memory objects, sockets, and vnodes, respectively. Each of them have a similar interface API. The @@ -231,11 +241,14 @@ argument indicates an actual error messa .Nm procstat_get_pipe_info .It Li PS_FST_TYPE_PTS .Nm procstat_get_pts_info +.It Li PS_FST_TYPE_SHM +.Nm procstat_get_shm_info .El .Sh SEE ALSO .Xr fstat 1 , .Xr fuser 1 , .Xr pipe 2 , +.Xr shm_open 2 , .Xr socket 2 , .Xr kvm 3 , .Xr queue 3 , Modified: user/attilio/vmcontention/lib/libprocstat/libprocstat.c ============================================================================== --- user/attilio/vmcontention/lib/libprocstat/libprocstat.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/lib/libprocstat/libprocstat.c Tue Apr 3 20:16:26 2012 (r233854) @@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$"); #define _WANT_FILE #include #include +#include #define _KERNEL #include #include @@ -114,6 +115,10 @@ static int procstat_get_pts_info_sysctl( struct ptsstat *pts, char *errbuf); static int procstat_get_pts_info_kvm(kvm_t *kd, struct filestat *fst, struct ptsstat *pts, char *errbuf); +static int procstat_get_shm_info_sysctl(struct filestat *fst, + struct shmstat *shm, char *errbuf); +static int procstat_get_shm_info_kvm(kvm_t *kd, struct filestat *fst, + struct shmstat *shm, char *errbuf); static int procstat_get_socket_info_sysctl(struct filestat *fst, struct sockstat *sock, char *errbuf); static int procstat_get_socket_info_kvm(kvm_t *kd, struct filestat *fst, @@ -469,6 +474,10 @@ procstat_getfiles_kvm(struct procstat *p data = file.f_data; break; #endif + case DTYPE_SHM: + type = PS_FST_TYPE_SHM; + data = file.f_data; + break; default: continue; } @@ -849,6 +858,69 @@ procstat_get_pts_info_sysctl(struct file } int +procstat_get_shm_info(struct procstat *procstat, struct filestat *fst, + struct shmstat *shm, char *errbuf) +{ + + assert(shm); + if (procstat->type == PROCSTAT_KVM) { + return (procstat_get_shm_info_kvm(procstat->kd, fst, shm, + errbuf)); + } else if (procstat->type == PROCSTAT_SYSCTL) { + return (procstat_get_shm_info_sysctl(fst, shm, errbuf)); + } else { + warnx("unknown access method: %d", procstat->type); + snprintf(errbuf, _POSIX2_LINE_MAX, "error"); + return (1); + } +} + +static int +procstat_get_shm_info_kvm(kvm_t *kd, struct filestat *fst, + struct shmstat *shm, char *errbuf) +{ + struct shmfd shmfd; + void *shmfdp; + + assert(kd); + assert(shm); + assert(fst); + bzero(shm, sizeof(*shm)); + shmfdp = fst->fs_typedep; + if (shmfdp == NULL) + goto fail; + if (!kvm_read_all(kd, (unsigned long)shmfdp, &shmfd, + sizeof(struct shmfd))) { + warnx("can't read shmfd at %p", (void *)shmfdp); + goto fail; + } + shm->mode = S_IFREG | shmfd.shm_mode; + shm->size = shmfd.shm_size; + return (0); + +fail: + snprintf(errbuf, _POSIX2_LINE_MAX, "error"); + return (1); +} + +static int +procstat_get_shm_info_sysctl(struct filestat *fst, struct shmstat *shm, + char *errbuf __unused) +{ + struct kinfo_file *kif; + + assert(shm); + assert(fst); + bzero(shm, sizeof(*shm)); + kif = fst->fs_typedep; + if (kif == NULL) + return (0); + shm->size = kif->kf_un.kf_file.kf_file_size; + shm->mode = kif->kf_un.kf_file.kf_file_mode; + return (0); +} + +int procstat_get_vnode_info(struct procstat *procstat, struct filestat *fst, struct vnstat *vn, char *errbuf) { Modified: user/attilio/vmcontention/lib/libprocstat/libprocstat.h ============================================================================== --- user/attilio/vmcontention/lib/libprocstat/libprocstat.h Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/lib/libprocstat/libprocstat.h Tue Apr 3 20:16:26 2012 (r233854) @@ -123,6 +123,10 @@ struct pipestat { uint64_t addr; uint64_t peer; }; +struct shmstat { + uint64_t size; + uint16_t mode; +}; struct sockstat { uint64_t inp_ppcb; uint64_t so_addr; @@ -152,6 +156,8 @@ int procstat_get_pipe_info(struct procst struct pipestat *pipe, char *errbuf); int procstat_get_pts_info(struct procstat *procstat, struct filestat *fst, struct ptsstat *pts, char *errbuf); +int procstat_get_shm_info(struct procstat *procstat, struct filestat *fst, + struct shmstat *shm, char *errbuf); int procstat_get_socket_info(struct procstat *procstat, struct filestat *fst, struct sockstat *sock, char *errbuf); int procstat_get_vnode_info(struct procstat *procstat, struct filestat *fst, Modified: user/attilio/vmcontention/libexec/rtld-elf/rtld.c ============================================================================== --- user/attilio/vmcontention/libexec/rtld-elf/rtld.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/libexec/rtld-elf/rtld.c Tue Apr 3 20:16:26 2012 (r233854) @@ -2585,7 +2585,9 @@ dlopen_object(const char *name, int fd, name); GDB_STATE(RT_CONSISTENT,obj ? &obj->linkmap : NULL); - map_stacks_exec(&lockstate); + if (!(lo_flags & RTLD_LO_EARLY)) { + map_stacks_exec(&lockstate); + } if (initlist_objects_ifunc(&initlist, (mode & RTLD_MODEMASK) == RTLD_NOW, (lo_flags & RTLD_LO_EARLY) ? SYMLOOK_EARLY : 0, Modified: user/attilio/vmcontention/sbin/ifconfig/ifconfig.8 ============================================================================== --- user/attilio/vmcontention/sbin/ifconfig/ifconfig.8 Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sbin/ifconfig/ifconfig.8 Tue Apr 3 20:16:26 2012 (r233854) @@ -28,7 +28,7 @@ .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 .\" $FreeBSD$ .\" -.Dd March 7, 2012 +.Dd April 3, 2012 .Dt IFCONFIG 8 .Os .Sh NAME @@ -2380,10 +2380,28 @@ The following parameters are specific to .Xr pfsync 4 interfaces: .Bl -tag -width indent +.It Cm syncdev Ar iface +Use the specified interface +to send and receive pfsync state synchronisation messages. +.It Fl syncdev +Stop sending pfsync state synchronisation messages over the network. +.It Cm syncpeer Ar peer_address +Make the pfsync link point-to-point rather than using +multicast to broadcast the state synchronisation messages. +The peer_address is the IP address of the other host taking part in +the pfsync cluster. +.It Fl syncpeer +Broadcast the packets using multicast. .It Cm maxupd Ar n Set the maximum number of updates for a single state which can be collapsed into one. This is an 8-bit number; the default value is 128. +.It Cm defer +Defer transmission of the first packet in a state until a peer has +acknowledged that the associated state has been inserted. +.It Fl defer +Do not defer the first packet in a state. +This is the default. .El .Pp The following parameters are specific to Modified: user/attilio/vmcontention/sbin/ifconfig/ifpfsync.c ============================================================================== --- user/attilio/vmcontention/sbin/ifconfig/ifpfsync.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sbin/ifconfig/ifpfsync.c Tue Apr 3 20:16:26 2012 (r233854) @@ -52,6 +52,7 @@ void setpfsync_syncpeer(const char *, in void unsetpfsync_syncpeer(const char *, int, int, const struct afswtch *); void setpfsync_syncpeer(const char *, int, int, const struct afswtch *); void setpfsync_maxupd(const char *, int, int, const struct afswtch *); +void setpfsync_defer(const char *, int, int, const struct afswtch *); void pfsync_status(int); void @@ -162,6 +163,23 @@ setpfsync_maxupd(const char *val, int d, err(1, "SIOCSETPFSYNC"); } +/* ARGSUSED */ +void +setpfsync_defer(const char *val, int d, int s, const struct afswtch *rafp) +{ + struct pfsyncreq preq; + + memset((char *)&preq, 0, sizeof(struct pfsyncreq)); + ifr.ifr_data = (caddr_t)&preq; + + if (ioctl(s, SIOCGETPFSYNC, (caddr_t)&ifr) == -1) + err(1, "SIOCGETPFSYNC"); + + preq.pfsyncr_defer = d; + if (ioctl(s, SIOCSETPFSYNC, (caddr_t)&ifr) == -1) + err(1, "SIOCSETPFSYNC"); +} + void pfsync_status(int s) { @@ -183,8 +201,10 @@ pfsync_status(int s) printf("syncpeer: %s ", inet_ntoa(preq.pfsyncr_syncpeer)); if (preq.pfsyncr_syncdev[0] != '\0' || - preq.pfsyncr_syncpeer.s_addr != INADDR_PFSYNC_GROUP) - printf("maxupd: %d\n", preq.pfsyncr_maxupdates); + preq.pfsyncr_syncpeer.s_addr != INADDR_PFSYNC_GROUP) { + printf("maxupd: %d ", preq.pfsyncr_maxupdates); + printf("defer: %s\n", preq.pfsyncr_defer ? "on" : "off"); + } } static struct cmd pfsync_cmds[] = { @@ -194,7 +214,9 @@ static struct cmd pfsync_cmds[] = { DEF_CMD("-syncif", 1, unsetpfsync_syncdev), DEF_CMD_ARG("syncpeer", setpfsync_syncpeer), DEF_CMD("-syncpeer", 1, unsetpfsync_syncpeer), - DEF_CMD_ARG("maxupd", setpfsync_maxupd) + DEF_CMD_ARG("maxupd", setpfsync_maxupd), + DEF_CMD("defer", 1, setpfsync_defer), + DEF_CMD("-defer", 0, setpfsync_defer), }; static struct afswtch af_pfsync = { .af_name = "af_pfsync", Modified: user/attilio/vmcontention/share/man/man4/ahc.4 ============================================================================== --- user/attilio/vmcontention/share/man/man4/ahc.4 Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/share/man/man4/ahc.4 Tue Apr 3 20:16:26 2012 (r233854) @@ -147,21 +147,21 @@ Note that wide and twin channel features by a particular chip, may be disabled in a particular motherboard or card design. .Bd -ragged -offset indent -.Bl -column "aic7770 " "10 " "EISA/VL " "10MHz " "16bit " "SCBs " Features -.Em "Chip MIPS Bus MaxSync MaxWidth SCBs Features" -aic7770 10 EISA/VL 10MHz 16Bit 4 1 -aic7850 10 PCI/32 10MHz 8Bit 3 -aic7860 10 PCI/32 20MHz 8Bit 3 -aic7870 10 PCI/32 10MHz 16Bit 16 -aic7880 10 PCI/32 20MHz 16Bit 16 -aic7890 20 PCI/32 40MHz 16Bit 16 3 4 5 6 7 8 -aic7891 20 PCI/64 40MHz 16Bit 16 3 4 5 6 7 8 -aic7892 20 PCI/64 80MHz 16Bit 16 3 4 5 6 7 8 -aic7895 15 PCI/32 20MHz 16Bit 16 2 3 4 5 -aic7895C 15 PCI/32 20MHz 16Bit 16 2 3 4 5 8 -aic7896 20 PCI/32 40MHz 16Bit 16 2 3 4 5 6 7 8 -aic7897 20 PCI/64 40MHz 16Bit 16 2 3 4 5 6 7 8 -aic7899 20 PCI/64 80MHz 16Bit 16 2 3 4 5 6 7 8 +.Bl -column "aic7895CX" "MIPSX" "EISA/VLX" "MaxSyncX" "MaxWidthX" "SCBsX" "2 3 4 5 6 7 8X" +.It Em "Chip" Ta "MIPS" Ta "Bus" Ta "MaxSync" Ta "MaxWidth" Ta "SCBs" Ta "Features" +.It "aic7770" Ta "10" Ta "EISA/VL" Ta "10MHz" Ta "16Bit" Ta "4" Ta "1" +.It "aic7850" Ta "10" Ta "PCI/32" Ta "10MHz" Ta "8Bit" Ta "3" Ta "" +.It "aic7860" Ta "10" Ta "PCI/32" Ta "20MHz" Ta "8Bit" Ta "3" Ta "" +.It "aic7870" Ta "10" Ta "PCI/32" Ta "10MHz" Ta "16Bit" Ta "16" Ta "" +.It "aic7880" Ta "10" Ta "PCI/32" Ta "20MHz" Ta "16Bit" Ta "16" Ta "" +.It "aic7890" Ta "20" Ta "PCI/32" Ta "40MHz" Ta "16Bit" Ta "16" Ta "3 4 5 6 7 8" +.It "aic7891" Ta "20" Ta "PCI/64" Ta "40MHz" Ta "16Bit" Ta "16" Ta "3 4 5 6 7 8" +.It "aic7892" Ta "20" Ta "PCI/64" Ta "80MHz" Ta "16Bit" Ta "16" Ta "3 4 5 6 7 8" +.It "aic7895" Ta "15" Ta "PCI/32" Ta "20MHz" Ta "16Bit" Ta "16" Ta "2 3 4 5" +.It "aic7895C" Ta "15" Ta "PCI/32" Ta "20MHz" Ta "16Bit" Ta "16" Ta "2 3 4 5 8" +.It "aic7896" Ta "20" Ta "PCI/32" Ta "40MHz" Ta "16Bit" Ta "16" Ta "2 3 4 5 6 7 8" +.It "aic7897" Ta "20" Ta "PCI/64" Ta "40MHz" Ta "16Bit" Ta "16" Ta "2 3 4 5 6 7 8" +.It "aic7899" Ta "20" Ta "PCI/64" Ta "80MHz" Ta "16Bit" Ta "16" Ta "2 3 4 5 6 7 8" .El .Pp .Bl -enum -compact Modified: user/attilio/vmcontention/share/man/man9/ieee80211_crypto.9 ============================================================================== --- user/attilio/vmcontention/share/man/man9/ieee80211_crypto.9 Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/share/man/man9/ieee80211_crypto.9 Tue Apr 3 20:16:26 2012 (r233854) @@ -127,7 +127,7 @@ driver is unable to provide necessary ha cipher modules register their services using .Fn ieee80211_crypto_register and supply a template that describes their operation. -This +This .Vt ieee80211_cipher structure defines protocol-related state such as the number of bytes of space in the 802.11 header to reserve/remove during encap/decap @@ -153,7 +153,7 @@ hardware. .Sh CRYPTO KEY MANAGEMENT The .Nm net80211 -layer implements a per-vap 4-element +layer implements a per-vap 4-element .Dq global key table and a per-station .Dq unicast key @@ -235,7 +235,7 @@ to the driver that are already prepared For receive, drivers mark frames with the .Dv M_WEP mbuf flag to indicate the hardware has decrypted the payload. -If frames have the +If frames have the .Dv IEEE80211_FC1_WEP bit marked in their 802.11 header and are not tagged with .Dv M_WEP Modified: user/attilio/vmcontention/sys/amd64/acpica/acpi_wakeup.c ============================================================================== --- user/attilio/vmcontention/sys/amd64/acpica/acpi_wakeup.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/amd64/acpica/acpi_wakeup.c Tue Apr 3 20:16:26 2012 (r233854) @@ -284,6 +284,7 @@ acpi_sleep_machdep(struct acpi_softc *sc } else { pmap_init_pat(); load_cr3(susppcbs[0]->pcb_cr3); + initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); #ifdef SMP Modified: user/attilio/vmcontention/sys/amd64/amd64/mp_machdep.c ============================================================================== --- user/attilio/vmcontention/sys/amd64/amd64/mp_machdep.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/amd64/amd64/mp_machdep.c Tue Apr 3 20:16:26 2012 (r233854) @@ -1425,6 +1425,7 @@ cpususpend_handler(void) } else { pmap_init_pat(); load_cr3(susppcbs[cpu]->pcb_cr3); + initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); } Modified: user/attilio/vmcontention/sys/amd64/amd64/trap.c ============================================================================== --- user/attilio/vmcontention/sys/amd64/amd64/trap.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/amd64/amd64/trap.c Tue Apr 3 20:16:26 2012 (r233854) @@ -233,8 +233,7 @@ trap(struct trapframe *frame) #endif if (type == T_MCHK) { - if (!mca_intr()) - trap_fatal(frame, 0); + mca_intr(); goto out; } Modified: user/attilio/vmcontention/sys/cam/scsi/scsi_da.c ============================================================================== --- user/attilio/vmcontention/sys/cam/scsi/scsi_da.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/cam/scsi/scsi_da.c Tue Apr 3 20:16:26 2012 (r233854) @@ -1631,9 +1631,7 @@ daregister(struct cam_periph *periph, vo softc->minimum_cmd_size = 16; /* Predict whether device may support READ CAPACITY(16). */ - if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3 || - (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC && - (cgd->inq_data.spc3_flags & SPC3_SID_PROTECT))) { + if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3) { softc->flags |= DA_FLAG_CAN_RC16; softc->state = DA_STATE_PROBE2; } Modified: user/attilio/vmcontention/sys/conf/files ============================================================================== --- user/attilio/vmcontention/sys/conf/files Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/conf/files Tue Apr 3 20:16:26 2012 (r233854) @@ -1558,6 +1558,8 @@ dev/mfi/mfi.c optional mfi dev/mfi/mfi_debug.c optional mfi dev/mfi/mfi_pci.c optional mfi pci dev/mfi/mfi_disk.c optional mfi +dev/mfi/mfi_syspd.c optional mfi +dev/mfi/mfi_tbolt.c optional mfi dev/mfi/mfi_linux.c optional mfi compat_linux dev/mfi/mfi_cam.c optional mfip scbus dev/mii/acphy.c optional miibus | acphy Modified: user/attilio/vmcontention/sys/conf/files.amd64 ============================================================================== --- user/attilio/vmcontention/sys/conf/files.amd64 Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/conf/files.amd64 Tue Apr 3 20:16:26 2012 (r233854) @@ -113,7 +113,6 @@ amd64/amd64/identcpu.c standard amd64/amd64/in_cksum.c optional inet | inet6 amd64/amd64/initcpu.c standard amd64/amd64/io.c optional io -amd64/amd64/legacy.c standard amd64/amd64/locore.S standard no-obj amd64/amd64/machdep.c standard amd64/amd64/mem.c optional mem @@ -477,6 +476,7 @@ x86/x86/busdma_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c standard +x86/x86/legacy.c standard x86/x86/local_apic.c standard x86/x86/mca.c standard x86/x86/mptable.c optional mptable Modified: user/attilio/vmcontention/sys/conf/files.i386 ============================================================================== --- user/attilio/vmcontention/sys/conf/files.i386 Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/conf/files.i386 Tue Apr 3 20:16:26 2012 (r233854) @@ -408,7 +408,6 @@ i386/i386/in_cksum.c optional inet | in i386/i386/initcpu.c standard i386/i386/io.c optional io i386/i386/k6_mem.c optional mem -i386/i386/legacy.c optional native i386/i386/locore.s optional native no-obj i386/xen/locore.s optional xen no-obj i386/i386/longrun.c optional cpu_enable_longrun @@ -529,6 +528,7 @@ x86/x86/busdma_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c optional apic +x86/x86/legacy.c optional native x86/x86/local_apic.c optional apic x86/x86/mca.c standard x86/x86/mptable.c optional apic native Modified: user/attilio/vmcontention/sys/conf/files.pc98 ============================================================================== --- user/attilio/vmcontention/sys/conf/files.pc98 Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/conf/files.pc98 Tue Apr 3 20:16:26 2012 (r233854) @@ -147,7 +147,6 @@ i386/i386/in_cksum.c optional inet | in i386/i386/initcpu.c standard i386/i386/io.c optional io i386/i386/k6_mem.c optional mem -i386/i386/legacy.c standard i386/i386/locore.s standard no-obj i386/i386/mem.c optional mem i386/i386/minidump_machdep.c standard @@ -252,6 +251,7 @@ x86/x86/busdma_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c optional apic +x86/x86/legacy.c standard x86/x86/local_apic.c optional apic x86/x86/mca.c standard x86/x86/mptable.c optional apic Modified: user/attilio/vmcontention/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- user/attilio/vmcontention/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 20:16:26 2012 (r233854) @@ -50,6 +50,7 @@ * 1.128 - cleanups * 1.146 - bzero() mbuf before sparsely filling it with data * 1.170 - SIOCSIFMTU checks + * 1.126, 1.142 - deferred packets processing */ #ifdef __FreeBSD__ @@ -262,6 +263,7 @@ struct pfsync_softc { struct pfsync_upd_reqs sc_upd_req_list; + int sc_defer; struct pfsync_deferrals sc_deferrals; u_int sc_deferred; @@ -1805,6 +1807,7 @@ pfsyncioctl(struct ifnet *ifp, u_long cm } pfsyncr.pfsyncr_syncpeer = sc->sc_sync_peer; pfsyncr.pfsyncr_maxupdates = sc->sc_maxupdates; + pfsyncr.pfsyncr_defer = sc->sc_defer; return (copyout(&pfsyncr, ifr->ifr_data, sizeof(pfsyncr))); case SIOCSETPFSYNC: @@ -1840,6 +1843,7 @@ pfsyncioctl(struct ifnet *ifp, u_long cm } #endif sc->sc_maxupdates = pfsyncr.pfsyncr_maxupdates; + sc->sc_defer = pfsyncr.pfsyncr_defer; if (pfsyncr.pfsyncr_syncdev[0] == 0) { sc->sc_sync_if = NULL; @@ -2378,10 +2382,7 @@ pfsync_insert_state(struct pf_state *st) pfsync_q_ins(st, PFSYNC_S_INS); - if (ISSET(st->state_flags, PFSTATE_ACK)) - schednetisr(NETISR_PFSYNC); - else - st->sync_updates = 0; + st->sync_updates = 0; } int defer = 10; @@ -2402,6 +2403,9 @@ pfsync_defer(struct pf_state *st, struct splassert(IPL_SOFTNET); #endif + if (!sc->sc_defer || m->m_flags & (M_BCAST|M_MCAST)) + return (0); + if (sc->sc_deferred >= 128) pfsync_undefer(TAILQ_FIRST(&sc->sc_deferrals), 0); @@ -2430,6 +2434,8 @@ pfsync_defer(struct pf_state *st, struct timeout_add(&pd->pd_tmo, defer); #endif + swi_sched(V_pfsync_swi_cookie, 0); + return (1); } Modified: user/attilio/vmcontention/sys/contrib/pf/net/if_pfsync.h ============================================================================== --- user/attilio/vmcontention/sys/contrib/pf/net/if_pfsync.h Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/contrib/pf/net/if_pfsync.h Tue Apr 3 20:16:26 2012 (r233854) @@ -265,7 +265,7 @@ struct pfsyncreq { char pfsyncr_syncdev[IFNAMSIZ]; struct in_addr pfsyncr_syncpeer; int pfsyncr_maxupdates; - int pfsyncr_authlevel; + int pfsyncr_defer; }; #ifdef __FreeBSD__ Modified: user/attilio/vmcontention/sys/dev/e1000/if_em.c ============================================================================== --- user/attilio/vmcontention/sys/dev/e1000/if_em.c Tue Apr 3 20:07:43 2012 (r233853) +++ user/attilio/vmcontention/sys/dev/e1000/if_em.c Tue Apr 3 20:16:26 2012 (r233854) @@ -193,13 +193,14 @@ static int em_detach(device_t); static int em_shutdown(device_t); static int em_suspend(device_t); static int em_resume(device_t); -static void em_start(struct ifnet *); -static void em_start_locked(struct ifnet *, struct tx_ring *); #ifdef EM_MULTIQUEUE static int em_mq_start(struct ifnet *, struct mbuf *); static int em_mq_start_locked(struct ifnet *, struct tx_ring *, struct mbuf *); static void em_qflush(struct ifnet *); +#else +static void em_start(struct ifnet *); +static void em_start_locked(struct ifnet *, struct tx_ring *); #endif static int em_ioctl(struct ifnet *, u_long, caddr_t); static void em_init(void *); @@ -234,7 +235,7 @@ static void em_enable_intr(struct adapte static void em_disable_intr(struct adapter *); static void em_update_stats_counters(struct adapter *); static void em_add_hw_stats(struct adapter *adapter); -static bool em_txeof(struct tx_ring *); +static void em_txeof(struct tx_ring *); static bool em_rxeof(struct rx_ring *, int, int *); #ifndef __NO_STRICT_ALIGNMENT static int em_fixup_rx(struct rx_ring *); @@ -847,6 +848,7 @@ static int em_resume(device_t dev) { struct adapter *adapter = device_get_softc(dev); + struct tx_ring *txr = adapter->tx_rings; struct ifnet *ifp = adapter->ifp; EM_CORE_LOCK(adapter); @@ -854,8 +856,22 @@ em_resume(device_t dev) e1000_resume_workarounds_pchlan(&adapter->hw); em_init_locked(adapter); em_init_manageability(adapter); + + if ((ifp->if_flags & IFF_UP) && + (ifp->if_drv_flags & IFF_DRV_RUNNING) && adapter->link_active) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { + EM_TX_LOCK(txr); +#ifdef EM_MULTIQUEUE + if (!drbr_empty(ifp, txr->br)) + em_mq_start_locked(ifp, txr, NULL); +#else + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + em_start_locked(ifp, txr); +#endif + EM_TX_UNLOCK(txr); + } + } EM_CORE_UNLOCK(adapter); - em_start(ifp); return bus_generic_resume(dev); } @@ -959,7 +975,7 @@ em_qflush(struct ifnet *ifp) } if_qflush(ifp); } -#endif /* EM_MULTIQUEUE */ +#else /* !EM_MULTIQUEUE */ static void em_start_locked(struct ifnet *ifp, struct tx_ring *txr) @@ -1020,14 +1036,9 @@ em_start(struct ifnet *ifp) em_start_locked(ifp, txr); EM_TX_UNLOCK(txr); } - /* - ** If we went inactive schedule - ** a task to clean up. - */ - if (ifp->if_drv_flags & IFF_DRV_OACTIVE) - taskqueue_enqueue(txr->tq, &txr->tx_task); return; } +#endif /* EM_MULTIQUEUE */ /********************************************************************* * Ioctl entry point @@ -1424,7 +1435,8 @@ em_poll(struct ifnet *ifp, enum poll_cmd if (!drbr_empty(ifp, txr->br)) em_mq_start_locked(ifp, txr, NULL); #else - em_start_locked(ifp, txr); + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + em_start_locked(ifp, txr); #endif EM_TX_UNLOCK(txr); @@ -1497,10 +1509,11 @@ em_handle_que(void *context, int pending if (!drbr_empty(ifp, txr->br)) em_mq_start_locked(ifp, txr, NULL); #else - em_start_locked(ifp, txr); + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + em_start_locked(ifp, txr); #endif EM_TX_UNLOCK(txr); - if (more || (ifp->if_drv_flags & IFF_DRV_OACTIVE)) { + if (more) { taskqueue_enqueue(adapter->tq, &adapter->que_task); return; } @@ -1521,17 +1534,21 @@ em_msix_tx(void *arg) { struct tx_ring *txr = arg; struct adapter *adapter = txr->adapter; - bool more; + struct ifnet *ifp = adapter->ifp; ++txr->tx_irq; EM_TX_LOCK(txr); - more = em_txeof(txr); + em_txeof(txr); +#ifdef EM_MULTIQUEUE + if (!drbr_empty(ifp, txr->br)) + em_mq_start_locked(ifp, txr, NULL); +#else + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + em_start_locked(ifp, txr); +#endif + /* Reenable this interrupt */ + E1000_WRITE_REG(&adapter->hw, E1000_IMS, txr->ims); EM_TX_UNLOCK(txr); - if (more) - taskqueue_enqueue(txr->tq, &txr->tx_task); - else - /* Reenable this interrupt */ - E1000_WRITE_REG(&adapter->hw, E1000_IMS, txr->ims); return; } @@ -1609,7 +1626,8 @@ em_handle_tx(void *context, int pending) if (!drbr_empty(ifp, txr->br)) em_mq_start_locked(ifp, txr, NULL); #else - em_start_locked(ifp, txr); + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + em_start_locked(ifp, txr); #endif E1000_WRITE_REG(&adapter->hw, E1000_IMS, txr->ims); EM_TX_UNLOCK(txr); @@ -1619,6 +1637,7 @@ static void em_handle_link(void *context, int pending) { struct adapter *adapter = context; + struct tx_ring *txr = adapter->tx_rings; struct ifnet *ifp = adapter->ifp; if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) @@ -1630,6 +1649,19 @@ em_handle_link(void *context, int pendin callout_reset(&adapter->timer, hz, em_local_timer, adapter); E1000_WRITE_REG(&adapter->hw, E1000_IMS, EM_MSIX_LINK | E1000_IMS_LSC); + if (adapter->link_active) { + for (int i = 0; i < adapter->num_queues; i++, txr++) { + EM_TX_LOCK(txr); +#ifdef EM_MULTIQUEUE + if (!drbr_empty(ifp, txr->br)) + em_mq_start_locked(ifp, txr, NULL); +#else + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) + em_start_locked(ifp, txr); +#endif + EM_TX_UNLOCK(txr); + } + } EM_CORE_UNLOCK(adapter); } @@ -2902,20 +2934,21 @@ em_setup_interface(device_t dev, struct ifp->if_softc = adapter; ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = em_ioctl; +#ifdef EM_MULTIQUEUE + /* Multiqueue stack interface */ + ifp->if_transmit = em_mq_start; + ifp->if_qflush = em_qflush; +#else ifp->if_start = em_start; IFQ_SET_MAXLEN(&ifp->if_snd, adapter->num_tx_desc - 1); ifp->if_snd.ifq_drv_maxlen = adapter->num_tx_desc - 1; IFQ_SET_READY(&ifp->if_snd); +#endif ether_ifattach(ifp, adapter->hw.mac.addr); ifp->if_capabilities = ifp->if_capenable = 0; -#ifdef EM_MULTIQUEUE - /* Multiqueue stack interface */ - ifp->if_transmit = em_mq_start; - ifp->if_qflush = em_qflush; -#endif ifp->if_capabilities |= IFCAP_HWCSUM | IFCAP_VLAN_HWCSUM; ifp->if_capabilities |= IFCAP_TSO4; @@ -3742,7 +3775,7 @@ em_tso_setup(struct tx_ring *txr, struct * tx_buffer is put back on the free queue. * **********************************************************************/ -static bool +static void em_txeof(struct tx_ring *txr) { struct adapter *adapter = txr->adapter; @@ -3762,14 +3795,14 @@ em_txeof(struct tx_ring *txr) selwakeuppri(&na->tx_si, PI_NET); EM_CORE_UNLOCK(adapter); EM_TX_LOCK(txr); - return (FALSE); + return; } #endif /* DEV_NETMAP */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***