svn commit: r248152 - in user/attilio/vmcontention: . etc/mtree sys/amd64/amd64 sys/arm/arm sys/arm/include sys/boot/common sys/boot/fdt sys/conf sys/dev/ath sys/dev/ath/ath_hal/ar5416 sys/i386/i38...

Attilio Rao attilio at FreeBSD.org
Mon Mar 11 10:49:07 UTC 2013


Author: attilio
Date: Mon Mar 11 10:49:02 2013
New Revision: 248152
URL: http://svnweb.freebsd.org/changeset/base/248152

Log:
  MFC

Added:
  user/attilio/vmcontention/sys/libkern/arm/memcpy.S
     - copied unchanged from r248150, head/sys/libkern/arm/memcpy.S
Modified:
  user/attilio/vmcontention/ObsoleteFiles.inc
  user/attilio/vmcontention/etc/mtree/BSD.include.dist
  user/attilio/vmcontention/sys/amd64/amd64/pmap.c
  user/attilio/vmcontention/sys/arm/arm/db_trace.c
  user/attilio/vmcontention/sys/arm/arm/disassem.c
  user/attilio/vmcontention/sys/arm/arm/exception.S
  user/attilio/vmcontention/sys/arm/include/param.h
  user/attilio/vmcontention/sys/boot/common/load_elf.c
  user/attilio/vmcontention/sys/boot/fdt/fdt_loader_cmd.c
  user/attilio/vmcontention/sys/conf/Makefile.arm
  user/attilio/vmcontention/sys/conf/files.arm
  user/attilio/vmcontention/sys/conf/ldscript.arm
  user/attilio/vmcontention/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
  user/attilio/vmcontention/sys/dev/ath/if_ath_rx.c
  user/attilio/vmcontention/sys/dev/ath/if_athioctl.h
  user/attilio/vmcontention/sys/i386/i386/pmap.c
  user/attilio/vmcontention/sys/kern/kern_timeout.c
  user/attilio/vmcontention/sys/net80211/ieee80211_superg.c
  user/attilio/vmcontention/sys/vm/vm_page.c
  user/attilio/vmcontention/usr.bin/netstat/netstat.1
  user/attilio/vmcontention/usr.sbin/pkg/Makefile
Directory Properties:
  user/attilio/vmcontention/   (props changed)
  user/attilio/vmcontention/sys/   (props changed)
  user/attilio/vmcontention/sys/boot/   (props changed)
  user/attilio/vmcontention/sys/conf/   (props changed)

Modified: user/attilio/vmcontention/ObsoleteFiles.inc
==============================================================================
--- user/attilio/vmcontention/ObsoleteFiles.inc	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/ObsoleteFiles.inc	Mon Mar 11 10:49:02 2013	(r248152)
@@ -38,7 +38,7 @@
 #   xargs -n1 | sort | uniq -d;
 # done
 
-# 20130902: NWFS and NCP supports removed
+# 20130309: NWFS and NCP supports removed
 OLD_FILES+=usr/bin/ncplist
 OLD_FILES+=usr/bin/ncplogin
 OLD_FILES+=usr/bin/ncplogout
@@ -71,6 +71,9 @@ OLD_FILES+=usr/lib32/libncp.so
 OLD_LIBS+=usr/lib32/libncp.so.4
 OLD_FILES+=usr/lib32/libncp_p.a
 OLD_FILES+=usr/sbin/mount_nwfs
+OLD_FILES+=usr/share/examples/nwclient/dot.nwfsrc
+OLD_FILES+=usr/share/examples/nwclient/nwfs.sh.sample
+OLD_DIRS+=usr/share/examples/nwclient
 OLD_FILES+=usr/share/man/man1/ncplist.1.gz
 OLD_FILES+=usr/share/man/man1/ncplogin.1.gz
 OLD_FILES+=usr/share/man/man1/ncplogout.1.gz
@@ -99,6 +102,12 @@ OLD_FILES+=usr/share/man/man8/mount_port
 OLD_FILES+=usr/share/man/man4/coda.4.gz
 # 20130302: XFS support removed
 OLD_FILES+=usr/share/man/man5/xfs.5.gz
+# 20130302: Capsicum overhaul
+OLD_FILES+=usr/share/man/man2/cap_getrights.2.gz
+OLD_FILES+=usr/share/man/man2/cap_new.2.gz
+# 20130213: OpenSSL 1.0.1e import
+OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_verifyrecover.3.gz
+OLD_FILES+=usr/share/openssl/man/man3/EVP_PKEY_verifyrecover_init.3.gz
 # 20130116: removed long unused directories for .1aout section manpages
 OLD_FILES+=usr/share/man/en.ISO8859-1/man1aout
 OLD_FILES+=usr/share/man/en.UTF-8/man1aout

Modified: user/attilio/vmcontention/etc/mtree/BSD.include.dist
==============================================================================
--- user/attilio/vmcontention/etc/mtree/BSD.include.dist	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/etc/mtree/BSD.include.dist	Mon Mar 11 10:49:02 2013	(r248152)
@@ -174,8 +174,6 @@
         ..
         nullfs
         ..
-        portalfs
-        ..
         procfs
         ..
         udf

Modified: user/attilio/vmcontention/sys/amd64/amd64/pmap.c
==============================================================================
--- user/attilio/vmcontention/sys/amd64/amd64/pmap.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/amd64/amd64/pmap.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -670,7 +670,6 @@ pmap_bootstrap(vm_paddr_t *firstaddr)
 	 */
 	PMAP_LOCK_INIT(kernel_pmap);
 	kernel_pmap->pm_pml4 = (pdp_entry_t *)PHYS_TO_DMAP(KPML4phys);
-	kernel_pmap->pm_root = NULL;
 	CPU_FILL(&kernel_pmap->pm_active);	/* don't allow deactivation */
 	TAILQ_INIT(&kernel_pmap->pm_pvchunk);
 

