--- zzzz-none-000/linux-5.15.111/arch/x86/kernel/irq.c 2023-05-11 14:00:40.000000000 +0000 +++ puma7-atom-6670-761/linux-5.15.111/arch/x86/kernel/irq.c 2024-02-07 10:22:35.000000000 +0000 @@ -25,6 +25,8 @@ #define CREATE_TRACE_POINTS #include +#include +#include DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); EXPORT_PER_CPU_SYMBOL(irq_stat); @@ -242,10 +244,16 @@ struct pt_regs *old_regs = set_irq_regs(regs); struct irq_desc *desc; + avm_cpu_wait_end(); /*--- auch wenn es wait_irqoff gibt: trotzdem aufrufen, um system-load-Ausgabe zu triggern ---*/ + /* entry code tells RCU that we're not quiescent. Check it. */ RCU_LOCKDEP_WARN(!rcu_is_watching(), "IRQ failed to wake up RCU"); desc = __this_cpu_read(vector_irq[vector]); + + avm_simple_profiling_log(avm_profile_data_type_hw_irq_begin, + (unsigned long)desc, irq_desc_get_irq(desc)); + if (likely(!IS_ERR_OR_NULL(desc))) { handle_irq(desc, regs); } else { @@ -260,6 +268,9 @@ } } + avm_simple_profiling_log(avm_profile_data_type_hw_irq_end, + (unsigned long)desc, irq_desc_get_irq(desc)); + set_irq_regs(old_regs); }