From owner-p4-projects@FreeBSD.ORG Wed Aug 25 20:25:05 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 35FBA16A4D6; Wed, 25 Aug 2004 20:25:05 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0EC1516A4D4 for ; Wed, 25 Aug 2004 20:25:05 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id DBB0543D45 for ; Wed, 25 Aug 2004 20:25:04 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i7PKP4HY082948 for ; Wed, 25 Aug 2004 20:25:04 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i7PKP4tq082945 for perforce@freebsd.org; Wed, 25 Aug 2004 20:25:04 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 25 Aug 2004 20:25:04 GMT Message-Id: <200408252025.i7PKP4tq082945@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 60423 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2004 20:25:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=60423 Change 60423 by rwatson@rwatson_tislabs on 2004/08/25 20:24:33 Integrate netperf_socket: - dwhite's SMP stability fix of happiness. - ACPIage. - ATA tweaks, md tweaks, GEOM tweaks, storage tweaks, driver tweaks, etc. Netperf-related: - Loop back in6_prefix removal from gnn. - Loop back removal of conditional socket buffer locking for socket kqueue filters. - Style tweakage for if_sl. - curthread vs. thread0 use in nfs_timer.c cleaned up (some). - Giant lock -> unlock in nfsrv_link() to correct Giant leakage. - if_dc marked IFF_NEEDSGIANT. - jhb pushes Giant acquisition down into kern_fcntl(), making fcntl() variations in various ABIs MPSAFE. Affected files ... .. //depot/projects/netperf_socket/sys/alpha/linux/linux_proto.h#6 integrate .. //depot/projects/netperf_socket/sys/alpha/linux/linux_syscall.h#6 integrate .. //depot/projects/netperf_socket/sys/alpha/linux/linux_sysent.c#6 integrate .. //depot/projects/netperf_socket/sys/alpha/linux/syscalls.master#6 integrate .. //depot/projects/netperf_socket/sys/alpha/osf1/osf1_misc.c#5 integrate .. //depot/projects/netperf_socket/sys/alpha/osf1/osf1_proto.h#4 integrate .. //depot/projects/netperf_socket/sys/alpha/osf1/osf1_syscall.h#4 integrate .. //depot/projects/netperf_socket/sys/alpha/osf1/osf1_sysent.c#4 integrate .. //depot/projects/netperf_socket/sys/alpha/osf1/syscalls.master#4 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#16 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/mp_machdep.c#10 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/nexus.c#6 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#25 integrate .. //depot/projects/netperf_socket/sys/amd64/linux32/linux32_machdep.c#2 integrate .. //depot/projects/netperf_socket/sys/boot/alpha/Makefile.inc#4 integrate .. //depot/projects/netperf_socket/sys/boot/ficl/Makefile#4 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_socket.c#6 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_fcntl.c#2 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_proto.h#3 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_stream.c#5 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_syscall.h#3 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_syscallnames.c#3 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/svr4_sysent.c#3 integrate .. //depot/projects/netperf_socket/sys/compat/svr4/syscalls.master#3 integrate .. //depot/projects/netperf_socket/sys/conf/files#49 integrate .. //depot/projects/netperf_socket/sys/conf/ldscript.ia64#3 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#39 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_lid.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_resource.c#11 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#22 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-all.c#16 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-chipset.c#17 integrate .. //depot/projects/netperf_socket/sys/dev/ata/atapi-cd.c#10 integrate .. //depot/projects/netperf_socket/sys/dev/isp/isp_freebsd.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/lnc/if_lnc_pci.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/md/md.c#18 integrate .. //depot/projects/netperf_socket/sys/dev/mpt/mpt_freebsd.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/sound/pci/maestro.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.c#8 integrate .. //depot/projects/netperf_socket/sys/geom/raid3/g_raid3.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/stripe/g_stripe.c#9 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_raid5.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_panasonic.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/conf/NOTES#27 integrate .. //depot/projects/netperf_socket/sys/i386/i386/mp_machdep.c#7 integrate .. //depot/projects/netperf_socket/sys/i386/i386/nexus.c#6 integrate .. //depot/projects/netperf_socket/sys/i386/i386/p4tcc.c#3 integrate .. //depot/projects/netperf_socket/sys/i386/i386/pmap.c#25 integrate .. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_fcntl.c#2 integrate .. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_proto.h#4 integrate .. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_syscall.h#4 integrate .. //depot/projects/netperf_socket/sys/i386/ibcs2/ibcs2_sysent.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/ibcs2/syscalls.master#4 integrate .. //depot/projects/netperf_socket/sys/i386/include/in_cksum.h#4 integrate .. //depot/projects/netperf_socket/sys/i386/linux/linux_machdep.c#3 integrate .. //depot/projects/netperf_socket/sys/i386/linux/linux_proto.h#5 integrate .. //depot/projects/netperf_socket/sys/i386/linux/linux_syscall.h#5 integrate .. //depot/projects/netperf_socket/sys/i386/linux/linux_sysent.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/linux/syscalls.master#5 integrate .. //depot/projects/netperf_socket/sys/ia64/conf/GENERIC#8 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/nexus.c#3 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/support.S#2 integrate .. //depot/projects/netperf_socket/sys/ia64/include/asm.h#2 integrate .. //depot/projects/netperf_socket/sys/ia64/include/cpu.h#6 integrate .. //depot/projects/netperf_socket/sys/ia64/include/profile.h#3 integrate .. //depot/projects/netperf_socket/sys/kern/kern_kse.c#10 integrate .. //depot/projects/netperf_socket/sys/kern/kern_lock.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/subr_bus.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/subr_smp.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket.c#39 integrate .. //depot/projects/netperf_socket/sys/modules/ipfw/Makefile#3 integrate .. //depot/projects/netperf_socket/sys/net/if_fwsubr.c#7 integrate .. //depot/projects/netperf_socket/sys/net/if_sl.c#11 integrate .. //depot/projects/netperf_socket/sys/net/rtsock.c#13 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_dummynet.c#8 integrate .. //depot/projects/netperf_socket/sys/netinet6/in6.c#6 integrate .. //depot/projects/netperf_socket/sys/netinet6/in6_ifattach.c#3 integrate .. //depot/projects/netperf_socket/sys/netinet6/in6_prefix.c#3 delete .. //depot/projects/netperf_socket/sys/netinet6/in6_prefix.h#2 delete .. //depot/projects/netperf_socket/sys/netinet6/in6_proto.c#5 integrate .. //depot/projects/netperf_socket/sys/netinet6/ip6_input.c#9 integrate .. //depot/projects/netperf_socket/sys/netinet6/nd6.c#6 integrate .. //depot/projects/netperf_socket/sys/nfsclient/nfs_socket.c#12 integrate .. //depot/projects/netperf_socket/sys/nfsserver/nfs_serv.c#9 integrate .. //depot/projects/netperf_socket/sys/pci/if_dc.c#11 integrate .. //depot/projects/netperf_socket/sys/sys/fdcio.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/smp.h#3 integrate .. //depot/projects/netperf_socket/sys/vm/vm_page.h#8 integrate Differences ... ==== //depot/projects/netperf_socket/sys/alpha/linux/linux_proto.h#6 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/linux/linux_proto.h,v 1.18 2004/06/04 13:52:51 jhb Exp $ - * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.58 2004/06/04 13:52:23 jhb Exp + * $FreeBSD: src/sys/alpha/linux/linux_proto.h,v 1.19 2004/08/24 20:24:33 jhb Exp $ + * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.59 2004/08/24 20:21:21 jhb Exp */ #ifndef _LINUX_SYSPROTO_H_ ==== //depot/projects/netperf_socket/sys/alpha/linux/linux_syscall.h#6 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/linux/linux_syscall.h,v 1.16 2004/06/04 13:52:51 jhb Exp $ - * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.58 2004/06/04 13:52:23 jhb Exp + * $FreeBSD: src/sys/alpha/linux/linux_syscall.h,v 1.17 2004/08/24 20:24:33 jhb Exp $ + * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.59 2004/08/24 20:21:21 jhb Exp */ #define LINUX_SYS_exit 1 ==== //depot/projects/netperf_socket/sys/alpha/linux/linux_sysent.c#6 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/linux/linux_sysent.c,v 1.16 2004/06/04 13:52:51 jhb Exp $ - * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.58 2004/06/04 13:52:23 jhb Exp + * $FreeBSD: src/sys/alpha/linux/linux_sysent.c,v 1.17 2004/08/24 20:24:33 jhb Exp $ + * created from FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.59 2004/08/24 20:21:21 jhb Exp */ #include "opt_compat.h" @@ -109,7 +109,7 @@ { 0, (sy_call_t *)linux_getdtablesize }, /* 89 = linux_getdtablesize */ { SYF_MPSAFE | AS(dup2_args), (sy_call_t *)dup2 }, /* 90 = dup2 */ { AS(linux_newfstat_args), (sy_call_t *)linux_newfstat }, /* 91 = linux_newfstat */ - { AS(linux_fcntl_args), (sy_call_t *)linux_fcntl }, /* 92 = linux_fcntl */ + { SYF_MPSAFE | AS(linux_fcntl_args), (sy_call_t *)linux_fcntl }, /* 92 = linux_fcntl */ { AS(osf1_select_args), (sy_call_t *)osf1_select }, /* 93 = osf1_select */ { AS(poll_args), (sy_call_t *)poll }, /* 94 = poll */ { AS(fsync_args), (sy_call_t *)fsync }, /* 95 = fsync */ ==== //depot/projects/netperf_socket/sys/alpha/linux/syscalls.master#6 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.58 2004/06/04 13:52:23 jhb Exp $ + $FreeBSD: src/sys/alpha/linux/syscalls.master,v 1.59 2004/08/24 20:21:21 jhb Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 ; System call name/number master file (or rather, slave, from LINUX). @@ -133,7 +133,7 @@ 89 STD { int linux_getdtablesize(void); } 90 MNOPROTO { int dup2(u_int from, u_int to); } 91 STD { int linux_newfstat(l_uint fd, struct l_newstat *buf); } -92 STD { int linux_fcntl(l_uint fd, l_uint cmd, l_ulong arg); } +92 MSTD { int linux_fcntl(l_uint fd, l_uint cmd, l_ulong arg); } 93 STD { int osf1_select(u_int nd, fd_set *in, fd_set *ou, \ fd_set *ex, struct timeval *tv); } 94 NOPROTO { int poll(struct pollfd*, unsigned int nfds, long timeout); } ==== //depot/projects/netperf_socket/sys/alpha/osf1/osf1_misc.c#5 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.47 2004/07/26 07:24:01 cperciva Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.48 2004/08/24 20:21:21 jhb Exp $"); #include #include @@ -60,6 +60,7 @@ #include #include #include +#include #include #include #include @@ -758,19 +759,14 @@ { int error; long tmp; - caddr_t oarg, sg; - struct fcntl_args a; struct osf1_flock osf_flock; struct flock bsd_flock; - struct flock *nflock; error = 0; switch (uap->cmd) { case F_SETFL: - a.fd = uap->fd; - a.cmd = F_SETFL; /* need to translate flags here */ tmp = 0; if ((long)uap->arg & OSF1_FNONBLOCK) @@ -791,8 +787,7 @@ tmp |= FNDELAY; if ((long)uap->arg & OSF1_FSYNC) tmp |= FFSYNC; - a.arg = tmp; - error = fcntl(td, &a); + error = kern_fcntl(td, uap->fd, F_SETFL, tmp); break; case F_SETLK: @@ -803,20 +798,15 @@ * the BSD one, but all else is the same. We must * reorder the one we've gotten so that flock() groks it. */ - if ((error = copyin(uap->arg, &osf_flock, sizeof(osf_flock)))) - return error; + error = copyin(uap->arg, &osf_flock, sizeof(osf_flock)); + if (error) + return (error); bsd_flock.l_type = osf_flock.l_type; bsd_flock.l_whence = osf_flock.l_whence; bsd_flock.l_start = osf_flock.l_start; bsd_flock.l_len = osf_flock.l_len; bsd_flock.l_pid = osf_flock.l_pid; - sg = stackgap_init(); - nflock = stackgap_alloc(&sg, sizeof(struct flock)); - if ((error = copyout(&bsd_flock, nflock, sizeof(bsd_flock))) != 0) - return error; - oarg = uap->arg; - uap->arg = nflock; - error = fcntl(td, (struct fcntl_args *) uap); + error = kern_fcntl(td, uap->fd, uap->cmd, (intptr_t)&bsd_flock); /* if (error) { printf("fcntl called with cmd=%d, args=0x%lx\n returns %d\n",uap->cmd,(long)uap->arg,error); printf("bsd_flock.l_type = 0x%x\n", bsd_flock.l_type); @@ -827,14 +817,17 @@ } */ if ((uap->cmd == F_GETLK) && !error) { + /* + * XXX: Why are we hardcoding F_UNLCK here instead of + * copying the structure members from bsd_flock? + */ osf_flock.l_type = F_UNLCK; - if ((error = copyout(&osf_flock, oarg, - sizeof(osf_flock)))) - return error; + error = copyout(&osf_flock, uap->arg, + sizeof(osf_flock)); } break; default: - error = fcntl(td, (struct fcntl_args *) uap); + error = kern_fcntl(td, uap->fd, uap->cmd, (intptr_t)uap->arg); if ((uap->cmd == OSF1_F_GETFL) && !error ) { tmp = td->td_retval[0] & O_ACCMODE; ==== //depot/projects/netperf_socket/sys/alpha/osf1/osf1_proto.h#4 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/osf1/osf1_proto.h,v 1.10 2004/03/15 22:44:35 jhb Exp $ - * created from; FreeBSD: src/sys/alpha/osf1/syscalls.master,v 1.9 2004/03/15 22:43:49 jhb Exp + * $FreeBSD: src/sys/alpha/osf1/osf1_proto.h,v 1.11 2004/08/24 20:24:33 jhb Exp $ + * created from; FreeBSD: src/sys/alpha/osf1/syscalls.master,v 1.10 2004/08/24 20:21:21 jhb Exp */ #ifndef _OSF1_SYSPROTO_H_ ==== //depot/projects/netperf_socket/sys/alpha/osf1/osf1_syscall.h#4 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/osf1/osf1_syscall.h,v 1.9 2004/03/15 22:44:35 jhb Exp $ - * created from; FreeBSD: src/sys/alpha/osf1/syscalls.master,v 1.9 2004/03/15 22:43:49 jhb Exp + * $FreeBSD: src/sys/alpha/osf1/osf1_syscall.h,v 1.10 2004/08/24 20:24:33 jhb Exp $ + * created from; FreeBSD: src/sys/alpha/osf1/syscalls.master,v 1.10 2004/08/24 20:21:21 jhb Exp */ #define OSF1_SYS_nosys 0 ==== //depot/projects/netperf_socket/sys/alpha/osf1/osf1_sysent.c#4 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/alpha/osf1/osf1_sysent.c,v 1.9 2004/03/15 22:44:35 jhb Exp $ - * created from; FreeBSD: src/sys/alpha/osf1/syscalls.master,v 1.9 2004/03/15 22:43:49 jhb Exp + * $FreeBSD: src/sys/alpha/osf1/osf1_sysent.c,v 1.10 2004/08/24 20:24:33 jhb Exp $ + * created from; FreeBSD: src/sys/alpha/osf1/syscalls.master,v 1.10 2004/08/24 20:21:21 jhb Exp */ #include "opt_compat.h" @@ -110,7 +110,7 @@ { SYF_MPSAFE | 0, (sy_call_t *)getdtablesize }, /* 89 = getdtablesize */ { SYF_MPSAFE | AS(dup2_args), (sy_call_t *)dup2 }, /* 90 = dup2 */ { AS(osf1_fstat_args), (sy_call_t *)osf1_fstat }, /* 91 = osf1_fstat */ - { AS(osf1_fcntl_args), (sy_call_t *)osf1_fcntl }, /* 92 = osf1_fcntl */ + { SYF_MPSAFE | AS(osf1_fcntl_args), (sy_call_t *)osf1_fcntl }, /* 92 = osf1_fcntl */ { AS(osf1_select_args), (sy_call_t *)osf1_select }, /* 93 = osf1_select */ { AS(poll_args), (sy_call_t *)poll }, /* 94 = poll */ { AS(fsync_args), (sy_call_t *)fsync }, /* 95 = fsync */ ==== //depot/projects/netperf_socket/sys/alpha/osf1/syscalls.master#4 (text+ko) ==== @@ -1,4 +1,4 @@ -; $FreeBSD: src/sys/alpha/osf1/syscalls.master,v 1.9 2004/03/15 22:43:49 jhb Exp $ +; $FreeBSD: src/sys/alpha/osf1/syscalls.master,v 1.10 2004/08/24 20:21:21 jhb Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 ; System call name/number master file (or rather, slave, from OSF1). @@ -135,7 +135,7 @@ 89 MNOPROTO { int getdtablesize(void); } 90 MNOPROTO { int dup2(u_int from, u_int to); } 91 STD { int osf1_fstat(int fd, void *sb); } -92 STD { int osf1_fcntl(int fd, int cmd, void *arg); } +92 MSTD { int osf1_fcntl(int fd, int cmd, void *arg); } 93 STD { int osf1_select(u_int nd, fd_set *in, fd_set *ou, \ fd_set *ex, struct timeval *tv); } 94 NOPROTO { int poll(struct pollfd *fds, u_int nfds, int timeout); } ==== //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#16 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.618 2004/08/16 22:57:47 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.619 2004/08/24 00:16:43 peter Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -498,6 +498,10 @@ cpu_idle(void) { +#ifdef SMP + if (mp_grab_cpu_hlt()) + return; +#endif if (cpu_idle_hlt) { disable_intr(); if (sched_runnable()) ==== //depot/projects/netperf_socket/sys/amd64/amd64/mp_machdep.c#10 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.242 2004/08/13 22:30:55 ambrisko Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.243 2004/08/23 21:39:28 peter Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -103,7 +103,6 @@ vm_offset_t smp_tlb_addr1; vm_offset_t smp_tlb_addr2; volatile int smp_tlb_wait; -struct mtx smp_tlb_mtx; extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); @@ -319,8 +318,6 @@ /* Install an inter-CPU IPI for CPU stop/restart */ setidt(IPI_STOP, IDTVEC(cpustop), SDT_SYSIGT, SEL_KPL, 0); - mtx_init(&smp_tlb_mtx, "tlb", NULL, MTX_SPIN); - /* Set boot_cpu_id if needed. */ if (boot_cpu_id == -1) { boot_cpu_id = PCPU_GET(apic_id); @@ -711,7 +708,7 @@ ncpu = mp_ncpus - 1; /* does not shootdown self */ if (ncpu < 1) return; /* no other cpus */ - mtx_assert(&smp_tlb_mtx, MA_OWNED); + mtx_assert(&smp_rv_mtx, MA_OWNED); smp_tlb_addr1 = addr1; smp_tlb_addr2 = addr2; atomic_store_rel_int(&smp_tlb_wait, 0); @@ -797,7 +794,7 @@ if (ncpu < 1) return; } - mtx_assert(&smp_tlb_mtx, MA_OWNED); + mtx_assert(&smp_rv_mtx, MA_OWNED); smp_tlb_addr1 = addr1; smp_tlb_addr2 = addr2; atomic_store_rel_int(&smp_tlb_wait, 0); ==== //depot/projects/netperf_socket/sys/amd64/amd64/nexus.c#6 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.62 2004/07/08 01:34:24 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.63 2004/08/24 19:22:54 njl Exp $"); /* * This code implements a `root nexus' for Intel Architecture @@ -97,6 +97,7 @@ void (*)(void *), void *, void **); static int nexus_teardown_intr(device_t, device_t, struct resource *, void *); +static struct resource_list *nexus_get_reslist(device_t dev, device_t child); static int nexus_set_resource(device_t, device_t, int, int, u_long, u_long); static int nexus_get_resource(device_t, device_t, int, int, u_long *, u_long *); static void nexus_delete_resource(device_t, device_t, int, int); @@ -120,6 +121,7 @@ DEVMETHOD(bus_setup_intr, nexus_setup_intr), DEVMETHOD(bus_teardown_intr, nexus_teardown_intr), DEVMETHOD(bus_config_intr, nexus_config_intr), + DEVMETHOD(bus_get_resource_list, nexus_get_reslist), DEVMETHOD(bus_set_resource, nexus_set_resource), DEVMETHOD(bus_get_resource, nexus_get_resource), DEVMETHOD(bus_delete_resource, nexus_delete_resource), @@ -464,6 +466,14 @@ return (intr_config_intr(irq, trig, pol)); } +static struct resource_list * +nexus_get_reslist(device_t dev, device_t child) +{ + struct nexus_device *ndev = DEVTONX(child); + + return (&ndev->nx_resources); +} + static int nexus_set_resource(device_t dev, device_t child, int type, int rid, u_long start, u_long count) { ==== //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#25 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.491 2004/08/08 00:31:58 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.493 2004/08/24 00:17:52 peter Exp $"); /* * Manages physical address maps. @@ -631,7 +631,7 @@ if (smp_started) { if (!(read_rflags() & PSL_I)) panic("%s: interrupts disabled", __func__); - mtx_lock_spin(&smp_tlb_mtx); + mtx_lock_spin(&smp_rv_mtx); } else critical_enter(); /* @@ -652,7 +652,7 @@ smp_masked_invlpg(pmap->pm_active & other_cpus, va); } if (smp_started) - mtx_unlock_spin(&smp_tlb_mtx); + mtx_unlock_spin(&smp_rv_mtx); else critical_exit(); } @@ -667,7 +667,7 @@ if (smp_started) { if (!(read_rflags() & PSL_I)) panic("%s: interrupts disabled", __func__); - mtx_lock_spin(&smp_tlb_mtx); + mtx_lock_spin(&smp_rv_mtx); } else critical_enter(); /* @@ -691,7 +691,7 @@ sva, eva); } if (smp_started) - mtx_unlock_spin(&smp_tlb_mtx); + mtx_unlock_spin(&smp_rv_mtx); else critical_exit(); } @@ -705,7 +705,7 @@ if (smp_started) { if (!(read_rflags() & PSL_I)) panic("%s: interrupts disabled", __func__); - mtx_lock_spin(&smp_tlb_mtx); + mtx_lock_spin(&smp_rv_mtx); } else critical_enter(); /* @@ -726,7 +726,7 @@ smp_masked_invltlb(pmap->pm_active & other_cpus); } if (smp_started) - mtx_unlock_spin(&smp_tlb_mtx); + mtx_unlock_spin(&smp_rv_mtx); else critical_exit(); } @@ -1048,9 +1048,7 @@ if (va >= VM_MAXUSER_ADDRESS) return 0; -/* XXX this should be an error, all cases should be caught now */ - if (ptepde == 0) - ptepde = *pmap_pde(pmap, va); + KASSERT(ptepde != 0, ("pmap_unuse_pt: ptepde != 0")); mpte = PHYS_TO_VM_PAGE(ptepde & PG_FRAME); return pmap_unwire_pte_hold(pmap, va, mpte); } ==== //depot/projects/netperf_socket/sys/amd64/linux32/linux32_machdep.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.2 2004/08/16 10:54:25 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_machdep.c,v 1.3 2004/08/24 20:52:52 jhb Exp $"); #include #include @@ -849,8 +849,8 @@ ss.ss_size = lss.ss_size; ss.ss_flags = linux_to_bsd_sigaltstack(lss.ss_flags); } - error = kern_sigaltstack(td, (uap->uoss != NULL) ? &oss : NULL, - (uap->uss != NULL) ? &ss : NULL); + error = kern_sigaltstack(td, (uap->uss != NULL) ? &ss : NULL, + (uap->uoss != NULL) ? &oss : NULL); if (!error && uap->uoss != NULL) { lss.ss_sp = PTROUT(oss.ss_sp); lss.ss_size = oss.ss_size; ==== //depot/projects/netperf_socket/sys/boot/alpha/Makefile.inc#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/alpha/Makefile.inc,v 1.10 2004/08/22 06:24:59 marcel Exp $ +# $FreeBSD: src/sys/boot/alpha/Makefile.inc,v 1.11 2004/08/23 16:25:07 obrien Exp $ # Options used when building app-specific libalpha components BINDIR?= /boot ==== //depot/projects/netperf_socket/sys/boot/ficl/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/ficl/Makefile,v 1.38 2004/08/22 06:24:59 marcel Exp $ +# $FreeBSD: src/sys/boot/ficl/Makefile,v 1.39 2004/08/23 16:25:07 obrien Exp $ # .PATH: ${.CURDIR}/${MACHINE_ARCH:S/amd64/i386/} BASE_SRCS= dict.c ficl.c fileaccess.c float.c loader.c math64.c \ ==== //depot/projects/netperf_socket/sys/compat/linux/linux_socket.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.51 2004/08/16 07:28:16 tjr Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/linux/linux_socket.c,v 1.53 2004/08/24 20:21:21 jhb Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -674,12 +674,7 @@ struct close_args /* { int fd; } */ c_args; - struct fcntl_args /* { - int fd; - int cmd; - long arg; - } */ f_args; - int error; + int error, fd; if ((error = copyin(args, &linux_args, sizeof(linux_args)))) return (error); @@ -705,11 +700,9 @@ * accepted one, so we must clear the flags in the new descriptor. * Ignore any errors, because we already have an open fd. */ - f_args.fd = td->td_retval[0]; - f_args.cmd = F_SETFL; - f_args.arg = 0; - (void)fcntl(td, &f_args); - td->td_retval[0] = f_args.fd; + fd = td->td_retval[0]; + (void)kern_fcntl(td, fd, F_SETFL, 0); + td->td_retval[0] = fd; return (0); } @@ -1011,7 +1004,8 @@ if (error) return (error); - if (bsd_args.msg->msg_control != NULL) { + if (bsd_args.msg->msg_control != NULL && + bsd_args.msg->msg_controllen > 0) { cmsg = (struct cmsghdr*)bsd_args.msg->msg_control; cmsg->cmsg_level = bsd_to_linux_sockopt_level(cmsg->cmsg_level); } ==== //depot/projects/netperf_socket/sys/compat/svr4/svr4_fcntl.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_fcntl.c,v 1.32 2003/06/22 08:41:41 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_fcntl.c,v 1.33 2004/08/24 20:21:21 jhb Exp $"); #include "opt_mac.h" @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -580,29 +581,24 @@ register struct thread *td; struct svr4_sys_fcntl_args *uap; { - int error; - struct fcntl_args fa; - int *retval; + int cmd, error, *retval; retval = td->td_retval; - fa.fd = uap->fd; - fa.cmd = svr4_to_bsd_cmd(uap->cmd); + cmd = svr4_to_bsd_cmd(uap->cmd); - switch (fa.cmd) { + switch (cmd) { case F_DUPFD: case F_GETFD: case F_SETFD: - fa.arg = (long) uap->arg; - return fcntl(td, &fa); + return (kern_fcntl(td, uap->fd, cmd, (intptr_t)uap->arg)); case F_GETFL: - fa.arg = (long) uap->arg; - error = fcntl(td, &fa); + error = kern_fcntl(td, uap->fd, cmd, (intptr_t)uap->arg); if (error) - return error; + return (error); *retval = bsd_to_svr4_flags(*retval); - return error; + return (error); case F_SETFL: { @@ -610,55 +606,39 @@ * we must save the O_ASYNC flag, as that is * handled by ioctl(_, I_SETSIG, _) emulation. */ - long cmd; int flags; DPRINTF(("Setting flags %p\n", uap->arg)); - cmd = fa.cmd; /* save it for a while */ - fa.cmd = F_GETFL; - if ((error = fcntl(td, &fa)) != 0) - return error; + error = kern_fcntl(td, uap->fd, F_GETFL, 0); + if (error) + return (error); flags = *retval; flags &= O_ASYNC; flags |= svr4_to_bsd_flags((u_long) uap->arg); - fa.cmd = cmd; - fa.arg = (long) flags; - return fcntl(td, &fa); + return (kern_fcntl(td, uap->fd, F_SETFL, flags)); } case F_GETLK: case F_SETLK: case F_SETLKW: { - struct svr4_flock ifl; - struct flock *flp, fl; - caddr_t sg = stackgap_init(); + struct svr4_flock ifl; + struct flock fl; - flp = stackgap_alloc(&sg, sizeof(struct flock)); - fa.arg = (long) flp; - - error = copyin(uap->arg, &ifl, sizeof ifl); + error = copyin(uap->arg, &ifl, sizeof (ifl)); if (error) - return error; + return (error); svr4_to_bsd_flock(&ifl, &fl); - error = copyout(&fl, flp, sizeof fl); - if (error) - return error; + error = kern_fcntl(td, uap->fd, cmd, (intptr_t)&fl); + if (error || cmd != F_GETLK) + return (error); - error = fcntl(td, &fa); - if (error || fa.cmd != F_GETLK) - return error; - - error = copyin(flp, &fl, sizeof fl); - if (error) - return error; - bsd_to_svr4_flock(&fl, &ifl); - return copyout(&ifl, uap->arg, sizeof ifl); + return (copyout(&ifl, uap->arg, sizeof (ifl))); } case -1: switch (uap->cmd) { @@ -692,36 +672,36 @@ case SVR4_F_SETLK64: case SVR4_F_SETLKW64: { - struct svr4_flock64 ifl; - struct flock *flp, fl; - caddr_t sg = stackgap_init(); + struct svr4_flock64 ifl; + struct flock fl; - flp = stackgap_alloc(&sg, sizeof(struct flock)); - fa.arg = (long) flp; - + switch (uap->cmd) { + case SVR4_F_GETLK64: + cmd = F_GETLK; + break; + case SVR4_F_SETLK64: + cmd = F_SETLK; + break; + case SVR4_F_SETLKW64: + cmd = F_SETLKW; + break; + } error = copyin(uap->arg, &ifl, - sizeof ifl); + sizeof (ifl)); if (error) - return error; + return (error); svr4_to_bsd_flock64(&ifl, &fl); - error = copyout(&fl, flp, sizeof fl); - if (error) - return error; + error = kern_fcntl(td, uap->fd, cmd, + (intptr_t)&fl); + if (error || cmd != F_GETLK) + return (error); - error = fcntl(td, &fa); - if (error || fa.cmd != F_GETLK) - return error; - - error = copyin(flp, &fl, sizeof fl); - if (error) - return error; - bsd_to_svr4_flock64(&fl, &ifl); - return copyout(&ifl, uap->arg, - sizeof ifl); + return (copyout(&ifl, uap->arg, + sizeof (ifl))); } case SVR4_F_FREESP64: ==== //depot/projects/netperf_socket/sys/compat/svr4/svr4_proto.h#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/svr4/svr4_proto.h,v 1.15 2004/02/06 20:21:18 jhb Exp $ - * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.15 2004/02/06 20:07:33 jhb Exp + * $FreeBSD: src/sys/compat/svr4/svr4_proto.h,v 1.16 2004/08/24 20:24:33 jhb Exp $ + * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.16 2004/08/24 20:21:21 jhb Exp */ #ifndef _SVR4_SYSPROTO_H_ ==== //depot/projects/netperf_socket/sys/compat/svr4/svr4_stream.c#5 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.49 2004/07/10 15:42:16 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.50 2004/08/24 20:21:21 jhb Exp $"); #define COMPAT_43 1 @@ -60,6 +60,7 @@ #include #include #include +#include #include #include #include /* Must come after sys/uio.h */ @@ -1473,7 +1474,6 @@ * We alse have to fix the O_ASYNC fcntl bit, so the * process will get SIGPOLLs. */ - struct fcntl_args fa; int error; register_t oflags, flags; struct svr4_strm *st = svr4_stream_get(fp); @@ -1483,10 +1483,9 @@ return EINVAL; } /* get old status flags */ - fa.fd = fd; - fa.cmd = F_GETFL; - if ((error = fcntl(td, &fa)) != 0) - return error; + error = kern_fcntl(td, fd, F_GETFL, 0); + if (error) + return (error); oflags = td->td_retval[0]; @@ -1512,19 +1511,15 @@ /* set the new flags, if changed */ if (flags != oflags) { - fa.cmd = F_SETFL; - fa.arg = (long) flags; - if ((error = fcntl(td, &fa)) != 0) - return error; + error = kern_fcntl(td, fd, F_SETFL, flags); + if (error) + return (error); flags = td->td_retval[0]; } /* set up SIGIO receiver if needed */ - if (dat != NULL) { - fa.cmd = F_SETOWN; - fa.arg = (long) td->td_proc->p_pid; - return fcntl(td, &fa); - } + if (dat != NULL) + return (kern_fcntl(td, fd, F_SETOWN, td->td_proc->p_pid)); return 0; } ==== //depot/projects/netperf_socket/sys/compat/svr4/svr4_syscall.h#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/svr4/svr4_syscall.h,v 1.13 2004/02/06 20:21:18 jhb Exp $ - * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.15 2004/02/06 20:07:33 jhb Exp + * $FreeBSD: src/sys/compat/svr4/svr4_syscall.h,v 1.14 2004/08/24 20:24:33 jhb Exp $ + * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.16 2004/08/24 20:21:21 jhb Exp */ #define SVR4_SYS_exit 1 ==== //depot/projects/netperf_socket/sys/compat/svr4/svr4_syscallnames.c#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/svr4/svr4_syscallnames.c,v 1.13 2004/02/06 20:21:18 jhb Exp $ - * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.15 2004/02/06 20:07:33 jhb Exp + * $FreeBSD: src/sys/compat/svr4/svr4_syscallnames.c,v 1.14 2004/08/24 20:24:33 jhb Exp $ + * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.16 2004/08/24 20:21:21 jhb Exp */ const char *svr4_syscallnames[] = { ==== //depot/projects/netperf_socket/sys/compat/svr4/svr4_sysent.c#3 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/svr4/svr4_sysent.c,v 1.14 2004/02/06 20:21:18 jhb Exp $ - * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.15 2004/02/06 20:07:33 jhb Exp + * $FreeBSD: src/sys/compat/svr4/svr4_sysent.c,v 1.15 2004/08/24 20:24:33 jhb Exp $ + * created from FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.16 2004/08/24 20:21:21 jhb Exp */ #include @@ -85,7 +85,7 @@ { AS(svr4_sys_execve_args), (sy_call_t *)svr4_sys_execve }, /* 59 = svr4_sys_execve */ { SYF_MPSAFE | AS(umask_args), (sy_call_t *)umask }, /* 60 = umask */ { AS(chroot_args), (sy_call_t *)chroot }, /* 61 = chroot */ - { AS(svr4_sys_fcntl_args), (sy_call_t *)svr4_sys_fcntl }, /* 62 = svr4_sys_fcntl */ + { SYF_MPSAFE | AS(svr4_sys_fcntl_args), (sy_call_t *)svr4_sys_fcntl }, /* 62 = svr4_sys_fcntl */ { SYF_MPSAFE | AS(svr4_sys_ulimit_args), (sy_call_t *)svr4_sys_ulimit }, /* 63 = svr4_sys_ulimit */ { 0, (sy_call_t *)nosys }, /* 64 = reserved */ { 0, (sy_call_t *)nosys }, /* 65 = reserved */ ==== //depot/projects/netperf_socket/sys/compat/svr4/syscalls.master#3 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.15 2004/02/06 20:07:33 jhb Exp $ + $FreeBSD: src/sys/compat/svr4/syscalls.master,v 1.16 2004/08/24 20:21:21 jhb Exp $ ; from: @(#)syscalls.master 8.1 (Berkeley) 7/19/93 ; ; System call name/number master file (or rather, slave, from SVR4). @@ -100,7 +100,7 @@ 59 STD { int svr4_sys_execve(char *path, char **argp, char **envp); } 60 MNOPROTO { int umask(int newmask); } 61 NOPROTO { int chroot(char *path); } -62 STD { int svr4_sys_fcntl(int fd, int cmd, char *arg); } +62 MSTD { int svr4_sys_fcntl(int fd, int cmd, char *arg); } 63 MSTD { int svr4_sys_ulimit(int cmd, long newlimit); } 64 UNIMPL reserved 65 UNIMPL reserved ==== //depot/projects/netperf_socket/sys/conf/files#49 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.943 2004/08/17 22:05:53 andre Exp $ +# $FreeBSD: src/sys/conf/files,v 1.944 2004/08/23 03:00:25 rwatson Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -1517,7 +1517,6 @@ netinet6/in6_gif.c optional gif inet6 netinet6/in6_ifattach.c optional inet6 netinet6/in6_pcb.c optional inet6 -netinet6/in6_prefix.c optional inet6 netinet6/in6_proto.c optional inet6 netinet6/in6_rmx.c optional inet6 netinet6/in6_src.c optional inet6 ==== //depot/projects/netperf_socket/sys/conf/ldscript.ia64#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/conf/ldscript.ia64,v 1.11 2004/06/20 22:32:19 marcel Exp $ */ +/* $FreeBSD: src/sys/conf/ldscript.ia64,v 1.12 2004/08/25 07:43:28 marcel Exp $ */ OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little") OUTPUT_ARCH(ia64) ENTRY(__start) @@ -30,6 +30,7 @@ .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rela.plt : { *(.rela.plt) } .rela.IA_64.pltoff : { *(.rela.IA_64.pltoff) } + PROVIDE (btext = .); .init : { *(.init) ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#39 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<<