1*4882a593Smuzhiyun================ 2*4882a593SmuzhiyunNMI Trace Events 3*4882a593Smuzhiyun================ 4*4882a593Smuzhiyun 5*4882a593SmuzhiyunThese events normally show up here: 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun /sys/kernel/debug/tracing/events/nmi 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunnmi_handler 11*4882a593Smuzhiyun----------- 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunYou might want to use this tracepoint if you suspect that your 14*4882a593SmuzhiyunNMI handlers are hogging large amounts of CPU time. The kernel 15*4882a593Smuzhiyunwill warn if it sees long-running handlers:: 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun INFO: NMI handler took too long to run: 9.207 msecs 18*4882a593Smuzhiyun 19*4882a593Smuzhiyunand this tracepoint will allow you to drill down and get some 20*4882a593Smuzhiyunmore details. 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunLet's say you suspect that perf_event_nmi_handler() is causing 23*4882a593Smuzhiyunyou some problems and you only want to trace that handler 24*4882a593Smuzhiyunspecifically. You need to find its address:: 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun $ grep perf_event_nmi_handler /proc/kallsyms 27*4882a593Smuzhiyun ffffffff81625600 t perf_event_nmi_handler 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunLet's also say you are only interested in when that function is 30*4882a593Smuzhiyunreally hogging a lot of CPU time, like a millisecond at a time. 31*4882a593SmuzhiyunNote that the kernel's output is in milliseconds, but the input 32*4882a593Smuzhiyunto the filter is in nanoseconds! You can filter on 'delta_ns':: 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun cd /sys/kernel/debug/tracing/events/nmi/nmi_handler 35*4882a593Smuzhiyun echo 'handler==0xffffffff81625600 && delta_ns>1000000' > filter 36*4882a593Smuzhiyun echo 1 > enable 37*4882a593Smuzhiyun 38*4882a593SmuzhiyunYour output would then look like:: 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun $ cat /sys/kernel/debug/tracing/trace_pipe 41*4882a593Smuzhiyun <idle>-0 [000] d.h3 505.397558: nmi_handler: perf_event_nmi_handler() delta_ns: 3236765 handled: 1 42*4882a593Smuzhiyun <idle>-0 [000] d.h3 505.805893: nmi_handler: perf_event_nmi_handler() delta_ns: 3174234 handled: 1 43*4882a593Smuzhiyun <idle>-0 [000] d.h3 506.158206: nmi_handler: perf_event_nmi_handler() delta_ns: 3084642 handled: 1 44*4882a593Smuzhiyun <idle>-0 [000] d.h3 506.334346: nmi_handler: perf_event_nmi_handler() delta_ns: 3080351 handled: 1 45*4882a593Smuzhiyun 46