--- zzzz-none-000/linux-4.9.279/arch/x86/kernel/irq.c 2021-08-08 06:38:54.000000000 +0000 +++ puma7-atom-6591-750/linux-4.9.279/arch/x86/kernel/irq.c 2023-02-08 11:43:42.000000000 +0000 @@ -22,6 +22,12 @@ #define CREATE_TRACE_POINTS #include +#if defined(CONFIG_AVM_POWER) +#include +#endif/*--- #if defined(CONFIG_AVM_POWER) ---*/ +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#include +#endif/*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); EXPORT_PER_CPU_SYMBOL(irq_stat); @@ -231,12 +237,20 @@ */ entering_irq(); +#if defined(CONFIG_AVM_POWER) + avm_cpu_wait_end(); /*--- auch wenn es wait_irqoff gibt: trotzdem aufrufen, um system-load-Ausgabe zu triggern ---*/ +#endif /* entering_irq() 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]); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hw_irq_begin, + (unsigned int)desc, irq_desc_get_irq(desc)); +#endif + if (!handle_irq(desc, regs)) { ack_APIC_irq(); @@ -249,6 +263,11 @@ } } +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hw_irq_end, + (unsigned int)desc, irq_desc_get_irq(desc)); +#endif + exiting_irq(); set_irq_regs(old_regs);