[LTP] [PATCH 1/1] irqbalance01: TCONF on missing interrupts

Petr Vorel pvorel@suse.cz
Tue Jun 30 19:06:11 CEST 2026


It looks like that at least on s390x VM there are no numeric interrupts
in /proc/interrupts:

                   CPU0       CPU1       CPU2       CPU3
        EXT:      12689      10088       8056       8624
        I/O:        117         27         74         31
        AIO:       1688        957       3464       1323
        CLK:       1645       1521       1355       1191   [EXT] Clock Comparator
        EXC:       1710       3175       1756       2935   [EXT] External Call
        EMS:       9248       5296       4892       4370   [EXT] Emergency Signal
        TMR:          0          0          0          0   [EXT] CPU Timer
        TAL:          0          0          0          0   [EXT] Timing Alert
        PFL:          0          0          0          0   [EXT] Pseudo Page Fault
        DSD:          0          0          0          0   [EXT] DASD Diag
        VRT:          0          0          0          0   [EXT] Virtio
        SCP:         86         96         53        128   [EXT] Service Call
        IUC:          0          0          0          0   [EXT] IUCV
        CMS:          0          0          0          0   [EXT] CPU-Measurement: Sampling
        CMC:          0          0          0          0   [EXT] CPU-Measurement: Counter
        FTP:          0          0          0          0   [EXT] HMC FTP Service
        CIO:          4          1          1          2   [I/O] Common I/O Layer Interrupt
        DAS:          0          0          0          0   [I/O] DASD
        C15:          0          0          0          0   [I/O] 3215
        C70:          0          0          0          0   [I/O] 3270
        TAP:          0          0          0          0   [I/O] Tape
        VMR:          0          0          0          0   [I/O] Unit Record Devices
        LCS:          0          0          0          0   [I/O] LCS
        CTC:          0          0          0          0   [I/O] CTC
        ADM:          0          0          0          0   [I/O] EADM Subchannel
        CSC:          0          0          0          0   [I/O] CHSC Subchannel
        VIR:        113         26         73         29   [I/O] Virtual I/O Devices
        QAI:          0          0          0          0   [AIO] QDIO Adapter Interrupt
        APB:          0          0          0          0   [AIO] AP Bus
        PCF:          0          0          0          0   [AIO] PCI Floating Interrupt
        PCD:          0          0          0          0   [AIO] PCI Directed Interrupt
        MSI:          0          0          0          0   [AIO] MSI Interrupt
        VAI:       1688        957       3464       1323   [AIO] Virtual I/O Devices AI
        GAL:          0          0          0          0   [AIO] GIB Alert
        NMI:          0          0          0          0   [NMI] Machine Check
        RST:          0          1          1          1   [CPU] CPU Restart

Therefore turn TBROK into TCONF. But deliberately keep CPUs check TBROK
(CPUs should be always available).

Also print /proc/interrupts on both errors (no CPUs and no IRQs).

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
 testcases/kernel/irq/irqbalance01.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/testcases/kernel/irq/irqbalance01.c b/testcases/kernel/irq/irqbalance01.c
index 664fced1ec..9d15cdc600 100644
--- a/testcases/kernel/irq/irqbalance01.c
+++ b/testcases/kernel/irq/irqbalance01.c
@@ -41,6 +41,8 @@
 #include "tst_safe_stdio.h"
 #include "tst_safe_file_at.h"
 
+#define PRINT_PROC_INTERRUPTS() safe_print_file(__FILE__, __LINE__, "/proc/interrupts")
+
 enum affinity {
 	ALLOW = '+',
 	DENY = '-',
@@ -304,11 +306,15 @@ static void setup(void)
 	collect_irq_info();
 	print_irq_info();
 
-	if (nr_cpus < 1)
+	if (nr_cpus < 1) {
+		PRINT_PROC_INTERRUPTS();
 		tst_brk(TBROK, "No CPUs found in /proc/interrupts?");
+	}
 
-	if (nr_irqs < 1)
-		tst_brk(TBROK, "No IRQs found in /proc/interrupts?");
+	if (nr_irqs < 1) {
+		PRINT_PROC_INTERRUPTS();
+		tst_brk(TCONF, "No IRQs found in /proc/interrupts?");
+	}
 }
 
 static void run(void)
-- 
2.54.0



More information about the ltp mailing list