Lines Matching defs:irqs
382 static u64 __irq_timings_next_event(struct irqt_stat *irqs, int irq, u64 now)
386 if ((now - irqs->last_ts) >= NSEC_PER_SEC) {
387 irqs->count = irqs->last_ts = 0;
396 period_max = irqs->count > (3 * PREDICTION_PERIOD_MAX) ?
397 PREDICTION_PERIOD_MAX : irqs->count / 3;
409 count = irqs->count < IRQ_TIMINGS_SIZE ?
410 irqs->count : IRQ_TIMINGS_SIZE;
412 start = irqs->count < IRQ_TIMINGS_SIZE ?
413 0 : (irqs->count & IRQ_TIMINGS_MASK);
424 irqs->timings[i] = irqs->circ_timings[index];
425 min = min_t(int, irqs->timings[i], min);
428 index = irq_timings_next_event_index(irqs->timings, count, period_max);
430 return irqs->last_ts + irqs->ema_time[min];
432 return irqs->last_ts + irqs->ema_time[index];
446 static __always_inline void __irq_timings_store(int irq, struct irqt_stat *irqs,
457 irqs->count = 0;
465 irqs->circ_timings[irqs->count & IRQ_TIMINGS_MASK] = index;
467 irqs->ema_time[index] = irq_timings_ema_new(interval,
468 irqs->ema_time[index]);
470 irqs->count++;
473 static inline void irq_timings_store(int irq, struct irqt_stat *irqs, u64 ts)
475 u64 old_ts = irqs->last_ts;
482 irqs->last_ts = ts;
503 irqs->count = 0;
507 __irq_timings_store(irq, irqs, interval);
539 struct irqt_stat *irqs;
581 irqs = this_cpu_ptr(s);
583 ts = __irq_timings_next_event(irqs, i, now);
777 struct irqt_stat *irqs;
792 irqs = this_cpu_ptr(s);
800 __irq_timings_store(irq, irqs, ti->intervals[i]);
801 if (irqs->circ_timings[i & IRQ_TIMINGS_MASK] != index) {
808 if (irqs->count != ti->count) {