On Thu, 4 Jul 2019, Shijith Thotton wrote: > On 7/4/19 12:13 AM, Julien Thierry wrote: > > Looking at handle_percpu_irq(), I think this might be acceptable. But > > does it make sense to only have kstats for percpu NMIs? > > > > It would be better to have stats for both. > > handle_fasteoi_nmi() can use __kstat_incr_irqs_this_cpu() if below > change can be added to kstat_irqs_cpu(). > > diff --git a/kernel/irq/irqdesc.c b/kernel/irq/irqdesc.c > index a92b33593b8d..9484e88dabc2 100644 > --- a/kernel/irq/irqdesc.c > +++ b/kernel/irq/irqdesc.c > @@ -950,6 +950,11 @@ unsigned int kstat_irqs_cpu(unsigned int irq, int cpu) > *per_cpu_ptr(desc->kstat_irqs, cpu) : 0; > } > > +static bool irq_is_nmi(struct irq_desc *desc) > +{ > + return desc->istate & IRQS_NMI; > +} > + > /** > * kstat_irqs - Get the statistics for an interrupt > * @irq: The interrupt number > @@ -967,7 +972,8 @@ unsigned int kstat_irqs(unsigned int irq) > if (!desc || !desc->kstat_irqs) > return 0; > if (!irq_settings_is_per_cpu_devid(desc) && > - !irq_settings_is_per_cpu(desc)) > + !irq_settings_is_per_cpu(desc) && > + !irq_is_nmi(desc)) > return desc->tot_count; > > for_each_possible_cpu(cpu) > > > Thomas, > Please suggest a better way if any.
Looks good. Thanks, tglx