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...
Attilio Rao
attilio at FreeBSD.org
Tue Apr 3 20:16:27 UTC 2012
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 ***
More information about the svn-src-user
mailing list