Modified: user/attilio/vmcontention/sys/arm/arm/db_trace.c
==============================================================================
--- user/attilio/vmcontention/sys/arm/arm/db_trace.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/arm/arm/db_trace.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -377,7 +377,7 @@ db_stack_trace_cmd(struct unwind_state *
 		index = db_find_index(state->start_pc);
 
 		if (index->insn == EXIDX_CANTUNWIND) {
-			printf("Unable to unwind\n");
+			db_printf("Unable to unwind\n");
 			break;
 		} else if (index->insn & (1 << 31)) {
 			/* The data is within the instruction */
@@ -612,10 +612,13 @@ db_trace_self(void)
 {
 #ifdef __ARM_EABI__
 	struct unwind_state state;
-	register uint32_t sp __asm__ ("sp");
+	uint32_t sp;
+
+	/* Read the stack pointer */
+	__asm __volatile("mov %0, sp" : "=&r" (sp));
 
 	state.registers[FP] = (uint32_t)__builtin_frame_address(0);
-	state.registers[SP] = (uint32_t)sp;
+	state.registers[SP] = sp;
 	state.registers[LR] = (uint32_t)__builtin_return_address(0);
 	state.registers[PC] = (uint32_t)db_trace_self;
 

Modified: user/attilio/vmcontention/sys/arm/arm/disassem.c
==============================================================================
--- user/attilio/vmcontention/sys/arm/arm/disassem.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/arm/arm/disassem.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -130,7 +130,7 @@ static const struct arm32_insn arm32_i[]
     { 0x0c500000, 0x04100000, "ldr",	"daW" },
     { 0x0c500000, 0x04400000, "strb",	"daW" },
     { 0x0c500000, 0x04500000, "ldrb",	"daW" },
-#ifdef	__FreeBSD_ARCH_armv6__
+#if defined(__FreeBSD_ARCH_armv6__)  || (defined(__ARM_ARCH) && __ARM_ARCH >= 6)
     { 0xffffffff, 0xf57ff01f, "clrex",	"c" },
     { 0x0ff00ff0, 0x01800f90, "strex",	"dmo" },
     { 0x0ff00fff, 0x01900f9f, "ldrex",	"do" },

Modified: user/attilio/vmcontention/sys/arm/arm/exception.S
==============================================================================
--- user/attilio/vmcontention/sys/arm/arm/exception.S	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/arm/arm/exception.S	Mon Mar 11 10:49:02 2013	(r248152)
@@ -77,6 +77,9 @@ Lreset_panicmsg:
  *	Handler for the Software Interrupt exception.
  */
 ASENTRY_NP(swi_entry)
+	.fnstart
+	.cantunwind			/* Don't unwind past here */
+
 	PUSHFRAME
 
 	mov	r0, sp			/* Pass the frame to any function */
@@ -88,6 +91,7 @@ ASENTRY_NP(swi_entry)
 	DO_AST
 	PULLFRAME
 	movs	pc, lr			/* Exit */
+	.fnend
 
 /*
  * prefetch_abort_entry:

Modified: user/attilio/vmcontention/sys/arm/include/param.h
==============================================================================
--- user/attilio/vmcontention/sys/arm/include/param.h	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/arm/include/param.h	Mon Mar 11 10:49:02 2013	(r248152)
@@ -56,7 +56,7 @@
 #define	MACHINE		"arm"
 #endif
 #ifndef MACHINE_ARCH
-#ifdef __FreeBSD_ARCH_armv6__
+#if defined(__FreeBSD_ARCH_armv6__) || (defined(__ARM_ARCH) && __ARM_ARCH >= 6)
 #ifdef __ARMEB__
 #define	MACHINE_ARCH	"armv6eb"
 #else

Modified: user/attilio/vmcontention/sys/boot/common/load_elf.c
==============================================================================
--- user/attilio/vmcontention/sys/boot/common/load_elf.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/boot/common/load_elf.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -297,15 +297,16 @@ __elfN(loadimage)(struct preloaded_file 
 	 * the MI code below uses the p_vaddr fields with an offset added for
 	 * loading (doing so is arguably wrong).  To make loading work, we need
 	 * an offset that represents the difference between physical and virtual
-	 * addressing.  ARM kernels are always linked at 0xC0000000.  Depending
+	 * addressing.  ARM kernels are always linked at 0xCnnnnnnn.  Depending
 	 * on the headers, the offset value passed in may be physical or virtual
 	 * (because it typically comes from e_entry), but we always replace
 	 * whatever is passed in with the va<->pa offset.  On the other hand, we
-	 * only adjust the entry point if it's a virtual address to begin with.
+	 * always remove the high-order part of the entry address whether it's
+	 * physical or virtual, because it will be adjusted later for the actual
+	 * physical entry point based on where the image gets loaded.
 	 */
-	off = -0xc0000000u;
-	if ((ehdr->e_entry & 0xc0000000u) == 0xc0000000u)
-		ehdr->e_entry += off;
+	off = -0xc0000000;
+	ehdr->e_entry &= ~0xf0000000;
 #ifdef ELF_VERBOSE
 	printf("ehdr->e_entry 0x%08x, va<->pa off %llx\n", ehdr->e_entry, off);
 #endif
@@ -396,6 +397,8 @@ __elfN(loadimage)(struct preloaded_file 
 	    "_loadimage: failed to read section headers");
 	goto nosyms;
     }
+    file_addmetadata(fp, MODINFOMD_SHDR, chunk, shdr);
+
     symtabindex = -1;
     symstrindex = -1;
     for (i = 0; i < ehdr->e_shnum; i++) {

Modified: user/attilio/vmcontention/sys/boot/fdt/fdt_loader_cmd.c
==============================================================================
--- user/attilio/vmcontention/sys/boot/fdt/fdt_loader_cmd.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/boot/fdt/fdt_loader_cmd.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -118,16 +118,17 @@ static char cwd[FDT_CWD_LEN] = "/";
 static vm_offset_t
 fdt_find_static_dtb()
 {
-	Elf_Dyn dyn;
+	Elf_Ehdr *ehdr;
+	Elf_Shdr *shdr;
 	Elf_Sym sym;
-	vm_offset_t dyntab, esym, strtab, symtab, fdt_start;
+	vm_offset_t strtab, symtab, fdt_start;
 	uint64_t offs;
 	struct preloaded_file *kfp;
 	struct file_metadata *md;
 	char *strp;
-	int sym_count;
+	int i, sym_count;
 
-	symtab = strtab = dyntab = esym = 0;
+	symtab = strtab = 0;
 	strp = NULL;
 
 	offs = __elfN(relocation_offset);
@@ -136,42 +137,26 @@ fdt_find_static_dtb()
 	if (kfp == NULL)
 		return (0);
 
-	md = file_findmetadata(kfp, MODINFOMD_ESYM);
+	/* Locate the dynamic symbols and strtab. */
+	md = file_findmetadata(kfp, MODINFOMD_ELFHDR);
 	if (md == NULL)
 		return (0);
-	bcopy(md->md_data, &esym, sizeof(esym));
-	/* esym is already offset */
+	ehdr = (Elf_Ehdr *)md->md_data;
 
-	md = file_findmetadata(kfp, MODINFOMD_DYNAMIC);
+	md = file_findmetadata(kfp, MODINFOMD_SHDR);
 	if (md == NULL)
 		return (0);
-	bcopy(md->md_data, &dyntab, sizeof(dyntab));
-	dyntab += offs;
+	shdr = (Elf_Shdr *)md->md_data;
 
-	/* Locate STRTAB and DYNTAB */
-	for (;;) {
-		COPYOUT(dyntab, &dyn, sizeof(dyn));
-		if (dyn.d_tag == DT_STRTAB) {
-			strtab = (vm_offset_t)(dyn.d_un.d_ptr) + offs;
-		} else if (dyn.d_tag == DT_SYMTAB) {
-			symtab = (vm_offset_t)(dyn.d_un.d_ptr) + offs;
-		} else if (dyn.d_tag == DT_NULL) {
-			break;
+	for (i = 0; i < ehdr->e_shnum; ++i) {
+		if (shdr[i].sh_type == SHT_DYNSYM && symtab == 0) {
+			symtab = shdr[i].sh_addr + offs;
+			sym_count = shdr[i].sh_size / sizeof(Elf_Sym);
+		} else if (shdr[i].sh_type == SHT_STRTAB && strtab == 0) {
+			strtab = shdr[i].sh_addr + offs;
 		}
-		dyntab += sizeof(dyn);
 	}
 
-	if (symtab == 0 || strtab == 0) {
-		/*
-		 * No symtab? No strtab? That should not happen here,
-		 * and should have been verified during __elfN(loadimage).
-		 * This must be some kind of a bug.
-		 */
-		return (0);
-	}
-
-	sym_count = (int)(esym - symtab) / sizeof(Elf_Sym);
-
 	/*
 	 * The most efficent way to find a symbol would be to calculate a
 	 * hash, find proper bucket and chain, and thus find a symbol.

Modified: user/attilio/vmcontention/sys/conf/Makefile.arm
==============================================================================
--- user/attilio/vmcontention/sys/conf/Makefile.arm	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/conf/Makefile.arm	Mon Mar 11 10:49:02 2013	(r248152)
@@ -39,12 +39,18 @@ SYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/ldscri
 STRIP_FLAGS = -S
 .endif
 
+.if ${COMPILER_TYPE} != "clang"
 CFLAGS += -mno-thumb-interwork
+.endif
 
 .if empty(DDB_ENABLED)
 CFLAGS += -mno-apcs-frame
 .elif defined(WITH_ARM_EABI)
 CFLAGS += -funwind-tables
+.if ${COMPILER_TYPE} == "clang"
+# clang requires us to tell it to emit assembly with unwind information
+CFLAGS += -mllvm -arm-enable-ehabi
+.endif
 .endif
 
 SYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader ${LDFLAGS} \

Modified: user/attilio/vmcontention/sys/conf/files.arm
==============================================================================
--- user/attilio/vmcontention/sys/conf/files.arm	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/conf/files.arm	Mon Mar 11 10:49:02 2013	(r248152)
@@ -76,6 +76,7 @@ libkern/arm/divsi3.S		standard
 libkern/arm/ffs.S		standard
 libkern/arm/ldivmod.S		standard
 libkern/arm/ldivmod_helper.c	standard
+libkern/arm/memcpy.S		standard
 libkern/arm/muldi3.c		standard
 libkern/ashldi3.c		standard
 libkern/ashrdi3.c		standard

Modified: user/attilio/vmcontention/sys/conf/ldscript.arm
==============================================================================
--- user/attilio/vmcontention/sys/conf/ldscript.arm	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/conf/ldscript.arm	Mon Mar 11 10:49:02 2013	(r248152)
@@ -56,6 +56,7 @@ SECTIONS
   .init          : { *(.init)	} =0x9090
   .plt      : { *(.plt)	}
 
+  . = ALIGN(4);
   _extab_start = .;
   PROVIDE(extab_start = .);
   .ARM.extab : { *(.ARM.extab) }

Modified: user/attilio/vmcontention/sys/dev/ath/ath_hal/ar5416/ar5416reg.h
==============================================================================
--- user/attilio/vmcontention/sys/dev/ath/ath_hal/ar5416/ar5416reg.h	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/dev/ath/ath_hal/ar5416/ar5416reg.h	Mon Mar 11 10:49:02 2013	(r248152)
@@ -521,6 +521,7 @@
 #define	AR_PCU_TBTT_PROTECT		0x00200000 /* no xmit upto tbtt+20 uS */
 #define	AR_PCU_CLEAR_VMF		0x01000000 /* clear vmf mode (fast cc)*/
 #define	AR_PCU_CLEAR_BA_VALID		0x04000000 /* clear ba state */
+#define	AR_PCU_SEL_EVM			0x08000000 /* select EVM data or PLCP header */
 
 #define	AR_PCU_MISC_MODE2_MGMT_CRYPTO_ENABLE		0x00000002
 #define	AR_PCU_MISC_MODE2_NO_CRYPTO_FOR_NON_DATA_PKT	0x00000004

Modified: user/attilio/vmcontention/sys/dev/ath/if_ath_rx.c
==============================================================================
--- user/attilio/vmcontention/sys/dev/ath/if_ath_rx.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/dev/ath/if_ath_rx.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -399,13 +399,31 @@ ath_rx_tap_vendor(struct ifnet *ifp, str
 	sc->sc_rx_th.wr_v.evm[0] = rs->rs_evm0;
 	sc->sc_rx_th.wr_v.evm[1] = rs->rs_evm1;
 	sc->sc_rx_th.wr_v.evm[2] = rs->rs_evm2;
-	/* XXX TODO: extend this to include 3-stream EVM */
+	/* These are only populated from the AR9300 or later */
+	sc->sc_rx_th.wr_v.evm[3] = rs->rs_evm3;
+	sc->sc_rx_th.wr_v.evm[4] = rs->rs_evm4;
+
+	/* direction */
+	sc->sc_rx_th.wr_v.vh_flags = ATH_VENDOR_PKT_RX;
+
+	/* RX rate */
+	sc->sc_rx_th.wr_v.vh_rx_hwrate = rs->rs_rate;
+
+	/* RX flags */
+	sc->sc_rx_th.wr_v.vh_rs_flags = rs->rs_flags;
+
+	if (rs->rs_isaggr)
+		sc->sc_rx_th.wr_v.vh_flags |= ATH_VENDOR_PKT_ISAGGR;
+	if (rs->rs_moreaggr)
+		sc->sc_rx_th.wr_v.vh_flags |= ATH_VENDOR_PKT_MOREAGGR;
 
 	/* phyerr info */
-	if (rs->rs_status & HAL_RXERR_PHY)
+	if (rs->rs_status & HAL_RXERR_PHY) {
 		sc->sc_rx_th.wr_v.vh_phyerr_code = rs->rs_phyerr;
-	else
+		sc->sc_rx_th.wr_v.vh_flags |= ATH_VENDOR_PKT_RXPHYERR;
+	} else {
 		sc->sc_rx_th.wr_v.vh_phyerr_code = 0xff;
+	}
 	sc->sc_rx_th.wr_v.vh_rs_status = rs->rs_status;
 	sc->sc_rx_th.wr_v.vh_rssi = rs->rs_rssi;
 }

Modified: user/attilio/vmcontention/sys/dev/ath/if_athioctl.h
==============================================================================
--- user/attilio/vmcontention/sys/dev/ath/if_athioctl.h	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/dev/ath/if_athioctl.h	Mon Mar 11 10:49:02 2013	(r248152)
@@ -273,6 +273,12 @@ struct ath_rateioctl {
 #define	ATH_RADIOTAP_MAX_CHAINS		4
 
 /*
+ * AR9380 and later chips are 3x3, which requires
+ * 5 EVM DWORDs in HT40 mode.
+ */
+#define	ATH_RADIOTAP_MAX_EVM		5
+
+/*
  * The vendor radiotap header data needs to be:
  *
  * + Aligned to a 4 byte address
@@ -291,7 +297,7 @@ struct ath_radiotap_vendor_hdr {		/* 30 
 	uint8_t		vh_rx_chainmask;	/* 1 */
 
 	/* At this point it should be 4 byte aligned */
-	uint32_t	evm[ATH_RADIOTAP_MAX_CHAINS];	/* 4 * 4 = 16 */
+	uint32_t	evm[ATH_RADIOTAP_MAX_EVM];	/* 5 * 4 = 20 */
 
 	uint8_t		rssi_ctl[ATH_RADIOTAP_MAX_CHAINS];	/* 4 */
 	uint8_t		rssi_ext[ATH_RADIOTAP_MAX_CHAINS];	/* 4 */
@@ -299,7 +305,16 @@ struct ath_radiotap_vendor_hdr {		/* 30 
 	uint8_t		vh_phyerr_code;	/* Phy error code, or 0xff */
 	uint8_t		vh_rs_status;	/* RX status */
 	uint8_t		vh_rssi;	/* Raw RSSI */
-	uint8_t		vh_pad1[1];	/* Pad to 4 byte boundary */
+	uint8_t		vh_flags;	/* General flags */
+#define	ATH_VENDOR_PKT_RX	0x01
+#define	ATH_VENDOR_PKT_TX	0x02
+#define	ATH_VENDOR_PKT_RXPHYERR	0x04
+#define	ATH_VENDOR_PKT_ISAGGR	0x08
+#define	ATH_VENDOR_PKT_MOREAGGR	0x10
+
+	uint8_t		vh_rx_hwrate;	/* hardware RX ratecode */
+	uint8_t		vh_rs_flags;	/* RX HAL flags */
+	uint8_t		vh_pad[2];	/* pad to DWORD boundary */
 } __packed;
 #endif	/* ATH_ENABLE_RADIOTAP_VENDOR_EXT */
 

Modified: user/attilio/vmcontention/sys/i386/i386/pmap.c
==============================================================================
--- user/attilio/vmcontention/sys/i386/i386/pmap.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/i386/i386/pmap.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -393,7 +393,6 @@ pmap_bootstrap(vm_paddr_t firstaddr)
 #ifdef PAE
 	kernel_pmap->pm_pdpt = (pdpt_entry_t *) (KERNBASE + (u_int)IdlePDPT);
 #endif
-	kernel_pmap->pm_root = NULL;
 	CPU_FILL(&kernel_pmap->pm_active);	/* don't allow deactivation */
 	TAILQ_INIT(&kernel_pmap->pm_pvchunk);
 

Modified: user/attilio/vmcontention/sys/kern/kern_timeout.c
==============================================================================
--- user/attilio/vmcontention/sys/kern/kern_timeout.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/kern/kern_timeout.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -258,6 +258,8 @@ callout_callwheel_init(void *dummy)
 	/*
 	 * Calculate the size of the callout wheel and the preallocated
 	 * timeout() structures.
+	 * XXX: Clip callout to result of previous function of maxusers
+	 * maximum 384.  This is still huge, but acceptable.
 	 */
 	ncallout = imin(16 + maxproc + maxfiles, 18508);
 	TUNABLE_INT_FETCH("kern.ncallout", &ncallout);
@@ -294,7 +296,7 @@ callout_cpu_init(struct callout_cpu *cc)
 
 	mtx_init(&cc->cc_lock, "callout", NULL, MTX_SPIN | MTX_RECURSE);
 	SLIST_INIT(&cc->cc_callfree);
-	cc->cc_callwheel = malloc(sizeof(struct callout_tailq) * callwheelsize,
+	cc->cc_callwheel = malloc(sizeof(struct callout_list) * callwheelsize,
 	    M_CALLOUT, M_WAITOK);
 	for (i = 0; i < callwheelsize; i++)
 		LIST_INIT(&cc->cc_callwheel[i]);

Copied: user/attilio/vmcontention/sys/libkern/arm/memcpy.S (from r248150, head/sys/libkern/arm/memcpy.S)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/attilio/vmcontention/sys/libkern/arm/memcpy.S	Mon Mar 11 10:49:02 2013	(r248152, copy of r248150, head/sys/libkern/arm/memcpy.S)
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2012 Andrew Turner
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#include <machine/asm.h>
+__FBSDID("$FreeBSD$");
+
+#ifdef __ARM_EABI__
+
+ENTRY_NP(__aeabi_memcpy)
+	b	memcpy
+
+#endif
+

Modified: user/attilio/vmcontention/sys/net80211/ieee80211_superg.c
==============================================================================
--- user/attilio/vmcontention/sys/net80211/ieee80211_superg.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/net80211/ieee80211_superg.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -534,8 +534,6 @@ ff_flush(struct mbuf *head, struct mbuf 
 	struct ieee80211_node *ni;
 	struct ieee80211vap *vap;
 
-	IEEE80211_TX_LOCK_ASSERT(vap->iv_ic);
-
 	for (m = head; m != last; m = next) {
 		next = m->m_nextpkt;
 		m->m_nextpkt = NULL;

Modified: user/attilio/vmcontention/sys/vm/vm_page.c
==============================================================================
--- user/attilio/vmcontention/sys/vm/vm_page.c	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/sys/vm/vm_page.c	Mon Mar 11 10:49:02 2013	(r248152)
@@ -73,7 +73,7 @@
  *		* The page daemon can acquire and hold any pair of page queue
  *		  locks in any order.
  *
- *	- The object mutex is held when inserting or removing
+ *	- The object lock is required when inserting or removing
  *	  pages from an object (vm_page_insert() or vm_page_remove()).
  *
  */

Modified: user/attilio/vmcontention/usr.bin/netstat/netstat.1
==============================================================================
--- user/attilio/vmcontention/usr.bin/netstat/netstat.1	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/usr.bin/netstat/netstat.1	Mon Mar 11 10:49:02 2013	(r248152)
@@ -28,7 +28,7 @@
 .\"	@(#)netstat.1	8.8 (Berkeley) 4/18/94
 .\" $FreeBSD$
 .\"
-.Dd February 22, 2010
+.Dd March 10, 2013
 .Dt NETSTAT 1
 .Os
 .Sh NAME
@@ -301,6 +301,12 @@ is repeated, counters with a value of ze
 Show
 .Xr netisr 9
 statistics.
+The flags field shows available ISR handlers:
+.Bl -column ".Li W" ".Dv NETISR_SNP_FLAGS_DRAINEDCPU"
+.It Li C Ta Dv NETISR_SNP_FLAGS_M2CPUID Ta "Able to map mbuf to cpu id"
+.It Li D Ta Dv NETISR_SNP_FLAGS_DRAINEDCPU  Ta "Has queue drain handler"
+.It Li F Ta Dv NETISR_SNP_FLAGS_M2FLOW Ta "Able to map mbuf to flow id"
+.El
 .El
 .Pp
 Some options have the general meaning:

Modified: user/attilio/vmcontention/usr.sbin/pkg/Makefile
==============================================================================
--- user/attilio/vmcontention/usr.sbin/pkg/Makefile	Mon Mar 11 10:48:26 2013	(r248151)
+++ user/attilio/vmcontention/usr.sbin/pkg/Makefile	Mon Mar 11 10:49:02 2013	(r248152)
@@ -4,7 +4,7 @@ PROG=	pkg
 SRCS=	pkg.c dns_utils.c config.c
 
 NO_MAN=	yes
-DPADD=	${LIBARCHIVE} ${LIBELF} ${LIBFETCH} ${LIBBSDYML} ${LIBSUBF}
+DPADD=	${LIBARCHIVE} ${LIBELF} ${LIBFETCH} ${LIBBSDYML} ${LIBSBUF}
 LDADD=	-larchive -lelf -lfetch -lbsdyml -lsbuf
 
 .include <bsd.prog.mk>


More information about the svn-src-user mailing list