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