Hi, > ... except the cost can be reduced to zero *AND* be made into a more general > mechanism by simply hooking the IDT.
Thank you for giving me the comment. In my understanding, we can introduce a more general mechanism by sandwiching an existing handler between tracepoints. The pseudo code is like this: @@ -17,7 +18,7 @@ static void default_threshold_interrupt(void) void (*mce_threshold_vector)(void) = default_threshold_interrupt; -asmlinkage void smp_threshold_interrupt(void) +static void do_smp_threshold_interrupt(void) { irq_enter(); exit_idle(); @@ -27,3 +28,10 @@ asmlinkage void smp_threshold_interrupt(void) /* Ack only at the end to avoid potential reentry */ ack_APIC_irq(); } + +asmlinkage void smp_threshold_interrupt(void) { + trace_arch_irq_vector_entry(THRESHOLD_APIC_VECTOR); + do_smp_threshold_interrupt(); + trace_arch_irq_vector_exit(THRESHOLD_APIC_VECTOR); +} If I misunderstand something, please let me know. Seiji