logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

hardirqs - Measure hard IRQ (hard interrupt) event time. Uses Linux eBPF/bcc.

Author

       Brendan Gregg, Hengqi Chen, Rocky Xing

Description

       This  summarizes  the  time spent servicing hard IRQs (hard interrupts), and can show this time as either
       totals or histogram distributions. A system-wide summary of this time is shown  by  the  %irq  column  of
       mpstat(1), and event counts (but not times) are shown by /proc/interrupts.

       This  tool  uses the irq:irq_handler_entry and irq:irq_handler_exit kernel tracepoints, which is a stable
       tracing mechanism. BPF programs can attach to tracepoints from Linux 4.7 only. An older version  of  this
       tool is available in tools/old, and uses kprobes instead of tracepoints.

       Since this uses BPF, only the root user can use this tool.

Examples

       Sum hard IRQ event time until Ctrl-C:
              # hardirqs

       Show hard IRQ event time as histograms:
              # hardirqs-d

       Print 1 second summaries, 10 times:
              # hardirqs110

       1 second summaries, printed in nanoseconds, with timestamps:
              # hardirqs-NT1

       Sum hard IRQ event time on CPU 1 until Ctrl-C:
              # hardirqs-c1

Fields

       HARDIRQ
              The irq action name for this hard IRQ.

       TOTAL_usecs
              Total time spent in this hard IRQ in microseconds.

       TOTAL_nsecs
              Total time spent in this hard IRQ in nanoseconds.

       usecs  Range of microseconds for this bucket.

       nsecs  Range of nanoseconds for this bucket.

       count  Number of hard IRQs in this time range.

       distribution
              ASCII representation of the distribution (the count column).

Name

       hardirqs - Measure hard IRQ (hard interrupt) event time. Uses Linux eBPF/bcc.

Options

       -h     Print usage message.

       -T     Include timestamps on output.

       -N     Output in nanoseconds.

       -C     Count events only.

       -d     Show IRQ time distribution as histograms.

       -c CPU Trace on this CPU only.

Os

       Linux

Overhead

       This  traces  kernel  functions  and maintains in-kernel counts, which are asynchronously copied to user-
       space. While the rate of interrupts be very high (>1M/sec), this is a relatively efficient way  to  trace
       these  events,  and  so  the  overhead  is  expected  to  be small for normal workloads, but could become
       noticeable for heavy workloads. Measure in a test environment before use.

Requirements

       CONFIG_BPF and bcc.

See Also

softirqs(8)

USER COMMANDS                                      2015-10-20                                        hardirqs(8)

Source

       This is from bcc.

              https://github.com/iovisor/bcc

       Also look in the bcc distribution for a companion _examples.txt file containing  example  usage,  output,
       and commentary for this tool.

Stability

       Unstable - in development.

Synopsis

hardirqs[-h][-T][-N][-C][-d][interval][outputs]

See Also