- Do not use the runtime mask when logfile is specified.

- Revert the fix on rtld path that is not necessary.

MFC after:	1 week
This commit is contained in:
Fabien Thomas 2010-08-03 13:46:25 +00:00
parent 34ab36a3dc
commit e7ef1de5be
3 changed files with 12 additions and 4 deletions

View File

@ -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 */

View File

@ -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

View File

@ -609,7 +609,7 @@ pmcstat_image_get_elf_params(struct pmcstat_image *image)
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 pmcstat_image *image)
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)