On Mon, Aug 25, 2025 at 05:33:10PM +0000, Yazen Ghannam wrote: > +/* > + * Threshold interrupt handler will service THRESHOLD_APIC_VECTOR. The interrupt > + * goes off when error_count reaches threshold_limit. > + */ > +static void amd_threshold_interrupt(void) > +{ > + machine_check_poll(MCP_TIMESTAMP, &this_cpu_ptr(&mce_amd_data)->thr_intr_banks); > } So the thresholding interrupt will fire. It'll call machine_check_poll(). That thing will do something and eventually call back into amd.c again: if (mce_flags.amd_threshold) amd_reset_thr_limit(i); Why the back'n'forth? Why not: static void amd_threshold_interrupt(void) { machine_check_poll(MCP_TIMESTAMP, &this_cpu_ptr(&mce_amd_data)->thr_intr_banks); amd_reset_thr_limit(); } -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette