genirq: Convert kstat_irqs to a struct
The irq_desc::kstat_irqs member is a per-CPU variable of type int, which is only capable of counting. A snapshot mechanism for interrupt statistics will be added soon, which requires an additional variable to store the snapshot. To facilitate expansion, convert kstat_irqs here to a struct containing only the count. Originally-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Bitao Hu <yaoma@linux.alibaba.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/20240411074134.30922-2-yaoma@linux.alibaba.com
This commit is contained in:
committed by
Thomas Gleixner
parent
81e4cb0fd4
commit
86d2a2f51f
@@ -37,7 +37,7 @@ def show_irq_desc(prec, irq):
|
||||
any_count = 0
|
||||
if desc['kstat_irqs']:
|
||||
for cpu in cpus.each_online_cpu():
|
||||
any_count += cpus.per_cpu(desc['kstat_irqs'], cpu)
|
||||
any_count += cpus.per_cpu(desc['kstat_irqs'], cpu)['cnt']
|
||||
|
||||
if (desc['action'] == 0 or irq_desc_is_chained(desc)) and any_count == 0:
|
||||
return text;
|
||||
@@ -45,7 +45,7 @@ def show_irq_desc(prec, irq):
|
||||
text += "%*d: " % (prec, irq)
|
||||
for cpu in cpus.each_online_cpu():
|
||||
if desc['kstat_irqs']:
|
||||
count = cpus.per_cpu(desc['kstat_irqs'], cpu)
|
||||
count = cpus.per_cpu(desc['kstat_irqs'], cpu)['cnt']
|
||||
else:
|
||||
count = 0
|
||||
text += "%10u" % (count)
|
||||
@@ -177,7 +177,7 @@ def arm_common_show_interrupts(prec):
|
||||
if desc == 0:
|
||||
continue
|
||||
for cpu in cpus.each_online_cpu():
|
||||
text += "%10u" % (cpus.per_cpu(desc['kstat_irqs'], cpu))
|
||||
text += "%10u" % (cpus.per_cpu(desc['kstat_irqs'], cpu)['cnt'])
|
||||
text += " %s" % (ipi_types[ipi].string())
|
||||
text += "\n"
|
||||
return text
|
||||
|
||||
Reference in New Issue
Block a user