Date: Mon, 22 Sep 2008 17:13:49 GMT From: Warner Losh <imp@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 150287 for review Message-ID: <200809221713.m8MHDndk072132@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=150287 Change 150287 by imp@imp_paco-paco on 2008/09/22 17:13:09 IFC @150286 Affected files ... .. //depot/projects/mips2/src/etc/Makefile#10 integrate .. //depot/projects/mips2/src/lib/libpmc/pmc.3#9 integrate .. //depot/projects/mips2/src/lib/libpmc/pmc_allocate.3#2 integrate .. //depot/projects/mips2/src/lib/libpmc/pmc_capabilities.3#3 integrate .. //depot/projects/mips2/src/lib/libpmc/pmc_disable.3#2 integrate .. //depot/projects/mips2/src/lib/libpmc/pmc_start.3#2 integrate .. //depot/projects/mips2/src/sbin/ipfw/ipfw2.c#13 integrate .. //depot/projects/mips2/src/share/examples/drivers/make_pseudo_driver.sh#3 integrate .. //depot/projects/mips2/src/share/man/man4/hwpmc.4#6 integrate .. //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_ioctl.c#1 branch .. //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_ioctl.h#1 branch .. //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_proto.h#14 integrate .. //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_syscall.h#14 integrate .. //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_syscalls.c#14 integrate .. //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_sysent.c#14 integrate .. //depot/projects/mips2/src/sys/compat/freebsd32/syscalls.master#15 integrate .. //depot/projects/mips2/src/sys/conf/files.amd64#15 integrate .. //depot/projects/mips2/src/sys/conf/files.ia64#8 integrate .. //depot/projects/mips2/src/sys/dev/hwpmc/hwpmc_amd.c#4 integrate .. //depot/projects/mips2/src/sys/dev/hwpmc/hwpmc_mod.c#8 integrate .. //depot/projects/mips2/src/sys/dev/hwpmc/hwpmc_piv.c#4 integrate .. //depot/projects/mips2/src/sys/dev/hwpmc/hwpmc_ppro.c#3 integrate .. //depot/projects/mips2/src/sys/dev/jme/if_jme.c#4 integrate .. //depot/projects/mips2/src/sys/dev/jme/if_jmereg.h#3 integrate .. //depot/projects/mips2/src/sys/kern/kern_pmc.c#3 integrate .. //depot/projects/mips2/src/sys/netinet6/udp6_usrreq.c#14 integrate .. //depot/projects/mips2/src/sys/sys/pmckern.h#3 integrate Differences ... ==== //depot/projects/mips2/src/etc/Makefile#10 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)Makefile 5.11 (Berkeley) 5/21/91 -# $FreeBSD: src/etc/Makefile,v 1.369 2008/09/21 22:02:26 sam Exp $ +# $FreeBSD: src/etc/Makefile,v 1.370 2008/09/22 15:37:47 sam Exp $ .include <bsd.own.mk> @@ -84,6 +84,10 @@ BIN1+= pf.os .endif +.if ${MK_WIRELESS} != "no" +BIN1+= regdomain.xml +.endif + # -rwxr-xr-x root:wheel, for the new cron root:wheel BIN2= netstart pccard_ether rc.suspend rc.resume ==== //depot/projects/mips2/src/lib/libpmc/pmc.3#9 (text+ko) ==== @@ -21,7 +21,7 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $FreeBSD: src/lib/libpmc/pmc.3,v 1.21 2008/09/19 13:21:23 jkoshy Exp $ +.\" $FreeBSD: src/lib/libpmc/pmc.3,v 1.22 2008/09/22 14:31:24 jkoshy Exp $ .\" .Dd September 16, 2008 .Os @@ -261,7 +261,14 @@ .It Li PMC_CAP_WRITE The ability to write to performance counters. .El -.Ss Functional Grouping +.Ss CPU Naming Conventions +CPUs are named using small integers from zero uptil, but +excluding, the value returned by function +.Fn pmc_ncpu . +On platforms supporting sparsely numbered CPUs not all the numbers in +this range will denote valid CPUs. +Operations on non-existent CPUs will return an error. +.Ss Functional Grouping of the API This section contains a brief overview of the available functionality in the PMC library. Each function listed here is described further in its own manual page. @@ -342,7 +349,7 @@ Retrieve statistics maintained by .Xr hwpmc 4 . .It Fn pmc_ncpu -Determine the number of CPUs in the system. +Determine the greatest possible CPU number on the system. .It Fn pmc_npmc Return the number of hardware PMCs present in a given CPU. .It Fn pmc_pmcinfo ==== //depot/projects/mips2/src/lib/libpmc/pmc_allocate.3#2 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2007 Joseph Koshy. All rights reserved. +.\" Copyright (c) 2007-2008 Joseph Koshy. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -21,9 +21,9 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $FreeBSD: src/lib/libpmc/pmc_allocate.3,v 1.1 2007/11/23 11:46:08 jkoshy Exp $ +.\" $FreeBSD: src/lib/libpmc/pmc_allocate.3,v 1.2 2008/09/22 14:31:24 jkoshy Exp $ .\" -.Dd November 20, 2007 +.Dd September 22, 2008 .Os .Dt PMC_ALLOCATE 3 .Sh NAME @@ -156,7 +156,7 @@ .It Bq Er ENXIO Function .Fn pmc_allocate -requested the use of a hardware resource that was previously +requested the use of a hardware resource that was absent or administratively disabled. .It Bq Er EOPNOTSUPP The underlying hardware does not support the capabilities needed for ==== //depot/projects/mips2/src/lib/libpmc/pmc_capabilities.3#3 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2007 Joseph Koshy. All rights reserved. +.\" Copyright (c) 2007-2008 Joseph Koshy. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -21,9 +21,9 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $FreeBSD: src/lib/libpmc/pmc_capabilities.3,v 1.2 2008/03/12 15:48:59 jkoshy Exp $ +.\" $FreeBSD: src/lib/libpmc/pmc_capabilities.3,v 1.3 2008/09/22 14:31:24 jkoshy Exp $ .\" -.Dd November 24, 2007 +.Dd September 22, 2008 .Os .Dt PMC_CAPABILITIES 3 .Sh NAME @@ -96,8 +96,11 @@ .Pp Function .Fn pmc_ncpu -is a convenience function that returns the number of CPUs in the -system. +is a convenience function that returns the maximum CPU number in +the system. +On systems that support sparsely numbered CPUs, not all CPUs may +be physically present. +Applications need to be prepared to deal with nonexistent CPUs. .Pp Function .Fn pmc_npmc @@ -201,11 +204,11 @@ .It Bq Er EINVAL The argument .Fa cpu -specified a non-existent CPU. +was invalid. .It Bq Er ENXIO The argument .Fa cpu -specified a disabled CPU. +specified a disabled or absent CPU. .El .Pp A call to function ==== //depot/projects/mips2/src/lib/libpmc/pmc_disable.3#2 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2007 Joseph Koshy. All rights reserved. +.\" Copyright (c) 2007-2008 Joseph Koshy. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -21,9 +21,9 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $FreeBSD: src/lib/libpmc/pmc_disable.3,v 1.1 2007/11/23 12:21:34 jkoshy Exp $ +.\" $FreeBSD: src/lib/libpmc/pmc_disable.3,v 1.2 2008/09/22 14:31:24 jkoshy Exp $ .\" -.Dd November 20, 2007 +.Dd September 22, 2008 .Os .Dt PMC_ENABLE 3 .Sh NAME @@ -85,7 +85,7 @@ .It Bq Er ENXIO Argument .Fa cpu -specified a disabled CPU. +specified a disabled or absent CPU. .It Bq Er EPERM The current process lacks sufficient privilege to perform this operation. @@ -96,4 +96,4 @@ .Xr pmc_pmcinfo 3 , .Xr hwpmc 4 , .Xr pmccontrol 8 , -.Xr priv_check 9+.Xr priv_check 9 ==== //depot/projects/mips2/src/lib/libpmc/pmc_start.3#2 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2007 Joseph Koshy. All rights reserved. +.\" Copyright (c) 2007-2008 Joseph Koshy. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -21,9 +21,9 @@ .\" out of the use of this software, even if advised of the possibility of .\" such damage. .\" -.\" $FreeBSD: src/lib/libpmc/pmc_start.3,v 1.1 2007/11/25 06:38:55 jkoshy Exp $ +.\" $FreeBSD: src/lib/libpmc/pmc_start.3,v 1.2 2008/09/22 14:31:24 jkoshy Exp $ .\" -.Dd November 25, 2007 +.Dd September 22, 2008 .Os .Dt PMC_START 3 .Sh NAME @@ -69,7 +69,8 @@ .Fn pmc_stop specified a PMC that was never started. .It Bq Er ENXIO -The specified PMC had system scope and its associated CPU was disabled. +The specified PMC had system scope and its associated CPU was disabled or +absent. .El .Sh SEE ALSO .Xr pmc 3 , ==== //depot/projects/mips2/src/sbin/ipfw/ipfw2.c#13 (text+ko) ==== @@ -17,7 +17,7 @@ * * NEW command line interface for IP firewall facility * - * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.127 2008/09/21 21:46:56 rik Exp $ + * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.128 2008/09/22 04:12:27 keramida Exp $ */ #include <sys/param.h> @@ -5874,7 +5874,7 @@ char *p; uint32_t tables_max; - len = sizeof(a); + len = sizeof(tables_max); if (sysctlbyname("net.inet.ip.fw.tables_max", &tables_max, &len, NULL, 0) == -1) { #ifdef IPFW_TABLES_MAX ==== //depot/projects/mips2/src/share/examples/drivers/make_pseudo_driver.sh#3 (text+ko) ==== @@ -6,7 +6,7 @@ # # Trust me, RUN THIS SCRIPT :) # -# $FreeBSD: src/share/examples/drivers/make_pseudo_driver.sh,v 1.13 2006/08/23 23:51:29 rik Exp $ +# $FreeBSD: src/share/examples/drivers/make_pseudo_driver.sh,v 1.14 2008/09/22 16:10:12 ed Exp $ # #-------cut here------------------ @@ -344,7 +344,7 @@ ${1}_drvinit(void *unused) { int unit; - sc_p scp = sca[unit]; + sc_p scp; for (unit = 0; unit < N${UPPER}; unit++) { /* @@ -362,7 +362,7 @@ } SYSINIT(${1}dev, SI_SUB_DRIVERS, SI_ORDER_MIDDLE+CDEV_MAJOR, - ${1}_drvinit, NULL) + ${1}_drvinit, NULL); DONE cat >${TOP}/sys/${1}io.h <<DONE ==== //depot/projects/mips2/src/share/man/man4/hwpmc.4#6 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003-2007 Joseph Koshy +.\" Copyright (c) 2003-2008 Joseph Koshy .\" Copyright (c) 2007 The FreeBSD Foundation .\" All rights reserved. .\" @@ -26,9 +26,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/hwpmc.4,v 1.22 2007/12/07 08:29:46 jkoshy Exp $ +.\" $FreeBSD: src/share/man/man4/hwpmc.4,v 1.23 2008/09/22 14:31:24 jkoshy Exp $ .\" -.Dd November 24, 2007 +.Dd September 22, 2008 .Dt HWPMC 4 .Os .Sh NAME @@ -307,8 +307,8 @@ The returned error code reflects any pending error state inside .Nm . .It Dv PMC_OP_GETCPUINFO -Retrieve information about the number of CPUs on the system and -the number of hardware performance monitoring counters available per-CPU. +Retrieve information about the highest possible CPU number for the system, +and the number of hardware performance monitoring counters available per CPU. .It Dv PMC_OP_GETDRIVERSTATS Retrieve module statistics (for analyzing the behavior of .Nm @@ -490,6 +490,12 @@ .Ss SMP Symmetry The kernel driver requires all physical CPUs in an SMP system to have identical performance monitoring counter hardware. +.Ss Sparse CPU Numbering +On platforms that sparsely number CPUs and which support hot-plugging +of CPUs, requests that specify non-existent or disabled CPUs will fail +with an error. +Applications allocating system-scope PMCs need to be aware of +the possibility of such transient failures. .Ss x86 TSC Handling Historically, on the x86 architecture, .Fx @@ -735,17 +741,19 @@ .It Bq Er ENXIO A .Dv PMC_OP_GETPMCINFO -operation was requested for a disabled CPU. +operation was requested for an absent or disabled CPU. .It Bq Er ENXIO -A system-wide PMC on a disabled CPU was requested to be allocated with -.Dv PMC_OP_PMCALLOCATE . +A +.Dv PMC_OP_PMCALLOCATE +operation specified allocation of a system-wide PMC on an absent or +disabled CPU. .It Bq Er ENXIO A .Dv PMC_OP_PMCSTART or .Dv PMC_OP_PMCSTOP -request was issued for a system-wide PMC that was allocated on a -currently disabled CPU. +request was issued for a system-wide PMC that was allocated on a CPU +that is currently absent or disabled. .It Bq Er EOPNOTSUPP A .Dv PMC_OP_PMCALLOCATE ==== //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_proto.h#14 (text+ko) ==== @@ -2,8 +2,8 @@ * System call prototypes. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.91 2008/09/19 15:21:40 obrien Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183188 2008-09-19 15:17:32Z obrien + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.92 2008/09/22 16:09:43 obrien Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183270 2008-09-22 16:09:16Z obrien */ #ifndef _FREEBSD32_SYSPROTO_H_ @@ -63,6 +63,11 @@ char ss_l_[PADL_(struct sigaltstack32 *)]; struct sigaltstack32 * ss; char ss_r_[PADR_(struct sigaltstack32 *)]; char oss_l_[PADL_(struct sigaltstack32 *)]; struct sigaltstack32 * oss; char oss_r_[PADR_(struct sigaltstack32 *)]; }; +struct freebsd32_ioctl_args { + char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)]; + char com_l_[PADL_(uint32_t)]; uint32_t com; char com_r_[PADR_(uint32_t)]; + char data_l_[PADL_(struct md_ioctl32 *)]; struct md_ioctl32 * data; char data_r_[PADR_(struct md_ioctl32 *)]; +}; struct freebsd32_execve_args { char fname_l_[PADL_(char *)]; char * fname; char fname_r_[PADR_(char *)]; char argv_l_[PADL_(u_int32_t *)]; u_int32_t * argv; char argv_r_[PADR_(u_int32_t *)]; @@ -383,6 +388,7 @@ int freebsd32_sendmsg(struct thread *, struct freebsd32_sendmsg_args *); int freebsd32_recvfrom(struct thread *, struct freebsd32_recvfrom_args *); int freebsd32_sigaltstack(struct thread *, struct freebsd32_sigaltstack_args *); +int freebsd32_ioctl(struct thread *, struct freebsd32_ioctl_args *); int freebsd32_execve(struct thread *, struct freebsd32_execve_args *); int freebsd32_setitimer(struct thread *, struct freebsd32_setitimer_args *); int freebsd32_getitimer(struct thread *, struct freebsd32_getitimer_args *); @@ -594,6 +600,7 @@ #define FREEBSD32_SYS_AUE_freebsd32_sendmsg AUE_SENDMSG #define FREEBSD32_SYS_AUE_freebsd32_recvfrom AUE_RECVFROM #define FREEBSD32_SYS_AUE_freebsd32_sigaltstack AUE_SIGALTSTACK +#define FREEBSD32_SYS_AUE_freebsd32_ioctl AUE_NULL #define FREEBSD32_SYS_AUE_freebsd32_execve AUE_EXECVE #define FREEBSD32_SYS_AUE_freebsd32_setitimer AUE_SETITIMER #define FREEBSD32_SYS_AUE_freebsd32_getitimer AUE_GETITIMER ==== //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_syscall.h#14 (text+ko) ==== @@ -2,8 +2,8 @@ * System call numbers. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.90 2008/09/19 15:21:40 obrien Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183188 2008-09-19 15:17:32Z obrien + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.91 2008/09/22 16:09:43 obrien Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183270 2008-09-22 16:09:16Z obrien */ #define FREEBSD32_SYS_syscall 0 @@ -58,7 +58,7 @@ #define FREEBSD32_SYS_acct 51 /* 52 is old freebsd32_sigpending */ #define FREEBSD32_SYS_freebsd32_sigaltstack 53 -#define FREEBSD32_SYS_ioctl 54 +#define FREEBSD32_SYS_freebsd32_ioctl 54 #define FREEBSD32_SYS_reboot 55 #define FREEBSD32_SYS_revoke 56 #define FREEBSD32_SYS_symlink 57 ==== //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_syscalls.c#14 (text+ko) ==== @@ -2,8 +2,8 @@ * System call names. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.81 2008/09/19 15:21:40 obrien Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183188 2008-09-19 15:17:32Z obrien + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.82 2008/09/22 16:09:43 obrien Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183270 2008-09-22 16:09:16Z obrien */ const char *freebsd32_syscallnames[] = { @@ -61,7 +61,7 @@ "acct", /* 51 = acct */ "compat.freebsd32_sigpending", /* 52 = old freebsd32_sigpending */ "freebsd32_sigaltstack", /* 53 = freebsd32_sigaltstack */ - "ioctl", /* 54 = ioctl */ + "freebsd32_ioctl", /* 54 = freebsd32_ioctl */ "reboot", /* 55 = reboot */ "revoke", /* 56 = revoke */ "symlink", /* 57 = symlink */ ==== //depot/projects/mips2/src/sys/compat/freebsd32/freebsd32_sysent.c#14 (text+ko) ==== @@ -2,8 +2,8 @@ * System call switch table. * * DO NOT EDIT-- this file is automatically generated. - * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.91 2008/09/19 15:21:40 obrien Exp $ - * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183188 2008-09-19 15:17:32Z obrien + * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.92 2008/09/22 16:09:43 obrien Exp $ + * created from FreeBSD: head/sys/compat/freebsd32/syscalls.master 183270 2008-09-22 16:09:16Z obrien */ #include "opt_compat.h" @@ -92,7 +92,7 @@ { AS(acct_args), (sy_call_t *)acct, AUE_ACCT, NULL, 0, 0 }, /* 51 = acct */ { compat(0,freebsd32_sigpending), AUE_SIGPENDING, NULL, 0, 0 }, /* 52 = old freebsd32_sigpending */ { AS(freebsd32_sigaltstack_args), (sy_call_t *)freebsd32_sigaltstack, AUE_SIGALTSTACK, NULL, 0, 0 }, /* 53 = freebsd32_sigaltstack */ - { AS(ioctl_args), (sy_call_t *)ioctl, AUE_IOCTL, NULL, 0, 0 }, /* 54 = ioctl */ + { AS(freebsd32_ioctl_args), (sy_call_t *)freebsd32_ioctl, AUE_NULL, NULL, 0, 0 }, /* 54 = freebsd32_ioctl */ { AS(reboot_args), (sy_call_t *)reboot, AUE_REBOOT, NULL, 0, 0 }, /* 55 = reboot */ { AS(revoke_args), (sy_call_t *)revoke, AUE_REVOKE, NULL, 0, 0 }, /* 56 = revoke */ { AS(symlink_args), (sy_call_t *)symlink, AUE_SYMLINK, NULL, 0, 0 }, /* 57 = symlink */ ==== //depot/projects/mips2/src/sys/compat/freebsd32/syscalls.master#15 (text+ko) ==== @@ -1,4 +1,4 @@ - $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.106 2008/09/19 15:17:32 obrien Exp $ + $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.107 2008/09/22 16:09:16 obrien Exp $ ; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94 ; from: src/sys/kern/syscalls.master 1.107 ; @@ -134,8 +134,8 @@ 53 AUE_SIGALTSTACK STD { int freebsd32_sigaltstack( \ struct sigaltstack32 *ss, \ struct sigaltstack32 *oss); } -54 AUE_IOCTL NOPROTO { int ioctl(int fd, u_long com, \ - caddr_t data); } +54 AUE_NULL STD { int freebsd32_ioctl(int fd, uint32_t com, \ + struct md_ioctl32 *data); } 55 AUE_REBOOT NOPROTO { int reboot(int opt); } 56 AUE_REVOKE NOPROTO { int revoke(char *path); } 57 AUE_SYMLINK NOPROTO { int symlink(char *path, char *link); } ==== //depot/projects/mips2/src/sys/conf/files.amd64#15 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.amd64,v 1.122 2008/08/08 16:26:53 stas Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.123 2008/09/22 16:09:16 obrien Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -220,6 +220,7 @@ amd64/ia32/ia32_signal.c optional compat_ia32 amd64/ia32/ia32_sigtramp.S optional compat_ia32 amd64/ia32/ia32_syscall.c optional compat_ia32 +compat/freebsd32/freebsd32_ioctl.c optional compat_ia32 compat/freebsd32/freebsd32_misc.c optional compat_ia32 compat/freebsd32/freebsd32_syscalls.c optional compat_ia32 compat/freebsd32/freebsd32_sysent.c optional compat_ia32 ==== //depot/projects/mips2/src/sys/conf/files.ia64#8 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.ia64,v 1.94 2007/12/02 20:40:31 rwatson Exp $ +# $FreeBSD: src/sys/conf/files.ia64,v 1.95 2008/09/22 16:09:16 obrien Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -28,6 +28,7 @@ no-obj no-implicit-rule before-depend \ clean "ukbdmap.h" # +compat/freebsd32/freebsd32_ioctl.c optional compat_ia32 compat/freebsd32/freebsd32_misc.c optional compat_ia32 compat/freebsd32/freebsd32_syscalls.c optional compat_ia32 compat/freebsd32/freebsd32_sysent.c optional compat_ia32 ==== //depot/projects/mips2/src/sys/dev/hwpmc/hwpmc_amd.c#4 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003-2007 Joseph Koshy + * Copyright (c) 2003-2008 Joseph Koshy * Copyright (c) 2007 The FreeBSD Foundation * All rights reserved. * @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_amd.c,v 1.16 2008/03/18 08:39:11 adrian Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_amd.c,v 1.17 2008/09/22 10:37:02 jkoshy Exp $"); /* Support for the AMD K7 and later processors */ @@ -39,6 +39,7 @@ #include <sys/malloc.h> #include <sys/mutex.h> #include <sys/pmc.h> +#include <sys/pmckern.h> #include <sys/smp.h> #include <sys/systm.h> @@ -269,7 +270,7 @@ const struct pmc_hw *phw; pmc_value_t tmp; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] illegal CPU value %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < AMD_NPMCS, ("[amd,%d] illegal row-index %d", __LINE__, ri)); @@ -327,7 +328,7 @@ const struct pmc_hw *phw; enum pmc_mode mode; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] illegal CPU value %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < AMD_NPMCS, ("[amd,%d] illegal row-index %d", __LINE__, ri)); @@ -374,7 +375,7 @@ PMCDBG(MDP,CFG,1, "cpu=%d ri=%d pm=%p", cpu, ri, pm); - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] illegal CPU value %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < AMD_NPMCS, ("[amd,%d] illegal row-index %d", __LINE__, ri)); @@ -456,7 +457,7 @@ (void) cpu; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] illegal CPU value %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < AMD_NPMCS, ("[amd,%d] illegal row index %d", __LINE__, ri)); @@ -550,7 +551,7 @@ (void) pmc; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] illegal CPU value %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < AMD_NPMCS, ("[amd,%d] illegal row-index %d", __LINE__, ri)); @@ -582,7 +583,7 @@ struct pmc_hw *phw; const struct amd_descr *pd; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] illegal CPU value %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < AMD_NPMCS, ("[amd,%d] illegal row-index %d", __LINE__, ri)); @@ -631,7 +632,7 @@ const struct amd_descr *pd; uint64_t config; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] illegal CPU value %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < AMD_NPMCS, ("[amd,%d] illegal row-index %d", __LINE__, ri)); @@ -683,7 +684,7 @@ struct pmc_hw *phw; pmc_value_t v; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] out of range CPU %d", __LINE__, cpu)); PMCDBG(MDP,INT,1, "cpu=%d tf=%p um=%d", cpu, (void *) tf, @@ -763,7 +764,7 @@ const struct amd_descr *pd; struct pmc_hw *phw; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] illegal CPU %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < AMD_NPMCS, ("[amd,%d] row-index %d out of range", __LINE__, ri)); @@ -832,7 +833,7 @@ struct amd_cpu *pcs; struct pmc_hw *phw; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] insane cpu number %d", __LINE__, cpu)); PMCDBG(MDP,INI,1,"amd-init cpu=%d", cpu); @@ -875,7 +876,7 @@ uint32_t evsel; struct pmc_cpu *pcs; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] insane cpu number (%d)", __LINE__, cpu)); PMCDBG(MDP,INI,1,"amd-cleanup cpu=%d", cpu); ==== //depot/projects/mips2/src/sys/dev/hwpmc/hwpmc_mod.c#8 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2003-2007 Joseph Koshy + * Copyright (c) 2003-2008 Joseph Koshy * Copyright (c) 2007 The FreeBSD Foundation * All rights reserved. * @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_mod.c,v 1.33 2008/07/25 05:49:48 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_mod.c,v 1.34 2008/09/22 10:37:02 jkoshy Exp $"); #include <sys/param.h> #include <sys/eventhandler.h> @@ -98,8 +98,8 @@ KASSERT(pmc_pmcdisp[(R)] <= 0, ("[pmc,%d] row disposition error", \ __LINE__)); \ atomic_add_int(&pmc_pmcdisp[(R)], -1); \ - KASSERT(pmc_pmcdisp[(R)] >= (-mp_ncpus), ("[pmc,%d] row " \ - "disposition error", __LINE__)); \ + KASSERT(pmc_pmcdisp[(R)] >= (-pmc_cpu_max_active()), \ + ("[pmc,%d] row disposition error", __LINE__)); \ } while (0) #define PMC_UNMARK_ROW_STANDALONE(R) do { \ @@ -637,12 +637,12 @@ static void pmc_select_cpu(int cpu) { - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[pmc,%d] bad cpu number %d", __LINE__, cpu)); - /* never move to a disabled CPU */ - KASSERT(pmc_cpu_is_disabled(cpu) == 0, ("[pmc,%d] selecting " - "disabled CPU %d", __LINE__, cpu)); + /* Never move to an inactive CPU. */ + KASSERT(pmc_cpu_is_active(cpu), ("[pmc,%d] selecting inactive " + "CPU %d", __LINE__, cpu)); PMCDBG(CPU,SEL,2, "select-cpu cpu=%d", cpu); thread_lock(curthread); @@ -1186,7 +1186,7 @@ PMCDBG(CSW,SWI,1, "cpu=%d proc=%p (%d, %s) pp=%p", cpu, p, p->p_pid, p->p_comm, pp); - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[pmc,%d] wierd CPU id %d", __LINE__, cpu)); pc = pmc_pcpu[cpu]; @@ -1311,7 +1311,7 @@ PMCDBG(CSW,SWO,1, "cpu=%d proc=%p (%d, %s) pp=%p", cpu, p, p->p_pid, p->p_comm, pp); - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[pmc,%d wierd CPU id %d", __LINE__, cpu)); pc = pmc_pcpu[cpu]; @@ -2038,7 +2038,7 @@ #ifdef DEBUG volatile int maxloop; - maxloop = 100 * mp_ncpus; + maxloop = 100 * pmc_cpu_max(); #endif /* @@ -2499,7 +2499,7 @@ cpu = PMC_TO_CPU(pm); - if (pmc_cpu_is_disabled(cpu)) + if (!pmc_cpu_is_active(cpu)) return ENXIO; pmc_select_cpu(cpu); @@ -2566,10 +2566,10 @@ cpu = PMC_TO_CPU(pm); - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[pmc,%d] illegal cpu=%d", __LINE__, cpu)); - if (pmc_cpu_is_disabled(cpu)) + if (!pmc_cpu_is_active(cpu)) return ENXIO; pmc_select_cpu(cpu); @@ -2734,7 +2734,7 @@ struct pmc_op_getcpuinfo gci; gci.pm_cputype = md->pmd_cputype; - gci.pm_ncpu = mp_ncpus; + gci.pm_ncpu = pmc_cpu_max(); gci.pm_npmc = md->pmd_npmc; gci.pm_nclass = md->pmd_nclass; bcopy(md->pmd_classes, &gci.pm_classes, @@ -2802,12 +2802,12 @@ if ((error = copyin(&gpi->pm_cpu, &cpu, sizeof(cpu))) != 0) break; - if (cpu >= (unsigned int) mp_ncpus) { + if (cpu >= pmc_cpu_max()) { error = EINVAL; break; } - if (pmc_cpu_is_disabled(cpu)) { + if (!pmc_cpu_is_active(cpu)) { error = ENXIO; break; } @@ -2896,12 +2896,12 @@ cpu = pma.pm_cpu; - if (cpu < 0 || cpu >= mp_ncpus) { + if (cpu < 0 || cpu >= (int) pmc_cpu_max()) { error = EINVAL; break; } - if (pmc_cpu_is_disabled(cpu)) { + if (!pmc_cpu_is_active(cpu)) { error = ENXIO; break; } @@ -2989,7 +2989,7 @@ if ((mode != PMC_MODE_SS && mode != PMC_MODE_SC && mode != PMC_MODE_TS && mode != PMC_MODE_TC) || - (cpu != (u_int) PMC_CPU_ANY && cpu >= (u_int) mp_ncpus)) { + (cpu != (u_int) PMC_CPU_ANY && cpu >= pmc_cpu_max())) { error = EINVAL; break; } @@ -3006,10 +3006,10 @@ } /* - * Check that a disabled CPU is not being asked for. + * Check that an inactive CPU is not being asked for. */ - if (PMC_IS_SYSTEM_MODE(mode) && pmc_cpu_is_disabled(cpu)) { + if (PMC_IS_SYSTEM_MODE(mode) && !pmc_cpu_is_active(cpu)) { error = ENXIO; break; } @@ -3522,7 +3522,7 @@ cpu = PMC_TO_CPU(pm); ri = PMC_TO_ROWINDEX(pm); - if (pmc_cpu_is_disabled(cpu)) { + if (!pmc_cpu_is_active(cpu)) { error = ENXIO; break; } @@ -4292,6 +4292,7 @@ pmc_initialize(void) { int cpu, error, n; + unsigned int maxcpu; struct pmc_binding pb; struct pmc_sample *ps; struct pmc_samplebuffer *sb; @@ -4349,18 +4350,20 @@ if (md == NULL || md->pmd_init == NULL) return ENOSYS; + maxcpu = pmc_cpu_max(); + /* allocate space for the per-cpu array */ - MALLOC(pmc_pcpu, struct pmc_cpu **, mp_ncpus * sizeof(struct pmc_cpu *), + MALLOC(pmc_pcpu, struct pmc_cpu **, maxcpu * sizeof(struct pmc_cpu *), M_PMC, M_WAITOK|M_ZERO); /* per-cpu 'saved values' for managing process-mode PMCs */ MALLOC(pmc_pcpu_saved, pmc_value_t *, - sizeof(pmc_value_t) * mp_ncpus * md->pmd_npmc, M_PMC, M_WAITOK); + sizeof(pmc_value_t) * maxcpu * md->pmd_npmc, M_PMC, M_WAITOK); - /* perform cpu dependent initialization */ + /* Perform CPU-dependent initialization. */ pmc_save_cpu_binding(&pb); - for (cpu = 0; cpu < mp_ncpus; cpu++) { - if (pmc_cpu_is_disabled(cpu)) + for (cpu = 0; cpu < maxcpu; cpu++) { + if (!pmc_cpu_is_active(cpu)) continue; pmc_select_cpu(cpu); if ((error = md->pmd_init(cpu)) != 0) @@ -4372,8 +4375,8 @@ return error; /* allocate space for the sample array */ - for (cpu = 0; cpu < mp_ncpus; cpu++) { - if (pmc_cpu_is_disabled(cpu)) + for (cpu = 0; cpu < maxcpu; cpu++) { + if (!pmc_cpu_is_active(cpu)) continue; MALLOC(sb, struct pmc_samplebuffer *, sizeof(struct pmc_samplebuffer) + @@ -4463,6 +4466,7 @@ pmc_cleanup(void) { int cpu; + unsigned int maxcpu; struct pmc_ownerhash *ph; struct pmc_owner *po, *tmp; struct pmc_binding pb; @@ -4542,9 +4546,10 @@ KASSERT(pmc_ss_count == 0, ("[pmc,%d] Global SS count not empty", __LINE__)); - /* free the per-cpu sample buffers */ - for (cpu = 0; cpu < mp_ncpus; cpu++) { - if (pmc_cpu_is_disabled(cpu)) + /* Free the per-cpu sample buffers. */ + maxcpu = pmc_cpu_max(); + for (cpu = 0; cpu < maxcpu; cpu++) { + if (!pmc_cpu_is_active(cpu)) continue; KASSERT(pmc_pcpu[cpu]->pc_sb != NULL, ("[pmc,%d] Null cpu sample buffer cpu=%d", __LINE__, @@ -4558,14 +4563,14 @@ PMCDBG(MOD,INI,3, "%s", "md cleanup"); if (md) { pmc_save_cpu_binding(&pb); - for (cpu = 0; cpu < mp_ncpus; cpu++) { + for (cpu = 0; cpu < maxcpu; cpu++) { PMCDBG(MOD,INI,1,"pmc-cleanup cpu=%d pcs=%p", cpu, pmc_pcpu[cpu]); - if (pmc_cpu_is_disabled(cpu)) + if (!pmc_cpu_is_active(cpu) || pmc_pcpu[cpu] == NULL) continue; pmc_select_cpu(cpu); - if (pmc_pcpu[cpu]) - (void) md->pmd_cleanup(cpu); + if (md->pmd_cleanup) + md->pmd_cleanup(cpu); } FREE(md, M_PMC); md = NULL; @@ -4606,8 +4611,8 @@ error = pmc_initialize(); if (error != 0) break; - PMCDBG(MOD,INI,1, "syscall=%d ncpus=%d", - pmc_syscall_num, mp_ncpus); + PMCDBG(MOD,INI,1, "syscall=%d maxcpu=%d", + pmc_syscall_num, pmc_cpu_max()); break; ==== //depot/projects/mips2/src/sys/dev/hwpmc/hwpmc_piv.c#4 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_piv.c,v 1.15 2007/12/07 08:20:15 jkoshy Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_piv.c,v 1.16 2008/09/22 10:37:02 jkoshy Exp $"); #include <sys/param.h> #include <sys/lock.h> @@ -532,8 +532,8 @@ KASSERT(p4_escrdisp[(E)] <= 0, ("[p4,%d] row disposition error",\ __LINE__)); \ atomic_add_int(&p4_escrdisp[(E)], -1); \ - KASSERT(p4_escrdisp[(E)] >= (-mp_ncpus), ("[p4,%d] row " \ - "disposition error", __LINE__)); \ + KASSERT(p4_escrdisp[(E)] >= (-pmc_cpu_max_active()), \ + ("[p4,%d] row disposition error", __LINE__)); \ } while (0) #define P4_ESCR_UNMARK_ROW_STANDALONE(E) do { \ @@ -596,11 +596,11 @@ struct p4_logicalcpu *plcs; struct pmc_hw *phw; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[p4,%d] insane cpu number %d", __LINE__, cpu)); - PMCDBG(MDP,INI,0, "p4-init cpu=%d logical=%d", cpu, - pmc_cpu_is_logical(cpu) != 0); + PMCDBG(MDP,INI,0, "p4-init cpu=%d is-primary=%d", cpu, + pmc_cpu_is_primary(cpu) != 0); /* * The two CPUs in an HT pair share their per-cpu state. @@ -614,7 +614,7 @@ * secondary. */ - if (pmc_cpu_is_logical(cpu) && (cpu & 1)) { + if (!pmc_cpu_is_primary(cpu) && (cpu & 1)) { p4_system_has_htt = 1; @@ -761,7 +761,7 @@ struct pmc_hw *phw; pmc_value_t tmp; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[p4,%d] illegal CPU value %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < P4_NPMCS, ("[p4,%d] illegal row-index %d", __LINE__, ri)); @@ -839,7 +839,7 @@ const struct pmc_hw *phw; const struct p4pmc_descr *pd; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[amd,%d] illegal CPU value %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < P4_NPMCS, ("[amd,%d] illegal row-index %d", __LINE__, ri)); @@ -913,7 +913,7 @@ struct p4_cpu *pc; int cfgflags, cpuflag; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[p4,%d] illegal CPU %d", __LINE__, cpu)); KASSERT(ri >= 0 && ri < P4_NPMCS, ("[p4,%d] illegal row-index %d", __LINE__, ri)); @@ -1050,7 +1050,7 @@ struct p4_event_descr *pevent; const struct p4pmc_descr *pd; - KASSERT(cpu >= 0 && cpu < mp_ncpus, + KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), ("[p4,%d] illegal CPU %d", __LINE__, cpu)); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200809221713.m8MHDndk072132>