--- zzzz-none-000/linux-4.9.279/arch/x86/kernel/irq_work.c 2021-08-08 06:38:54.000000000 +0000 +++ puma7-atom-6591-750/linux-4.9.279/arch/x86/kernel/irq_work.c 2023-02-08 11:43:42.000000000 +0000 @@ -10,6 +10,12 @@ #include #include #include +#if defined(CONFIG_AVM_POWER) +#include +#endif +#if defined(CONFIG_AVM_SIMPLE_PROFILING) +#include +#endif static inline void __smp_irq_work_interrupt(void) { @@ -20,7 +26,16 @@ __visible void __irq_entry smp_irq_work_interrupt(struct pt_regs *regs) { ipi_entering_ack_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 +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hw_irq_begin, (unsigned int)smp_irq_work_interrupt, 0x104); +#endif __smp_irq_work_interrupt(); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hw_irq_end, (unsigned int)smp_irq_work_interrupt, 0x104); +#endif exiting_irq(); } @@ -28,7 +43,13 @@ { ipi_entering_ack_irq(); trace_irq_work_entry(IRQ_WORK_VECTOR); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hw_irq_begin, (unsigned int)smp_trace_irq_work_interrupt, 0x104); +#endif/*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ __smp_irq_work_interrupt(); +#if defined(CONFIG_AVM_SIMPLE_PROFILING) + avm_simple_profiling_log(avm_profile_data_type_hw_irq_end, (unsigned int)smp_trace_irq_work_interrupt, 0x104); +#endif/*--- #if defined(CONFIG_AVM_SIMPLE_PROFILING) ---*/ trace_irq_work_exit(IRQ_WORK_VECTOR); exiting_irq(); }