Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Apr 2012 20:16:26 +0000 (UTC)
From:      Attilio Rao <attilio@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
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...
Message-ID:  <201204032016.q33KGQVW067091@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <bsd.lib.mk>

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 <sys/file.h>
 #include <sys/conf.h>
+#include <sys/mman.h>
 #define	_KERNEL
 #include <sys/mount.h>
 #include <sys/pipe.h>
@@ -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 ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204032016.q33KGQVW067091>