svn commit: r211100 - stable/8/usr.sbin/pmcstat

Fabien Thomas fabient at FreeBSD.org
Mon Aug 9 14:32:45 UTC 2010


Author: fabient
Date: Mon Aug  9 14:32:45 2010
New Revision: 211100
URL: http://svn.freebsd.org/changeset/base/211100

Log:
  MFC r210797:
  
  - Do not use the runtime mask when logfile is specified.
  - Revert the fix on rtld path that is not necessary.

Modified:
  stable/8/usr.sbin/pmcstat/pmcstat.c
  stable/8/usr.sbin/pmcstat/pmcstat.h
  stable/8/usr.sbin/pmcstat/pmcstat_log.c
Directory Properties:
  stable/8/usr.sbin/pmcstat/   (props changed)

Modified: stable/8/usr.sbin/pmcstat/pmcstat.c
==============================================================================
--- stable/8/usr.sbin/pmcstat/pmcstat.c	Mon Aug  9 14:30:45 2010	(r211099)
+++ stable/8/usr.sbin/pmcstat/pmcstat.c	Mon Aug  9 14:32:45 2010	(r211100)
@@ -641,6 +641,7 @@ main(int argc, char **argv)
 			else
 				cpumask = pmcstat_get_cpumask(optarg);
 
+			args.pa_flags	 |= FLAGS_HAS_CPUMASK;
 			args.pa_required |= FLAG_HAS_SYSTEM_PMCS;
 			break;
 
@@ -884,6 +885,13 @@ main(int argc, char **argv)
 	args.pa_argc = (argc -= optind);
 	args.pa_argv = (argv += optind);
 
+	/* If we read from logfile and no specified CPU mask use
+	 * the maximum CPU count.
+	 */
+	if ((args.pa_flags & FLAG_READ_LOGFILE) &&
+	    (args.pa_flags & FLAGS_HAS_CPUMASK) == 0)
+		cpumask = 0xffffffff;
+
 	args.pa_cpumask = cpumask; /* For selecting CPUs using -R. */
 
 	if (argc)	/* command line present */

Modified: stable/8/usr.sbin/pmcstat/pmcstat.h
==============================================================================
--- stable/8/usr.sbin/pmcstat/pmcstat.h	Mon Aug  9 14:30:45 2010	(r211099)
+++ stable/8/usr.sbin/pmcstat/pmcstat.h	Mon Aug  9 14:32:45 2010	(r211100)
@@ -51,6 +51,7 @@
 #define	FLAG_DO_ANNOTATE		0x00008000	/* -m */
 #define	FLAG_DO_TOP			0x00010000	/* -T */
 #define	FLAG_DO_ANALYSIS		0x00020000	/* -g or -G or -m or -T */
+#define	FLAGS_HAS_CPUMASK		0x00040000	/* -c */
 
 #define	DEFAULT_SAMPLE_COUNT		65536
 #define	DEFAULT_WAIT_INTERVAL		5.0

Modified: stable/8/usr.sbin/pmcstat/pmcstat_log.c
==============================================================================
--- stable/8/usr.sbin/pmcstat/pmcstat_log.c	Mon Aug  9 14:30:45 2010	(r211099)
+++ stable/8/usr.sbin/pmcstat/pmcstat_log.c	Mon Aug  9 14:32:45 2010	(r211100)
@@ -609,7 +609,7 @@ pmcstat_image_get_elf_params(struct pmcs
 	GElf_Phdr ph;
 	GElf_Shdr sh;
 	enum pmcstat_image_type image_type;
-	char buffer[PATH_MAX], rtldpath[PATH_MAX];
+	char buffer[PATH_MAX];
 
 	assert(image->pi_type == PMCSTAT_IMAGE_UNKNOWN);
 
@@ -689,10 +689,9 @@ pmcstat_image_get_elf_params(struct pmcs
 					    buffer, elf_errmsg(-1));
 					goto done;
 				}
-				snprintf(rtldpath, sizeof(rtldpath), "%s%s",
-				    args.pa_fsroot, elfbase + ph.p_offset);
 				image->pi_dynlinkerpath =
-				    pmcstat_string_intern(rtldpath);
+				    pmcstat_string_intern(elfbase +
+				        ph.p_offset);
 				break;
 			case PT_LOAD:
 				if (ph.p_offset == 0)


More information about the svn-src-all mailing list