diff options
Diffstat (limited to 'tools/gator/daemon/PerfGroup.h')
-rw-r--r-- | tools/gator/daemon/PerfGroup.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/gator/daemon/PerfGroup.h b/tools/gator/daemon/PerfGroup.h index 13a18c348603..aa71b019766d 100644 --- a/tools/gator/daemon/PerfGroup.h +++ b/tools/gator/daemon/PerfGroup.h @@ -1,5 +1,5 @@ /** - * Copyright (C) ARM Limited 2013-2015. All rights reserved. + * Copyright (C) ARM Limited 2013-2016. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -17,6 +17,7 @@ #include "Config.h" class Buffer; +class GatorCpu; class Monitor; class PerfBuffer; @@ -29,6 +30,7 @@ enum PerfGroupFlags { PERF_GROUP_PER_CPU = 1 << 5, PERF_GROUP_LEADER = 1 << 6, PERF_GROUP_CPU = 1 << 7, + PERF_GROUP_ALL_CLUSTERS = 1 << 8, }; enum { @@ -43,7 +45,7 @@ public: ~PerfGroup(); bool createCpuGroup(const uint64_t currTime, Buffer *const buffer); - bool add(const uint64_t currTime, Buffer *const buffer, const int key, const __u32 type, const __u64 config, const __u64 sample, const __u64 sampleType, const int flags); + bool add(const uint64_t currTime, Buffer *const buffer, const int key, const __u32 type, const __u64 config, const __u64 sample, const __u64 sampleType, const int flags, const GatorCpu *const cluster); // Safe to call concurrently int prepareCPU(const int cpu, Monitor *const monitor); // Not safe to call concurrently. Returns the number of events enabled @@ -54,15 +56,16 @@ public: private: int getEffectiveType(const int type, const int flags); - int doAdd(const uint64_t currTime, Buffer *const buffer, const int key, const __u32 type, const __u64 config, const __u64 sample, const __u64 sampleType, const int flags); + int doAdd(const uint64_t currTime, Buffer *const buffer, const int key, const __u32 type, const __u64 config, const __u64 sample, const __u64 sampleType, const int flags, const GatorCpu *const cluster); // 2* to be conservative for sched_switch, cpu_idle, hrtimer and non-CPU groups struct perf_event_attr mAttrs[2*MAX_PERFORMANCE_COUNTERS]; PerfBuffer *const mPb; + const GatorCpu *mClusters[2*MAX_PERFORMANCE_COUNTERS]; int mFlags[2*MAX_PERFORMANCE_COUNTERS]; int mKeys[2*MAX_PERFORMANCE_COUNTERS]; int mFds[NR_CPUS * (2*MAX_PERFORMANCE_COUNTERS)]; - // Offset in mAttrs, mFlags and mKeys of the group leaders for each perf type + // Offset in mAttrs, mFlags, mClusters and mKeys of the group leaders for each perf type int mLeaders[16]; int mSchedSwitchId; |