1 # perf script event handlers, generated by per 2 # (c) 2010, Tom Zanussi <tzanussi@gmail.com> 3 # Licensed under the terms of the GNU GPL Lice 4 # 5 # This script tests basic functionality such a 6 # strings, common_xxx() calls back into perf, 7 # events, etc. Basically, if this script runs 8 # displays expected results, Python scripting 9 10 from __future__ import print_function 11 12 import os 13 import sys 14 15 sys.path.append(os.environ['PERF_EXEC_PATH'] + 16 '/scripts/python/Perf-Trace-Util/lib/P 17 18 from Core import * 19 from perf_trace_context import * 20 21 unhandled = autodict() 22 23 def trace_begin(): 24 print("trace_begin") 25 pass 26 27 def trace_end(): 28 print_unhandled() 29 30 def irq__softirq_entry(event_name, context, co 31 common_secs, common_nse 32 common_callchain, vec): 33 print_header(event_name, common_cpu, c 34 common_pid, common_comm) 35 36 print_uncommon(context) 37 38 print("vec=%s" % (symbol_str("irq__sof 39 40 def kmem__kmalloc(event_name, context, common_ 41 common_secs, common_nsecs, c 42 common_callchain, call_site, 43 gfp_flags): 44 print_header(event_name, common_cpu, c 45 common_pid, common_comm) 46 47 print_uncommon(context) 48 49 print("call_site=%u, ptr=%u, bytes_req 50 "bytes_alloc=%u, gfp_flags=%s" 51 (call_site, ptr, bytes_req, by 52 flag_str("kmem__kmalloc", "gfp 53 54 def trace_unhandled(event_name, context, event 55 try: 56 unhandled[event_name] += 1 57 except TypeError: 58 unhandled[event_name] = 1 59 60 def print_header(event_name, cpu, secs, nsecs, 61 print("%-20s %5u %05u.%09u %8u %-20s " 62 (event_name, cpu, secs, nsecs, 63 end=' ') 64 65 # print trace fields not included in handler a 66 def print_uncommon(context): 67 print("common_preempt_count=%d, common 68 "common_lock_depth=%d, " % 69 (common_pc(context), trace_fla 70 common_lock_depth(context))) 71 72 def print_unhandled(): 73 keys = unhandled.keys() 74 if not keys: 75 return 76 77 print("\nunhandled events:\n") 78 79 print("%-40s %10s" % ("event", "count 80 print("%-40s %10s" % ("-------------- 81 "-----------") 82 83 for event_name in keys: 84 print("%-40s %10d\n" % (event
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.