> Ingo et al...
>
> Since a lot of things have started tying into the NMI handler (oprofile,
> nmi watchdog, memory errors, bus error, now the IPMI watchdog), I think
> it better to use a request/release mechanism for the NMI handlers.
> Plus, I think the current NMI code is actually not correct, it's
> theoretically possible to miss NMIs if two occur at the same time. So
How? The NMI interrupt should be internally masked till IRET. I think your
code is ok, but i don't see how it takes care of concurrent users such as
oprofile and the nmi watchdog, the nmi watchdog already programs its own
interrupt interval if its shared, what is the intended base NMI interval?
How about handlers requiring a different interrupt interval? I have code
which does the following;
base NMI poll function with time interval T;
master queue with slots per timeout;
slots with task queues which are flushed whenever we hit the timeout;
you can therefore add tasks in with specific time intervals which will get
triggered. This code currently is only running the nmi watchdog, but i'll
be experimenting with various other handlers. I'll post a URL soon.
To support external devices which trigger NMI we can simply check wether
we have hit an nmi interval period, if not we run through the NMI handler
lists.
Zwane
-- function.linuxpower.ca- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/