Re: [PATCH 4/7] perf, x86: Implement IBS interrupt handler

From: Peter Zijlstra
Date: Fri Jul 29 2011 - 12:59:16 EST


On Thu, 2011-07-28 at 15:46 +0200, Robert Richter wrote:
> +static int __kprobes
> +perf_ibs_nmi_handler(struct notifier_block *self,
> + unsigned long cmd, void *__args)
> +{
> + struct die_args *args = __args;
> + int handled = 0;
> +
> + switch (cmd) {
> + case DIE_NMI:
> + break;
> + default:
> + return NOTIFY_DONE;
> + }
> +
> + handled += perf_ibs_handle_irq(&perf_ibs_fetch, args->regs);
> + handled += perf_ibs_handle_irq(&perf_ibs_op, args->regs);
> +
> + if (!handled)
> + return NOTIFY_DONE;
> +
> + inc_irq_stat(apic_perf_irqs);
> +
> + return NOTIFY_STOP;
> +}

So IBS cannot trigger the whole unknown NMI business? Wouldn't ibs_op
triggering while ibs_fetch just started latch the NMI line, the
in-progress NMI would handle both, and we then end up with a spare NMI?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/