SOFTIRQSLOWER(8)

πŸ“¦ version 0.36.1, in centos-stream 10, centos-stream 9

πŸ’… SOFTIRQSLOWER β€” like, the softirq latency tracer (section 8 of the manual, bestie)

okay so picture this: it's a Linux Performance Analysis moment, the man page is called softirqslower, and it's genuinely about to make your whole afternoon. softirqs being slow? not on our watch. ✨


🌸 NAME 🌸

softirqslower β€” traces softirq handlers that are out here taking longer than a threshold you set. slay, but make it latency. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

softirqslower.py [min_us]
softirqslower.py [-c CPU] [min_us]

πŸ¦‹ DESCRIPTION πŸ¦‹

so softirqslower traces softirq events that blow past a latency threshold you specify. no cap, it's the tool you call when you're trying to diagnose interrupt handling bottlenecks, because it measures two absolutely critical latency dimensions:

  • irq(hard) to softirq β€” the time delay between hardware interrupt completion and the moment softirq execution starts ⏱️
  • softirq runtime β€” the actual execution duration of the softirq handlers themselves

it was developed as part of the BCC (BPF Compiler Collection) tools, and it's lowkey iconic for network stack optimization, scheduler tuning, and real-time systems analysis. main character energy for your kernel, fr fr. πŸ‘‘


✨ OPTIONS ✨

  • min_us β€” minimum latency threshold to trace, in microseconds. default: 10,000 ΞΌs (10 ms). like, anything chiller than that gets to stay un-traced. πŸ“
  • -c, --cpu CPU β€” trace only events on the specified CPU core. one core, one vibe check. 🎯

πŸ“Š OUTPUT FORMAT πŸ“Š

the tool outputs events in this exact table format:

TIME     STAGE                SOFTIRQ  LAT(us)        CPU    COMM

and here's what every field actually means, bestie:

  • TIME β€” event timestamp, in HH:MM:SS format. πŸ•
  • STAGE β€” the type of latency measurement. two options, both real:
    • irq(hard) to softirq β€” time from hardware interrupt completion to softirq dispatch
    • softirq runtime β€” SoftIRQ handler execution duration
  • SOFTIRQ β€” the SoftIRQ category (case-sensitive, so don't come for me about capitalization). common values:
    • NET_RX β€” network reception processing
    • NET_TX β€” network transmission processing
    • TIMER β€” timer callbacks
    • SCHED β€” scheduler operations
    • RCU β€” Read-Copy-Update synchronization
    • TASKLET β€” deferred task execution
    • HRTIMER β€” high-resolution timers
    • BLOCK β€” block device operations
  • LAT(us) β€” the measured latency, in microseconds. the number that matters. πŸ”₯
  • CPU β€” CPU core where the softirq was handled (0-based numbering, iykyk).
  • COMM β€” the process context handling the softirq:
    • swapper/N β€” idle thread for CPU N
    • ksoftirqd/N β€” softirq daemon for CPU N
    • <process> β€” a user-space process

🌈 EXAMPLES 🌈

trace softirqs exceeding 10ΞΌs latency:

softirqslower 10

monitor only CPU core 1:

softirqslower -c 1

trace network-related softirq delays (>50ΞΌs):

softirqslower 50 | grep -E 'net_rx|net_tx'

capture RCU delays longer than 100ΞΌs to a file:

softirqslower 100 | grep rcu > rcu_latency.log

🫢 SIGNALS 🫢

  • Ctrl+C β€” stop tracing and exit gracefully. a clean exit. we love to see it. πŸ˜­πŸ’–

πŸ’œ AUTHOR πŸ’œ

Chenyue Zhou β€” icon. legend. the moment. πŸ‘‘


⭐ SEE ALSO ⭐

runqslower(8), hardirqs(8), softirqs(8), trace(8), funclatency(8)

like, go read those next, you'll be obsessed. 🧚


πŸ™ˆ REPORTING BUGS πŸ™ˆ

BCC Tools Issue Tracker: https://github.com/iovisor/bcc/issues β€” found a bug? bestie, tell them, don't suffer in silence. πŸ’€


quick vibe check before you go: set your min_us thoughtfully β€” too low and you'll be drowning in events, too high and you'll miss the drama. πŸ’…

and that's the whole thing, bestie πŸŽ€ β€” this page came to you from BCC Tools, dated 2025-07-08, and it's SOFTIRQSLOWER(8) all the way down. go trace something iconic. πŸ’–βœ¨

πŸ“¦ where this page comes from