PERFORCE change 137999 for review
John Baldwin
jhb at FreeBSD.org
Tue Mar 18 12:55:08 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=137999
Change 137999 by jhb at jhb_zion on 2008/03/18 12:54:14
IFC @137998
Affected files ...
.. //depot/projects/smpng/sys/amd64/acpica/madt.c#16 integrate
.. //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#30 integrate
.. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#32 integrate
.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#70 integrate
.. //depot/projects/smpng/sys/amd64/amd64/mptable.c#13 integrate
.. //depot/projects/smpng/sys/amd64/include/atomic.h#31 integrate
.. //depot/projects/smpng/sys/amd64/isa/atpic.c#17 integrate
.. //depot/projects/smpng/sys/amd64/linux32/linux32_proto.h#23 integrate
.. //depot/projects/smpng/sys/amd64/linux32/linux32_syscall.h#23 integrate
.. //depot/projects/smpng/sys/amd64/linux32/linux32_sysent.c#23 integrate
.. //depot/projects/smpng/sys/amd64/linux32/syscalls.master#27 integrate
.. //depot/projects/smpng/sys/arm/arm/intr.c#17 integrate
.. //depot/projects/smpng/sys/arm/arm/machdep.c#23 integrate
.. //depot/projects/smpng/sys/arm/arm/vm_machdep.c#27 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_ses.c#18 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_misc.c#86 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_fcntl.c#26 integrate
.. //depot/projects/smpng/sys/conf/files#212 integrate
.. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#8 integrate
.. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/os/callb.c#2 integrate
.. //depot/projects/smpng/sys/contrib/opensolaris/uts/common/os/taskq.c#2 integrate
.. //depot/projects/smpng/sys/dev/aac/aac.c#59 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.c#89 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.h#55 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-disk.c#67 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-disk.h#19 integrate
.. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_ael1002.c#4 integrate
.. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_common.h#4 integrate
.. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_version.h#4 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_ioctl.h#4 integrate
.. //depot/projects/smpng/sys/dev/cxgb/cxgb_main.c#7 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#3 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#3 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_ddp.c#2 integrate
.. //depot/projects/smpng/sys/dev/cxgb/ulp/tom/cxgb_defs.h#3 integrate
.. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_amd.c#9 integrate
.. //depot/projects/smpng/sys/dev/ofw/ofw_console.c#27 integrate
.. //depot/projects/smpng/sys/dev/syscons/sysmouse.c#15 integrate
.. //depot/projects/smpng/sys/dev/usb/if_zyd.c#3 integrate
.. //depot/projects/smpng/sys/gdb/gdb_cons.c#3 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_drive.c#18 integrate
.. //depot/projects/smpng/sys/i386/acpica/acpi_wakeup.c#37 integrate
.. //depot/projects/smpng/sys/i386/acpica/madt.c#23 integrate
.. //depot/projects/smpng/sys/i386/cpufreq/est.c#9 integrate
.. //depot/projects/smpng/sys/i386/cpufreq/p4tcc.c#4 integrate
.. //depot/projects/smpng/sys/i386/i386/intr_machdep.c#30 integrate
.. //depot/projects/smpng/sys/i386/i386/local_apic.c#53 integrate
.. //depot/projects/smpng/sys/i386/i386/machdep.c#131 integrate
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#111 integrate
.. //depot/projects/smpng/sys/i386/i386/mptable.c#21 integrate
.. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#85 integrate
.. //depot/projects/smpng/sys/i386/include/atomic.h#49 integrate
.. //depot/projects/smpng/sys/i386/isa/atpic.c#20 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_proto.h#43 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_syscall.h#41 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_sysent.c#42 integrate
.. //depot/projects/smpng/sys/i386/linux/syscalls.master#48 integrate
.. //depot/projects/smpng/sys/i386/xbox/xbox.c#5 integrate
.. //depot/projects/smpng/sys/ia64/ia64/interrupt.c#40 integrate
.. //depot/projects/smpng/sys/ia64/ia64/machdep.c#114 integrate
.. //depot/projects/smpng/sys/ia64/ia64/sscdisk.c#19 integrate
.. //depot/projects/smpng/sys/ia64/include/atomic.h#14 integrate
.. //depot/projects/smpng/sys/ia64/isa/isa_dma.c#10 integrate
.. //depot/projects/smpng/sys/kern/init_main.c#72 integrate
.. //depot/projects/smpng/sys/kern/kern_alq.c#17 integrate
.. //depot/projects/smpng/sys/kern/kern_clock.c#59 integrate
.. //depot/projects/smpng/sys/kern/kern_conf.c#52 integrate
.. //depot/projects/smpng/sys/kern/kern_descrip.c#111 integrate
.. //depot/projects/smpng/sys/kern/kern_event.c#54 integrate
.. //depot/projects/smpng/sys/kern/kern_idle.c#31 integrate
.. //depot/projects/smpng/sys/kern/kern_intr.c#91 integrate
.. //depot/projects/smpng/sys/kern/kern_linker.c#91 integrate
.. //depot/projects/smpng/sys/kern/kern_malloc.c#50 integrate
.. //depot/projects/smpng/sys/kern/kern_mbuf.c#26 integrate
.. //depot/projects/smpng/sys/kern/kern_module.c#27 integrate
.. //depot/projects/smpng/sys/kern/kern_ntptime.c#23 integrate
.. //depot/projects/smpng/sys/kern/kern_poll.c#25 integrate
.. //depot/projects/smpng/sys/kern/kern_resource.c#76 integrate
.. //depot/projects/smpng/sys/kern/kern_shutdown.c#70 integrate
.. //depot/projects/smpng/sys/kern/kern_switch.c#71 integrate
.. //depot/projects/smpng/sys/kern/kern_synch.c#121 integrate
.. //depot/projects/smpng/sys/kern/kern_tc.c#46 integrate
.. //depot/projects/smpng/sys/kern/link_elf.c#45 integrate
.. //depot/projects/smpng/sys/kern/link_elf_obj.c#19 integrate
.. //depot/projects/smpng/sys/kern/sched_4bsd.c#71 integrate
.. //depot/projects/smpng/sys/kern/sched_ule.c#83 integrate
.. //depot/projects/smpng/sys/kern/subr_autoconf.c#12 integrate
.. //depot/projects/smpng/sys/kern/subr_eventhandler.c#23 integrate
.. //depot/projects/smpng/sys/kern/subr_log.c#18 integrate
.. //depot/projects/smpng/sys/kern/subr_prof.c#31 integrate
.. //depot/projects/smpng/sys/kern/subr_smp.c#49 integrate
.. //depot/projects/smpng/sys/kern/subr_witness.c#167 integrate
.. //depot/projects/smpng/sys/kern/tty_cons.c#39 integrate
.. //depot/projects/smpng/sys/kern/tty_pts.c#8 integrate
.. //depot/projects/smpng/sys/kern/tty_pty.c#52 integrate
.. //depot/projects/smpng/sys/kern/tty_subr.c#9 integrate
.. //depot/projects/smpng/sys/kern/tty_tty.c#19 integrate
.. //depot/projects/smpng/sys/kern/uipc_domain.c#21 integrate
.. //depot/projects/smpng/sys/kern/uipc_socket.c#109 integrate
.. //depot/projects/smpng/sys/kern/vfs_acl.c#4 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#108 integrate
.. //depot/projects/smpng/sys/kern/vfs_cache.c#38 integrate
.. //depot/projects/smpng/sys/kern/vfs_hash.c#7 integrate
.. //depot/projects/smpng/sys/kern/vfs_lookup.c#47 integrate
.. //depot/projects/smpng/sys/kern/vfs_subr.c#147 integrate
.. //depot/projects/smpng/sys/net/bpf.c#73 integrate
.. //depot/projects/smpng/sys/net/ieee8023ad_lacp.c#11 integrate
.. //depot/projects/smpng/sys/net/ieee8023ad_lacp.h#8 integrate
.. //depot/projects/smpng/sys/net/if.c#98 integrate
.. //depot/projects/smpng/sys/net/if_lagg.c#10 integrate
.. //depot/projects/smpng/sys/net/netisr.c#13 integrate
.. //depot/projects/smpng/sys/net/rtsock.c#59 integrate
.. //depot/projects/smpng/sys/netatm/ipatm/ipatm_load.c#11 integrate
.. //depot/projects/smpng/sys/netatm/sigpvc/sigpvc_if.c#8 integrate
.. //depot/projects/smpng/sys/netatm/spans/spans_if.c#8 integrate
.. //depot/projects/smpng/sys/netatm/uni/uni_load.c#5 integrate
.. //depot/projects/smpng/sys/netgraph/ng_base.c#53 integrate
.. //depot/projects/smpng/sys/netgraph/ng_l2tp.c#15 integrate
.. //depot/projects/smpng/sys/netinet/in_pcb.c#79 integrate
.. //depot/projects/smpng/sys/netinet/ip_fw2.c#90 integrate
.. //depot/projects/smpng/sys/netinet/libalias/alias_irc.c#6 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec.c#23 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_diskless.c#17 integrate
.. //depot/projects/smpng/sys/pc98/pc98/machdep.c#27 integrate
.. //depot/projects/smpng/sys/powerpc/aim/machdep.c#4 integrate
.. //depot/projects/smpng/sys/powerpc/booke/machdep.c#2 integrate
.. //depot/projects/smpng/sys/powerpc/booke/vm_machdep.c#2 integrate
.. //depot/projects/smpng/sys/powerpc/include/atomic.h#19 integrate
.. //depot/projects/smpng/sys/powerpc/include/gdb_machdep.h#2 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/gdb_machdep.c#3 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/intr_machdep.c#14 integrate
.. //depot/projects/smpng/sys/security/audit/audit.c#12 integrate
.. //depot/projects/smpng/sys/sparc64/include/atomic.h#16 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/intr_machdep.c#28 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/vm_machdep.c#52 integrate
.. //depot/projects/smpng/sys/sun4v/include/atomic.h#2 integrate
.. //depot/projects/smpng/sys/sys/ata.h#29 integrate
.. //depot/projects/smpng/sys/sys/bus_dma.h#3 integrate
.. //depot/projects/smpng/sys/sys/conf.h#50 integrate
.. //depot/projects/smpng/sys/sys/eventhandler.h#27 integrate
.. //depot/projects/smpng/sys/sys/interrupt.h#24 integrate
.. //depot/projects/smpng/sys/sys/kernel.h#39 integrate
.. //depot/projects/smpng/sys/sys/module.h#11 integrate
.. //depot/projects/smpng/sys/sys/resourcevar.h#28 integrate
.. //depot/projects/smpng/sys/sys/rwlock.h#13 integrate
.. //depot/projects/smpng/sys/sys/taskqueue.h#12 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#68 integrate
.. //depot/projects/smpng/sys/vm/vm_fault.c#71 integrate
.. //depot/projects/smpng/sys/vm/vm_glue.c#64 integrate
.. //depot/projects/smpng/sys/vm/vm_init.c#15 integrate
.. //depot/projects/smpng/sys/vm/vm_mmap.c#65 integrate
.. //depot/projects/smpng/sys/vm/vm_page.c#96 integrate
.. //depot/projects/smpng/sys/vm/vm_page.h#41 integrate
.. //depot/projects/smpng/sys/vm/vm_pageout.c#64 integrate
.. //depot/projects/smpng/sys/vm/vm_pageq.c#25 delete
.. //depot/projects/smpng/sys/vm/vm_zeroidle.c#37 integrate
Differences ...
==== //depot/projects/smpng/sys/amd64/acpica/madt.c#16 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.25 2008/01/31 16:51:42 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.26 2008/03/16 10:58:02 rwatson Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -409,7 +409,7 @@
apic_register_enumerator(&madt_enumerator);
}
SYSINIT(madt_register, SI_SUB_TUNABLES - 1, SI_ORDER_FIRST,
- madt_register, NULL)
+ madt_register, NULL);
/*
* Call the handler routine for each entry in the MADT table.
@@ -779,4 +779,4 @@
la->la_acpi_id);
}
}
-SYSINIT(madt_set_ids, SI_SUB_CPU, SI_ORDER_ANY, madt_set_ids, NULL)
+SYSINIT(madt_set_ids, SI_SUB_CPU, SI_ORDER_ANY, madt_set_ids, NULL);
==== //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#30 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.37 2008/03/14 19:41:46 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.39 2008/03/17 22:42:00 jhb Exp $
*/
/*
@@ -77,12 +77,6 @@
static struct mtx intrcnt_lock;
static STAILQ_HEAD(, pic) pics;
-#ifdef INTR_FILTER
-static void intr_eoi_src(void *arg);
-static void intr_disab_eoi_src(void *arg);
-static void intr_event_stray(void *cookie);
-#endif
-
#ifdef SMP
static int assign_cpu;
@@ -90,6 +84,10 @@
#endif
static int intr_assign_cpu(void *arg, u_char cpu);
+static void intr_disable_src(void *arg);
+#ifdef INTR_FILTER
+static void intr_event_stray(void *cookie);
+#endif
static void intr_init(void *__dummy);
static int intr_pic_registered(struct pic *pic);
static void intrcnt_setname(const char *name, int index);
@@ -144,16 +142,10 @@
vector = isrc->is_pic->pic_vector(isrc);
if (interrupt_sources[vector] != NULL)
return (EEXIST);
-#ifdef INTR_FILTER
error = intr_event_create(&isrc->is_event, isrc, 0,
- (mask_fn)isrc->is_pic->pic_enable_source,
- intr_eoi_src, intr_disab_eoi_src, intr_assign_cpu, "irq%d:",
- vector);
-#else
- error = intr_event_create(&isrc->is_event, isrc, 0,
- (mask_fn)isrc->is_pic->pic_enable_source, intr_assign_cpu, "irq%d:",
+ intr_disable_src, (mask_fn)isrc->is_pic->pic_enable_source,
+ (mask_fn)isrc->is_pic->pic_eoi_source, intr_assign_cpu, "irq%d:",
vector);
-#endif
if (error)
return (error);
sx_xlock(&intr_table_lock);
@@ -237,6 +229,15 @@
return (isrc->is_pic->pic_config_intr(isrc, trig, pol));
}
+static void
+intr_disable_src(void *arg)
+{
+ struct intsrc *isrc;
+
+ isrc = arg;
+ isrc->is_pic->pic_disable_source(isrc, PIC_EOI);
+}
+
#ifdef INTR_FILTER
void
intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame)
@@ -289,24 +290,6 @@
"too many stray irq %d's: not logging anymore\n",
isrc->is_pic->pic_vector(isrc));
}
-
-static void
-intr_eoi_src(void *arg)
-{
- struct intsrc *isrc;
-
- isrc = arg;
- isrc->is_pic->pic_eoi_source(isrc);
-}
-
-static void
-intr_disab_eoi_src(void *arg)
-{
- struct intsrc *isrc;
-
- isrc = arg;
- isrc->is_pic->pic_disable_source(isrc, PIC_EOI);
-}
#else
void
intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame)
@@ -510,7 +493,7 @@
sx_init(&intr_table_lock, "intr sources");
mtx_init(&intrcnt_lock, "intrcnt", NULL, MTX_SPIN);
}
-SYSINIT(intr_init, SI_SUB_INTR, SI_ORDER_FIRST, intr_init, NULL)
+SYSINIT(intr_init, SI_SUB_INTR, SI_ORDER_FIRST, intr_init, NULL);
#ifndef DEV_ATPIC
/* Initialize the two 8259A's to a known-good shutdown state. */
@@ -642,5 +625,6 @@
}
sx_xunlock(&intr_table_lock);
}
-SYSINIT(intr_shuffle_irqs, SI_SUB_SMP, SI_ORDER_SECOND, intr_shuffle_irqs, NULL)
+SYSINIT(intr_shuffle_irqs, SI_SUB_SMP, SI_ORDER_SECOND, intr_shuffle_irqs,
+ NULL);
#endif
==== //depot/projects/smpng/sys/amd64/amd64/local_apic.c#32 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.43 2007/10/27 13:34:53 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.44 2008/03/16 10:58:02 rwatson Exp $");
#include "opt_hwpmc_hooks.h"
@@ -1039,7 +1039,7 @@
printf("%s: Failed to probe CPUs: returned %d\n",
best_enum->apic_name, retval);
}
-SYSINIT(apic_init, SI_SUB_TUNABLES - 1, SI_ORDER_SECOND, apic_init, NULL)
+SYSINIT(apic_init, SI_SUB_TUNABLES - 1, SI_ORDER_SECOND, apic_init, NULL);
/*
* Setup the local APIC. We have to do this prior to starting up the APs
@@ -1057,7 +1057,8 @@
printf("%s: Failed to setup the local APIC: returned %d\n",
best_enum->apic_name, retval);
}
-SYSINIT(apic_setup_local, SI_SUB_CPU, SI_ORDER_SECOND, apic_setup_local, NULL)
+SYSINIT(apic_setup_local, SI_SUB_CPU, SI_ORDER_SECOND, apic_setup_local,
+ NULL);
/*
* Setup the I/O APICs.
@@ -1086,7 +1087,7 @@
/* Enable the MSI "pic". */
msi_init();
}
-SYSINIT(apic_setup_io, SI_SUB_INTR, SI_ORDER_SECOND, apic_setup_io, NULL)
+SYSINIT(apic_setup_io, SI_SUB_INTR, SI_ORDER_SECOND, apic_setup_io, NULL);
#ifdef SMP
/*
==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#70 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.682 2008/03/13 10:54:36 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.683 2008/03/16 10:58:02 rwatson Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -149,7 +149,7 @@
static void cpu_startup(void *);
static void get_fpcontext(struct thread *td, mcontext_t *mcp);
static int set_fpcontext(struct thread *td, const mcontext_t *mcp);
-SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL)
+SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL);
#ifdef DDB
extern vm_offset_t ksym_start, ksym_end;
==== //depot/projects/smpng/sys/amd64/amd64/mptable.c#13 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.240 2007/05/08 22:01:02 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mptable.c,v 1.241 2008/03/16 10:58:02 rwatson Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -381,7 +381,7 @@
apic_register_enumerator(&mptable_enumerator);
}
SYSINIT(mptable_register, SI_SUB_TUNABLES - 1, SI_ORDER_FIRST,
- mptable_register, NULL)
+ mptable_register, NULL);
/*
* Call the handler routine for each entry in the MP config table.
==== //depot/projects/smpng/sys/amd64/include/atomic.h#31 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.44 2006/12/29 15:29:49 bde Exp $
+ * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.45 2008/03/16 21:20:48 pjd Exp $
*/
#ifndef _MACHINE_ATOMIC_H_
#define _MACHINE_ATOMIC_H_
@@ -74,6 +74,7 @@
int atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src);
int atomic_cmpset_long(volatile u_long *dst, u_long exp, u_long src);
u_int atomic_fetchadd_int(volatile u_int *p, u_int v);
+u_long atomic_fetchadd_long(volatile u_long *p, u_long v);
#define ATOMIC_STORE_LOAD(TYPE, LOP, SOP) \
u_##TYPE atomic_load_acq_##TYPE(volatile u_##TYPE *p); \
@@ -174,6 +175,25 @@
return (v);
}
+/*
+ * Atomically add the value of v to the long integer pointed to by p and return
+ * the previous value of *p.
+ */
+static __inline u_long
+atomic_fetchadd_long(volatile u_long *p, u_long v)
+{
+
+ __asm __volatile(
+ " " MPLOCKED " "
+ " xaddq %0, %1 ; "
+ "# atomic_fetchadd_long"
+ : "+r" (v), /* 0 (result) */
+ "=m" (*p) /* 1 */
+ : "m" (*p)); /* 2 */
+
+ return (v);
+}
+
#if defined(_KERNEL) && !defined(SMP)
/*
==== //depot/projects/smpng/sys/amd64/isa/atpic.c#17 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/isa/atpic.c,v 1.22 2007/05/08 21:29:13 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/isa/atpic.c,v 1.23 2008/03/16 10:58:02 rwatson Exp $");
#include "opt_auto_eoi.h"
#include "opt_isa.h"
@@ -499,7 +499,7 @@
intr_register_source(&ai->at_intsrc);
}
}
-SYSINIT(atpic_init, SI_SUB_INTR, SI_ORDER_SECOND + 1, atpic_init, NULL)
+SYSINIT(atpic_init, SI_SUB_INTR, SI_ORDER_SECOND + 1, atpic_init, NULL);
void
atpic_handle_intr(u_int vector, struct trapframe *frame)
==== //depot/projects/smpng/sys/amd64/linux32/linux32_proto.h#23 (text+ko) ====
@@ -2,8 +2,8 @@
* System call prototypes.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.33 2007/09/18 19:50:32 dwmalone Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_proto.h,v 1.34 2008/03/16 16:29:37 rdivacky Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.31 2008/03/16 16:24:20 rdivacky Exp
*/
#ifndef _LINUX_SYSPROTO_H_
@@ -734,6 +734,11 @@
char uaddr2_l_[PADL_(void *)]; void * uaddr2; char uaddr2_r_[PADR_(void *)];
char val3_l_[PADL_(int)]; int val3; char val3_r_[PADR_(int)];
};
+struct linux_sched_setaffinity_args {
+ char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
+ char len_l_[PADL_(l_uint)]; l_uint len; char len_r_[PADR_(l_uint)];
+ char user_mask_ptr_l_[PADL_(l_ulong *)]; l_ulong * user_mask_ptr; char user_mask_ptr_r_[PADR_(l_ulong *)];
+};
struct linux_sched_getaffinity_args {
char pid_l_[PADL_(l_pid_t)]; l_pid_t pid; char pid_r_[PADR_(l_pid_t)];
char len_l_[PADL_(l_uint)]; l_uint len; char len_r_[PADR_(l_uint)];
@@ -1105,6 +1110,7 @@
int linux_fremovexattr(struct thread *, struct linux_fremovexattr_args *);
int linux_tkill(struct thread *, struct linux_tkill_args *);
int linux_sys_futex(struct thread *, struct linux_sys_futex_args *);
+int linux_sched_setaffinity(struct thread *, struct linux_sched_setaffinity_args *);
int linux_sched_getaffinity(struct thread *, struct linux_sched_getaffinity_args *);
int linux_set_thread_area(struct thread *, struct linux_set_thread_area_args *);
int linux_fadvise64(struct thread *, struct linux_fadvise64_args *);
@@ -1360,6 +1366,7 @@
#define LINUX_SYS_AUE_linux_fremovexattr AUE_NULL
#define LINUX_SYS_AUE_linux_tkill AUE_NULL
#define LINUX_SYS_AUE_linux_sys_futex AUE_NULL
+#define LINUX_SYS_AUE_linux_sched_setaffinity AUE_NULL
#define LINUX_SYS_AUE_linux_sched_getaffinity AUE_NULL
#define LINUX_SYS_AUE_linux_set_thread_area AUE_NULL
#define LINUX_SYS_AUE_linux_fadvise64 AUE_NULL
==== //depot/projects/smpng/sys/amd64/linux32/linux32_syscall.h#23 (text+ko) ====
@@ -2,8 +2,8 @@
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.33 2007/09/18 19:50:32 dwmalone Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_syscall.h,v 1.34 2008/03/16 16:29:37 rdivacky Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.31 2008/03/16 16:24:20 rdivacky Exp
*/
#define LINUX_SYS_exit 1
@@ -222,6 +222,7 @@
#define LINUX_SYS_linux_fremovexattr 237
#define LINUX_SYS_linux_tkill 238
#define LINUX_SYS_linux_sys_futex 240
+#define LINUX_SYS_linux_sched_setaffinity 241
#define LINUX_SYS_linux_sched_getaffinity 242
#define LINUX_SYS_linux_set_thread_area 243
#define LINUX_SYS_linux_fadvise64 250
==== //depot/projects/smpng/sys/amd64/linux32/linux32_sysent.c#23 (text+ko) ====
@@ -2,8 +2,8 @@
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.33 2007/09/18 19:50:32 dwmalone Exp $
- * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.29 2007/08/28 12:26:34 kib Exp
+ * $FreeBSD: src/sys/amd64/linux32/linux32_sysent.c,v 1.34 2008/03/16 16:29:37 rdivacky Exp $
+ * created from FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.31 2008/03/16 16:24:20 rdivacky Exp
*/
#include <bsm/audit_kevents.h>
@@ -261,7 +261,7 @@
{ AS(linux_tkill_args), (sy_call_t *)linux_tkill, AUE_NULL, NULL, 0, 0 }, /* 238 = linux_tkill */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 239 = linux_sendfile64 */
{ AS(linux_sys_futex_args), (sy_call_t *)linux_sys_futex, AUE_NULL, NULL, 0, 0 }, /* 240 = linux_sys_futex */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 241 = linux_sched_setaffinity */
+ { AS(linux_sched_setaffinity_args), (sy_call_t *)linux_sched_setaffinity, AUE_NULL, NULL, 0, 0 }, /* 241 = linux_sched_setaffinity */
{ AS(linux_sched_getaffinity_args), (sy_call_t *)linux_sched_getaffinity, AUE_NULL, NULL, 0, 0 }, /* 242 = linux_sched_getaffinity */
{ AS(linux_set_thread_area_args), (sy_call_t *)linux_set_thread_area, AUE_NULL, NULL, 0, 0 }, /* 243 = linux_set_thread_area */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0 }, /* 244 = linux_get_thread_area */
==== //depot/projects/smpng/sys/amd64/linux32/syscalls.master#27 (text+ko) ====
@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.30 2007/09/18 19:50:32 dwmalone Exp $
+ $FreeBSD: src/sys/amd64/linux32/syscalls.master,v 1.31 2008/03/16 16:24:20 rdivacky Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
; System call name/number master file (or rather, slave, from LINUX).
@@ -407,7 +407,8 @@
239 AUE_SENDFILE UNIMPL linux_sendfile64
240 AUE_NULL STD { int linux_sys_futex(void *uaddr, int op, int val, \
struct l_timespec *timeout, void *uaddr2, int val3); }
-241 AUE_NULL UNIMPL linux_sched_setaffinity
+241 AUE_NULL STD { int linux_sched_setaffinity(l_pid_t pid, l_uint len, \
+ l_ulong *user_mask_ptr); }
242 AUE_NULL STD { int linux_sched_getaffinity(l_pid_t pid, l_uint len, \
l_ulong *user_mask_ptr); }
243 AUE_NULL STD { int linux_set_thread_area(struct l_user_desc *desc); }
==== //depot/projects/smpng/sys/arm/arm/intr.c#17 (text+ko) ====
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.18 2008/03/14 19:41:46 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.19 2008/03/17 22:42:00 jhb Exp $");
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/syslog.h>
@@ -50,6 +50,8 @@
#include <machine/intr.h>
#include <machine/cpu.h>
+typedef void (*mask_fn)(void *);
+
static struct intr_event *intr_events[NIRQ];
static int intrcnt_tab[NIRQ];
static int intrcnt_index = 0;
@@ -57,27 +59,6 @@
void arm_handler_execute(struct trapframe *, int);
-#ifdef INTR_FILTER
-static void
-intr_disab_eoi_src(void *arg)
-{
- uintptr_t nb;
-
- nb = (uintptr_t)arg;
- arm_mask_irq(nb);
-}
-
-static void
-intr_eoi_src(void *arg)
-{
- uintptr_t nb;
-
- nb = (uintptr_t)arg;
- arm_unmask_irq(nb);
-}
-
-#endif
-
void
arm_setup_irqhandler(const char *name, driver_filter_t *filt,
void (*hand)(void*), void *arg, int irq, int flags, void **cookiep)
@@ -89,14 +70,9 @@
return;
event = intr_events[irq];
if (event == NULL) {
-#ifdef INTR_FILTER
error = intr_event_create(&event, (void *)irq, 0,
- (void (*)(void *))arm_unmask_irq, intr_eoi_src,
- intr_disab_eoi_src, NULL, "intr%d:", irq);
-#else
- error = intr_event_create(&event, (void *)irq, 0,
- (void (*)(void *))arm_unmask_irq, NULL, "intr%d:", irq);
-#endif
+ (mask_fn)arm_mask_irq, (mask_fn)arm_unmask_irq,
+ (mask_fn)arm_unmask_irq, NULL, "intr%d:", irq);
if (error)
return;
intr_events[irq] = event;
==== //depot/projects/smpng/sys/arm/arm/machdep.c#23 (text+ko) ====
@@ -44,7 +44,7 @@
#include "opt_compat.h"
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.28 2007/05/31 22:52:10 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/machdep.c,v 1.29 2008/03/16 10:58:02 rwatson Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -308,7 +308,7 @@
#endif
}
-SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL)
+SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, cpu_startup, NULL);
/* Get current clock frequency for the given cpu id. */
int
==== //depot/projects/smpng/sys/arm/arm/vm_machdep.c#27 (text+ko) ====
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.35 2007/11/14 20:21:53 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.36 2008/03/16 10:58:02 rwatson Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -77,7 +77,7 @@
#ifndef ARM_USE_SMALL_ALLOC
static void sf_buf_init(void *arg);
-SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL)
+SYSINIT(sock_sf, SI_SUB_MBUF, SI_ORDER_ANY, sf_buf_init, NULL);
LIST_HEAD(sf_head, sf_buf);
==== //depot/projects/smpng/sys/cam/scsi/scsi_ses.c#18 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_ses.c,v 1.36 2008/02/20 19:49:46 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_ses.c,v 1.37 2008/03/17 17:18:16 scottl Exp $");
#include <sys/param.h>
#include <sys/queue.h>
@@ -144,9 +144,9 @@
encvec ses_vec; /* vector to handlers */
void * ses_private; /* per-type private data */
encobj * ses_objmap; /* objects */
- u_int32_t ses_nobjects; /* number of objects */
+ uint32_t ses_nobjects; /* number of objects */
ses_encstat ses_encstat; /* overall status */
- u_int8_t ses_flags;
+ uint8_t ses_flags;
union ccb ses_saved_ccb;
struct cdev *ses_dev;
struct cam_periph *periph;
@@ -166,9 +166,9 @@
static periph_dtor_t sescleanup;
static periph_start_t sesstart;
-static void sesasync(void *, u_int32_t, struct cam_path *, void *);
+static void sesasync(void *, uint32_t, struct cam_path *, void *);
static void sesdone(struct cam_periph *, union ccb *);
-static int seserror(union ccb *, u_int32_t, u_int32_t);
+static int seserror(union ccb *, uint32_t, uint32_t);
static struct periph_driver sesdriver = {
sesinit, "ses",
@@ -234,7 +234,7 @@
}
static void
-sesasync(void *callback_arg, u_int32_t code, struct cam_path *path, void *arg)
+sesasync(void *callback_arg, uint32_t code, struct cam_path *path, void *arg)
{
struct cam_periph *periph;
@@ -303,7 +303,7 @@
return (CAM_REQ_CMP_ERR);
}
- softc = malloc(sizeof (struct ses_softc), M_SCSISES, M_NOWAIT);
+ softc = SES_MALLOC(sizeof (struct ses_softc));
if (softc == NULL) {
printf("sesregister: Unable to probe new device. "
"Unable to allocate softc\n");
@@ -472,7 +472,7 @@
}
static int
-seserror(union ccb *ccb, u_int32_t cflags, u_int32_t sflags)
+seserror(union ccb *ccb, uint32_t cflags, uint32_t sflags)
{
struct ses_softc *softc;
struct cam_periph *periph;
@@ -489,7 +489,7 @@
struct cam_periph *periph;
ses_encstat tmp;
ses_objstat objs;
- ses_object obj, *uobj;
+ ses_object *uobj;
struct ses_softc *ssc;
void *addr;
int error, i;
@@ -511,6 +511,9 @@
/*
* Now check to see whether we're initialized or not.
+ * This actually should never fail as we're not supposed
+ * to get past ses_open w/o successfully initializing
+ * things.
*/
if ((ssc->ses_flags & SES_FLAG_INITIALIZED) == 0) {
cam_periph_unlock(periph);
@@ -526,6 +529,14 @@
/*
* If this command can change the device's state,
* we must have the device open for writing.
+ *
+ * For commands that get information about the
+ * device- we don't need to lock the peripheral
+ * if we aren't running a command. The number
+ * of objects and the contents will stay stable
+ * after the first open that does initialization.
+ * The periph also can't go away while a user
+ * process has it open.
*/
switch (cmd) {
case SESIOC_GETNOBJ:
@@ -546,23 +557,16 @@
break;
case SESIOC_GETOBJMAP:
- /*
- * XXX Dropping the lock while copying multiple segments is
- * bogus.
- */
- cam_periph_lock(periph);
- for (uobj = addr, i = 0; i != ssc->ses_nobjects; i++, uobj++) {
- obj.obj_id = i;
- obj.subencid = ssc->ses_objmap[i].subenclosure;
- obj.object_type = ssc->ses_objmap[i].enctype;
- cam_periph_unlock(periph);
- error = copyout(&obj, uobj, sizeof (ses_object));
- cam_periph_lock(periph);
+ for (uobj = addr, i = 0; i != ssc->ses_nobjects; i++) {
+ ses_object kobj;
+ kobj.obj_id = i;
+ kobj.subencid = ssc->ses_objmap[i].subenclosure;
+ kobj.object_type = ssc->ses_objmap[i].enctype;
+ error = copyout(&kobj, &uobj[i], sizeof (ses_object));
if (error) {
break;
}
}
- cam_periph_unlock(periph);
break;
case SESIOC_GETENCSTAT:
==== //depot/projects/smpng/sys/compat/linux/linux_misc.c#86 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.217 2008/02/22 11:47:56 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.218 2008/03/16 16:24:20 rdivacky Exp $");
#include "opt_compat.h"
#include "opt_mac.h"
@@ -63,6 +63,7 @@
#include <sys/vmmeter.h>
#include <sys/vnode.h>
#include <sys/wait.h>
+#include <sys/cpuset.h>
#include <security/mac/mac_framework.h>
@@ -1730,22 +1731,52 @@
}
/*
- * XXX: fake one.. waiting for real implementation of affinity mask.
+ * Get affinity of a process.
*/
int
linux_sched_getaffinity(struct thread *td,
struct linux_sched_getaffinity_args *args)
{
int error;
- cpumask_t i = ~0;
+ struct cpuset_getaffinity_args cga;
+
+#ifdef DEBUG
+ if (ldebug(sched_getaffinity))
+ printf(ARGS(sched_getaffinity, "%d, %d, *"), args->pid,
+ args->len);
+#endif
+
+ cga.level = CPU_LEVEL_WHICH;
+ cga.which = CPU_WHICH_PID;
+ cga.id = args->pid;
+ cga.cpusetsize = sizeof(cpumask_t);
+ cga.mask = (long *) args->user_mask_ptr;
+
+ if ((error = cpuset_getaffinity(td, &cga)) == 0)
+ td->td_retval[0] = sizeof(cpumask_t);
+
+ return (error);
+}
- if (args->len < sizeof(cpumask_t))
- return (EINVAL);
+/*
+ * Set affinity of a process.
+ */
+int
+linux_sched_setaffinity(struct thread *td,
+ struct linux_sched_setaffinity_args *args)
+{
+ struct cpuset_setaffinity_args csa;
- error = copyout(&i, args->user_mask_ptr, sizeof(cpumask_t));
- if (error)
- return (EFAULT);
+#ifdef DEBUG
+ if (ldebug(sched_setaffinity))
+ printf(ARGS(sched_setaffinity, "%d, %d, *"), args->pid,
+ args->len);
+#endif
+ csa.level = CPU_LEVEL_WHICH;
+ csa.which = CPU_WHICH_PID;
+ csa.id = args->pid;
+ csa.cpusetsize = args->len;
+ csa.mask = (long *) args->user_mask_ptr;
- td->td_retval[0] = sizeof(cpumask_t);
- return (0);
+ return (cpuset_setaffinity(td, &csa));
}
==== //depot/projects/smpng/sys/compat/svr4/svr4_fcntl.c#26 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_fcntl.c,v 1.43 2008/01/13 14:44:01 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_fcntl.c,v 1.44 2008/03/17 18:27:28 antoine Exp $");
#include "opt_mac.h"
@@ -79,6 +79,8 @@
switch (cmd) {
case SVR4_F_DUPFD:
return F_DUPFD;
+ case SVR4_F_DUP2FD:
+ return F_DUP2FD;
case SVR4_F_GETFD:
return F_GETFD;
case SVR4_F_SETFD:
@@ -584,6 +586,7 @@
switch (cmd) {
case F_DUPFD:
+ case F_DUP2FD:
case F_GETFD:
case F_SETFD:
return (kern_fcntl(td, uap->fd, cmd, (intptr_t)uap->arg));
@@ -637,19 +640,6 @@
}
case -1:
switch (uap->cmd) {
- case SVR4_F_DUP2FD:
- {
- struct dup2_args du;
-
- du.from = uap->fd;
- du.to = (int)uap->arg;
- error = dup2(td, &du);
- if (error)
- return error;
- *retval = du.to;
- return 0;
- }
-
case SVR4_F_FREESP:
{
struct svr4_flock ifl;
==== //depot/projects/smpng/sys/conf/files#212 (text+ko) ====
@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1280 2008/03/12 10:11:56 jeff Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1281 2008/03/18 06:52:15 alc Exp $
#
# The long compile-with and dependency lines are required because of
# limitations in config: backslash-newline doesn't work in strings, and
@@ -2133,7 +2133,6 @@
vm/vm_object.c standard
vm/vm_page.c standard
vm/vm_pageout.c standard
-vm/vm_pageq.c standard
vm/vm_pager.c standard
vm/vm_phys.c standard
vm/vm_reserv.c standard
==== //depot/projects/smpng/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#8 (text+ko) ====
@@ -346,6 +346,10 @@
VM_OBJECT_LOCK(obj);
vm_page_wakeup(m);
} else {
+ if (__predict_false(obj->cache != NULL)) {
+ vm_page_cache_free(obj, OFF_TO_IDX(start),
+ OFF_TO_IDX(start) + 1);
+ }
dirbytes += bytes;
}
len -= bytes;
==== //depot/projects/smpng/sys/contrib/opensolaris/uts/common/os/callb.c#2 (text+ko) ====
@@ -359,5 +359,5 @@
mutex_exit(&ct->ct_lock);
}
-SYSINIT(sol_callb, SI_SUB_DRIVERS, SI_ORDER_FIRST, callb_init, NULL)
+SYSINIT(sol_callb, SI_SUB_DRIVERS, SI_ORDER_FIRST, callb_init, NULL);
SYSUNINIT(sol_callb, SI_SUB_DRIVERS, SI_ORDER_FIRST, callb_fini, NULL);
==== //depot/projects/smpng/sys/contrib/opensolaris/uts/common/os/taskq.c#2 (text+ko) ====
@@ -1016,5 +1016,5 @@
kmem_cache_free(taskq_cache, tq);
}
-SYSINIT(sol_taskq, SI_SUB_DRIVERS, SI_ORDER_MIDDLE, taskq_init, NULL)
+SYSINIT(sol_taskq, SI_SUB_DRIVERS, SI_ORDER_MIDDLE, taskq_init, NULL);
SYSUNINIT(sol_taskq, SI_SUB_DRIVERS, SI_ORDER_MIDDLE, taskq_fini, NULL);
==== //depot/projects/smpng/sys/dev/aac/aac.c#59 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.127 2007/12/20 21:13:58 emaste Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.128 2008/03/14 21:59:11 emaste Exp $");
/*
* Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters.
@@ -246,7 +246,7 @@
*/
/*
- * Initialise the controller and softc
+ * Initialize the controller and softc
*/
int
aac_attach(struct aac_softc *sc)
@@ -256,7 +256,7 @@
debug_called(1);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list