svn commit: r238267 - in user/attilio/vmcontention:
gnu/usr.bin/cc/cc_tools sys/ia64/ia64 sys/ia64/include
sys/netinet/ipfw sys/netinet6 sys/vm
Attilio Rao
attilio at FreeBSD.org
Sun Jul 8 23:17:04 UTC 2012
Author: attilio
Date: Sun Jul 8 23:17:04 2012
New Revision: 238267
URL: http://svn.freebsd.org/changeset/base/238267
Log:
MFC
Modified:
user/attilio/vmcontention/gnu/usr.bin/cc/cc_tools/auto-host.h
user/attilio/vmcontention/sys/ia64/ia64/machdep.c
user/attilio/vmcontention/sys/ia64/ia64/mp_machdep.c
user/attilio/vmcontention/sys/ia64/include/md_var.h
user/attilio/vmcontention/sys/netinet/ipfw/ip_fw_table.c
user/attilio/vmcontention/sys/netinet6/frag6.c
user/attilio/vmcontention/sys/vm/vm_pageout.c
Directory Properties:
user/attilio/vmcontention/ (props changed)
user/attilio/vmcontention/gnu/usr.bin/cc/cc_tools/ (props changed)
user/attilio/vmcontention/sys/ (props changed)
Modified: user/attilio/vmcontention/gnu/usr.bin/cc/cc_tools/auto-host.h
==============================================================================
--- user/attilio/vmcontention/gnu/usr.bin/cc/cc_tools/auto-host.h Sun Jul 8 21:21:45 2012 (r238266)
+++ user/attilio/vmcontention/gnu/usr.bin/cc/cc_tools/auto-host.h Sun Jul 8 23:17:04 2012 (r238267)
@@ -261,7 +261,7 @@
/* Define if your assembler supports R_PPC_REL16 relocs. */
#ifndef USED_FOR_TARGET
-/* #undef HAVE_AS_REL16 */
+#define HAVE_AS_REL16
#endif
Modified: user/attilio/vmcontention/sys/ia64/ia64/machdep.c
==============================================================================
--- user/attilio/vmcontention/sys/ia64/ia64/machdep.c Sun Jul 8 21:21:45 2012 (r238266)
+++ user/attilio/vmcontention/sys/ia64/ia64/machdep.c Sun Jul 8 23:17:04 2012 (r238267)
@@ -506,6 +506,14 @@ cpu_pcpu_init(struct pcpu *pcpu, int cpu
}
void
+cpu_pcpu_setup(struct pcpu *pc, u_int acpi_id, u_int sapic_id)
+{
+
+ pc->pc_acpi_id = acpi_id;
+ pc->pc_md.lid = IA64_LID_SET_SAPIC_ID(sapic_id);
+}
+
+void
spinlock_enter(void)
{
struct thread *td;
@@ -791,7 +799,7 @@ ia64_init(void)
ia64_set_k4((u_int64_t)pcpup);
pcpu_init(pcpup, 0, sizeof(pcpu0));
dpcpu_init(ia64_physmem_alloc(DPCPU_SIZE, PAGE_SIZE), 0);
- PCPU_SET(md.lid, ia64_get_lid());
+ cpu_pcpu_setup(pcpup, ~0U, ia64_get_lid());
PCPU_SET(curthread, &thread0);
/*
Modified: user/attilio/vmcontention/sys/ia64/ia64/mp_machdep.c
==============================================================================
--- user/attilio/vmcontention/sys/ia64/ia64/mp_machdep.c Sun Jul 8 21:21:45 2012 (r238266)
+++ user/attilio/vmcontention/sys/ia64/ia64/mp_machdep.c Sun Jul 8 23:17:04 2012 (r238267)
@@ -309,9 +309,8 @@ cpu_mp_add(u_int acpi_id, u_int id, u_in
} else
pc = pcpup;
- pc->pc_acpi_id = acpi_id;
- pc->pc_md.lid = IA64_LID_SET_SAPIC_ID(sapic_id);
-
+ cpu_pcpu_setup(pc, acpi_id, sapic_id);
+
CPU_SET(pc->pc_cpuid, &all_cpus);
}
@@ -466,6 +465,7 @@ cpu_mp_unleash(void *dummy)
*/
ia64_bind_intr();
}
+SYSINIT(start_aps, SI_SUB_KICK_SCHEDULER, SI_ORDER_ANY, cpu_mp_unleash, NULL);
/*
* send an IPI to a set of cpus.
@@ -522,5 +522,3 @@ ipi_send(struct pcpu *cpu, int xiv)
ia64_mf_a();
CTR3(KTR_SMP, "ipi_send(%p, %d): cpuid=%d", cpu, xiv, PCPU_GET(cpuid));
}
-
-SYSINIT(start_aps, SI_SUB_SMP, SI_ORDER_FIRST, cpu_mp_unleash, NULL);
Modified: user/attilio/vmcontention/sys/ia64/include/md_var.h
==============================================================================
--- user/attilio/vmcontention/sys/ia64/include/md_var.h Sun Jul 8 21:21:45 2012 (r238266)
+++ user/attilio/vmcontention/sys/ia64/include/md_var.h Sun Jul 8 23:17:04 2012 (r238267)
@@ -61,6 +61,7 @@ ia64_bsp_adjust(uint64_t bsp, int nslots
#ifdef _KERNEL
struct _special;
+struct pcpu;
struct thread;
struct trapframe;
@@ -80,6 +81,7 @@ void *acpi_find_table(const char *sig);
void busdma_swi(void);
int copyout_regstack(struct thread *, uint64_t *, uint64_t *);
void cpu_mp_add(u_int, u_int, u_int);
+void cpu_pcpu_setup(struct pcpu *, u_int, u_int);
int do_ast(struct trapframe *);
void ia32_trap(int, struct trapframe *);
int ia64_count_cpus(void);
Modified: user/attilio/vmcontention/sys/netinet/ipfw/ip_fw_table.c
==============================================================================
--- user/attilio/vmcontention/sys/netinet/ipfw/ip_fw_table.c Sun Jul 8 21:21:45 2012 (r238266)
+++ user/attilio/vmcontention/sys/netinet/ipfw/ip_fw_table.c Sun Jul 8 23:17:04 2012 (r238267)
@@ -344,9 +344,12 @@ ipfw_del_table_entry(struct ip_fw_chain
struct xaddr_iface ifname, ifmask;
memset(&ifname, 0, sizeof(ifname));
+ /* Include last \0 into comparison */
+ mlen++;
+
/* Set 'total' structure length */
- KEY_LEN(ifname) = mlen;
- KEY_LEN(ifmask) = mlen;
+ KEY_LEN(ifname) = KEY_LEN_IFACE + mlen;
+ KEY_LEN(ifmask) = KEY_LEN_IFACE + mlen;
/* Assume direct match */
/* FIXME: Add interface pattern matching */
#if 0
@@ -569,7 +572,7 @@ ipfw_lookup_table_extended(struct ip_fw_
case IPFW_TABLE_INTERFACE:
KEY_LEN(iface) = KEY_LEN_IFACE +
- strlcpy(iface.ifname, (char *)paddr, IF_NAMESIZE);
+ strlcpy(iface.ifname, (char *)paddr, IF_NAMESIZE) + 1;
/* Assume direct match */
/* FIXME: Add interface pattern matching */
xent = (struct table_xentry *)(rnh->rnh_lookup(&iface, NULL, rnh));
Modified: user/attilio/vmcontention/sys/netinet6/frag6.c
==============================================================================
--- user/attilio/vmcontention/sys/netinet6/frag6.c Sun Jul 8 21:21:45 2012 (r238266)
+++ user/attilio/vmcontention/sys/netinet6/frag6.c Sun Jul 8 23:17:04 2012 (r238267)
@@ -221,6 +221,19 @@ frag6_input(struct mbuf **mp, int *offp,
/* offset now points to data portion */
offset += sizeof(struct ip6_frag);
+ /*
+ * XXX-BZ RFC XXXX (draft-gont-6man-ipv6-atomic-fragments)
+ * Handle "atomic" fragments (offset and m bit set to 0) upfront,
+ * unrelated to any reassembly. Just skip the fragment header.
+ */
+ if ((ip6f->ip6f_offlg & ~IP6F_RESERVED_MASK) == 0) {
+ /* XXX-BZ we want dedicated counters for this. */
+ V_ip6stat.ip6s_reassembled++;
+ in6_ifstat_inc(dstifp, ifs6_reass_ok);
+ *offp = offset;
+ return (ip6f->ip6f_nxt);
+ }
+
IP6Q_LOCK();
/*
Modified: user/attilio/vmcontention/sys/vm/vm_pageout.c
==============================================================================
--- user/attilio/vmcontention/sys/vm/vm_pageout.c Sun Jul 8 21:21:45 2012 (r238266)
+++ user/attilio/vmcontention/sys/vm/vm_pageout.c Sun Jul 8 23:17:04 2012 (r238267)
@@ -1030,7 +1030,6 @@ rescan0:
++pageout_lock_miss;
if (object->flags & OBJ_MIGHTBEDIRTY)
vnodes_skipped++;
- vm_page_lock_queues();
goto unlock_and_continue;
}
KASSERT(mp != NULL,
@@ -1041,7 +1040,6 @@ rescan0:
if (vget(vp, LK_EXCLUSIVE | LK_TIMELOCK,
curthread)) {
VM_OBJECT_LOCK(object);
- vm_page_lock_queues();
++pageout_lock_miss;
if (object->flags & OBJ_MIGHTBEDIRTY)
vnodes_skipped++;
@@ -1083,14 +1081,14 @@ rescan0:
* be undergoing I/O, so skip it
*/
if (m->hold_count) {
- vm_page_lock_queues();
- queues_locked = TRUE;
vm_page_unlock(m);
vm_page_requeue(m);
if (object->flags & OBJ_MIGHTBEDIRTY)
vnodes_skipped++;
goto unlock_and_continue;
}
+ vm_page_unlock_queues();
+ queues_locked = FALSE;
}
/*
More information about the svn-src-user
mailing list