Re: [PATCHv10 4/4] watchdog/softlockup: report the most frequent interrupts

2024-02-27 Thread Liu Song
atic int softlockup_fn(void *data) { update_touch_ts(); + stop_counting_irqs(); complete(this_cpu_ptr(&softlockup_completion)); return 0; Looks good. Reviewed-by: Liu Song

Re: [PATCHv10 3/4] genirq: Avoid summation loops for /proc/interrupts

2024-02-26 Thread Liu Song
unt); + else + for_each_online_cpu(j) + any_count |= data_race(per_cpu(desc->kstat_irqs->cnt, j)); } if ((!desc->action || irq_desc_is_chained(desc)) && !any_count) The modification borrows from the implementation of |kstat_irqs. Looks good.| |Reviewed-by: Liu Song | ||

Re: [PATCHv10 2/4] genirq: Provide a snapshot mechanism for interrupt statistics

2024-02-26 Thread Liu Song
c): 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 Looks good. For the newly added struct irqstat, adding annotated comments to explain each field would be beneficial. Reviewed-by: Liu Song