lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.00.1106071701560.21714@cl320.eecs.utk.edu>
Date:	Tue, 7 Jun 2011 17:07:48 -0400 (EDT)
From:	Vince Weaver <vweaver1@...s.utk.edu>
To:	linux-kernel@...r.kernel.org
cc:	Peter Zijlstra <a.p.zijlstra@...llo.nl>,
	Paul Mackerras <paulus@...ba.org>, Ingo Molnar <mingo@...e.hu>,
	Arnaldo Carvalho de Melo <acme@...stprotocols.net>
Subject: [patch] perf_events: even more wrong events for AMD fam10h


Here are two more problems I found with the superlative "generalized" 
events on AMD fam10h.

The "l1-dcache-loads" event measures loads *and* stores.
    This might be as close as you can get on AMD, but it's still wrong
      as it's not what Intel measures.  
    My patch removes it.  Better might be to add a proper
    "l1-dcache-access" event.

The "l1-dcache-load-miss" event is an invalid event. (0x141).
    From what I can tell that event (DATA_CACHE_MISSES) does not
    take a mask.  It should be 0x41.  And it's actually measuring
    all misses, not just load misses, see above.

The "l1-dcache-stores" event does not work.  See the
     ./validation/l1-dcache-stores test found in 
     http://web.eecs.utk.edu/~vweaver1/projects/perf-events/validation.html
   So remove it until we figure out why.


Also, is the value for "no such event" 0 or -1?  The perf_event_amd.c
file seems to use them interchangably from what I can tell.

Thanks,

Vince

Signed-off-by: Vince Weaver <vweaver1@...s.utk.edu>

diff --git a/arch/x86/kernel/cpu/perf_event_amd.c b/arch/x86/kernel/cpu/perf_event_amd.c
index fe29c1d..71987d5 100644
--- a/arch/x86/kernel/cpu/perf_event_amd.c
+++ b/arch/x86/kernel/cpu/perf_event_amd.c
@@ -7,11 +7,11 @@ static __initconst const u64 amd_hw_cache_event_ids
 {
  [ C(L1D) ] = {
 	[ C(OP_READ) ] = {
-		[ C(RESULT_ACCESS) ] = 0x0040, /* Data Cache Accesses        */
-		[ C(RESULT_MISS)   ] = 0x0141, /* Data Cache Misses          */
+		[ C(RESULT_ACCESS) ] = 0,      /* Not available on AMD       */
+		[ C(RESULT_MISS)   ] = 0x0041, /* Data Cache Misses          */
 	},
 	[ C(OP_WRITE) ] = {
-		[ C(RESULT_ACCESS) ] = 0x0142, /* Data Cache Refills :system */
+		[ C(RESULT_ACCESS) ] = 0,      /* Data Cache Refills :system doesn't work */
 		[ C(RESULT_MISS)   ] = 0,
 	},
 	[ C(OP_PREFETCH) ] = {

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