SOFTIRQSLOWER(8)
π 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 (10ms). like, anything chiller than that gets to stay un-traced. π-c,--cpuCPUβ 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, inHH:MM:SSformat. πSTAGEβ the type of latency measurement. two options, both real:irq(hard) to softirqβ time from hardware interrupt completion to softirq dispatchsoftirq 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 processingNET_TXβ network transmission processingTIMERβ timer callbacksSCHEDβ scheduler operationsRCUβ Read-Copy-Update synchronizationTASKLETβ deferred task executionHRTIMERβ high-resolution timersBLOCKβ 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 CPUNksoftirqd/Nβ softirq daemon for CPUN<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
- centos-stream 10: bcc-tools 0.36.1-1.el10 Β· Apache-2.0
- centos-stream 9: bcc-tools 0.36.1-1.el9 Β· ASL 2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms