STRUCT ATH_INTERRUPT_STATS(9)
π NAME π
okay bestie, so struct ath_interrupt_stats β from the Kernel API Manual, section 9, main character energy β is literally the struct that holds all the stats about interrupts β¨ like every counter your wifi driver is keeping an eye on, all chillin' in one place π
π¦ SYNOPSIS π¦
struct ath_interrupt_stats {
u32 total;
u32 rxok;
u32 rxlp;
u32 rxhp;
u32 rxeol;
u32 rxorn;
u32 txok;
u32 txeol;
u32 txurn;
u32 mib;
u32 rxphyerr;
u32 rx_keycache_miss;
u32 swba;
u32 bmiss;
u32 bnr;
u32 cst;
u32 gtt;
u32 tim;
u32 cabend;
u32 dtimsync;
u32 dtim;
u32 bb_watchdog;
u32 tsfoor;
u32 mci;
u32 gen_timer;
u32 sync_cause_all;
u32 sync_rtc_irq;
u32 sync_mac_irq;
u32 eeprom_illegal_access;
u32 apb_timeout;
u32 pci_mode_conflict;
u32 host1_fatal;
u32 host1_perr;
u32 trcv_fifo_perr;
u32 radm_cpl_ep;
u32 radm_cpl_dllp_abort;
u32 radm_cpl_tlp_abort;
u32 radm_cpl_ecrc_err;
u32 radm_cpl_timeout;
u32 local_timeout;
u32 pm_access;
u32 mac_awake;
u32 mac_asleep;
u32 mac_sleep_access;
};
look at all those u32s, it's giving "I alphabetized my playlist and then gave up" π but no, it's fine, it's iconic, iykyk πΈ
π§ Members π§
breaking it down one field at a time, bestie, no skipping π
totalβ the grand total, like the big boss counter: total number of interrupts generated so far π₯rxokβ receive that went through with literally no errors, slay β¨rxlpβ receive with low priority RXrxhpβ receive with high priority β and heads up,uapsd onlyπ«Άrxeolβ receive where there are no moreRXDESCavailable πrxornβ receive FIFO overrun, not the vibetxokβ transmit completed at the requested rate, ate πtxeolβ transmit end-of-list counter (this one's in the struct, the manpage doesn't spell it out for us, so we don't invent lore π)txurnβ transmit FIFO underrun, the other kind of oopsmibβ MIB regs reaching its threshold πrxphyerrβ receive with phy errorsrx_keycache_missβ receive with key cache misses, tragicswbaβ Software Beacon Alert π¨bmissβ Beacon Miss, honestly relatablebnrβ Beacon Not Ready, also relatablecstβ Carrier Sense TImeoutgttβ Global TX Timeouttimβ receive beaconTIMoccurrencecabendβ receive End of CAB trafficdtimsyncβ DTIM sync lossagedtimβ receive Beacon with DTIMbb_watchdogβ Baseband watchdog πΆtsfoorβ TSF out of range, and okay this one's a whole paragraph so buckle up: it indicates that the corrected TSF received from a beacon differs from the PCU's internal TSF by more than a (programmable) threshold πmciβ MCI interrupt, specific to MCI based BTCOEX chipsets (niche but we respect it)gen_timerβ Generic hardware timer interrupt β°local_timeoutβ Internal bus timeout.
real talk: the manpage only spells out descriptions for the members listed above β the rest of the fields (sync_cause_all,sync_rtc_irq,sync_mac_irq,eeprom_illegal_access,apb_timeout,pci_mode_conflict,host1_fatal,host1_perr,trcv_fifo_perr,radm_cpl_ep,radm_cpl_dllp_abort,radm_cpl_tlp_abort,radm_cpl_ecrc_err,radm_cpl_timeout,pm_access,mac_awake,mac_asleep,mac_sleep_access) are just vibing in the struct with no written explanation. we don't make stuff up in this group chat, bestie π«Ά
π SEE ALSO π
- Kernel file
./drivers/net/wireless/ath/ath9k/debug.h struct ath_tx_stats(9)
and that's the whole page, bestie π this little gem lives over in ./drivers/net/wireless/ath/ath9k, dated October 2026, straight from the Kernel API Manual β go read the source, it's giving lore πβ¨π¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms