mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 15:27:29 +00:00
perf, x86: Add a key to simplify template lookup in Pentium-4 PMU
Currently, we use opcode(Event and Event-Selector) + emask to look up template in p4_templates. But cache events (L1-dcache-load-misses, LLC-load-misses, etc) use the same event(P4_REPLAY_EVENT) to do the counting, ie, they have the same opcode and emask. So we can not use current lookup mechanism to find the template for cache events. This patch introduces a "key", which is the index into p4_templates. The low 12 bits of CCCR are reserved, so we can hide the "key" in the low 12 bits of hwc->config. We extract the key from hwc->config and then quickly find the template. Signed-off-by: Lin Ming <ming.m.lin@intel.com> Reviewed-by: Cyrill Gorcunov <gorcunov@openvz.org> Cc: Peter Zijlstra <peterz@infradead.org> LKML-Reference: <1268908387.13901.127.camel@minggr.sh.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
55632770d7
commit
f34edbc1cd
2 changed files with 38 additions and 53 deletions
|
@ -65,6 +65,7 @@
|
|||
#define P4_CCCR_THREAD_SINGLE 0x00010000U
|
||||
#define P4_CCCR_THREAD_BOTH 0x00020000U
|
||||
#define P4_CCCR_THREAD_ANY 0x00030000U
|
||||
#define P4_CCCR_RESERVED 0x00000fffU
|
||||
|
||||
/* Non HT mask */
|
||||
#define P4_CCCR_MASK \
|
||||
|
@ -116,7 +117,7 @@
|
|||
#define p4_config_pack_escr(v) (((u64)(v)) << 32)
|
||||
#define p4_config_pack_cccr(v) (((u64)(v)) & 0xffffffffULL)
|
||||
#define p4_config_unpack_escr(v) (((u64)(v)) >> 32)
|
||||
#define p4_config_unpack_cccr(v) (((u64)(v)) & 0xffffffffULL)
|
||||
#define p4_config_unpack_cccr(v) (((u64)(v)) & 0xfffff000ULL)
|
||||
|
||||
#define p4_config_unpack_emask(v) \
|
||||
({ \
|
||||
|
@ -126,6 +127,8 @@
|
|||
t; \
|
||||
})
|
||||
|
||||
#define p4_config_unpack_key(v) (((u64)(v)) & P4_CCCR_RESERVED)
|
||||
|
||||
#define P4_CONFIG_HT_SHIFT 63
|
||||
#define P4_CONFIG_HT (1ULL << P4_CONFIG_HT_SHIFT)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue