Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.31 90 lines 2.6 kB view raw
1 Event Tracing 2 3 Documentation written by Theodore Ts'o 4 Updated by Li Zefan 5 61. Introduction 7=============== 8 9Tracepoints (see Documentation/trace/tracepoints.txt) can be used 10without creating custom kernel modules to register probe functions 11using the event tracing infrastructure. 12 13Not all tracepoints can be traced using the event tracing system; 14the kernel developer must provide code snippets which define how the 15tracing information is saved into the tracing buffer, and how the 16tracing information should be printed. 17 182. Using Event Tracing 19====================== 20 212.1 Via the 'set_event' interface 22--------------------------------- 23 24The events which are available for tracing can be found in the file 25/debug/tracing/available_events. 26 27To enable a particular event, such as 'sched_wakeup', simply echo it 28to /debug/tracing/set_event. For example: 29 30 # echo sched_wakeup >> /debug/tracing/set_event 31 32[ Note: '>>' is necessary, otherwise it will firstly disable 33 all the events. ] 34 35To disable an event, echo the event name to the set_event file prefixed 36with an exclamation point: 37 38 # echo '!sched_wakeup' >> /debug/tracing/set_event 39 40To disable all events, echo an empty line to the set_event file: 41 42 # echo > /debug/tracing/set_event 43 44To enable all events, echo '*:*' or '*:' to the set_event file: 45 46 # echo *:* > /debug/tracing/set_event 47 48The events are organized into subsystems, such as ext4, irq, sched, 49etc., and a full event name looks like this: <subsystem>:<event>. The 50subsystem name is optional, but it is displayed in the available_events 51file. All of the events in a subsystem can be specified via the syntax 52"<subsystem>:*"; for example, to enable all irq events, you can use the 53command: 54 55 # echo 'irq:*' > /debug/tracing/set_event 56 572.2 Via the 'enable' toggle 58--------------------------- 59 60The events available are also listed in /debug/tracing/events/ hierarchy 61of directories. 62 63To enable event 'sched_wakeup': 64 65 # echo 1 > /debug/tracing/events/sched/sched_wakeup/enable 66 67To disable it: 68 69 # echo 0 > /debug/tracing/events/sched/sched_wakeup/enable 70 71To enable all events in sched subsystem: 72 73 # echo 1 > /debug/tracing/events/sched/enable 74 75To eanble all events: 76 77 # echo 1 > /debug/tracing/events/enable 78 79When reading one of these enable files, there are four results: 80 81 0 - all events this file affects are disabled 82 1 - all events this file affects are enabled 83 X - there is a mixture of events enabled and disabled 84 ? - this file does not affect any event 85 863. Defining an event-enabled tracepoint 87======================================= 88 89See The example provided in samples/trace_events 90