Messages in this thread | | | Date | Tue, 22 Oct 2002 03:10:05 +0100 | From | John Levon <> | Subject | Re: [PATCH] NMI request/release |
| |
On Mon, Oct 21, 2002 at 08:32:47PM -0500, Corey Minyard wrote:
> The attached patch implements a way to request to receive an NMI if it > comes from an otherwise unknown source. I needed this for handling NMIs > with the IPMI watchdog. This function was discussed a little a while
Then NMI watchdog and oprofile should be changed to use this too. We also need priority and/or equivalent of NOTIFY_STOP_MASK so we can break out of calling all the handlers. Actually, why do you continue if one of the handlers returns 1 anyway ?
> + atomic_inc(&calling_nmi_handlers);
Isn't this going to cause cacheline ping pong ?
> + curr = nmi_handler_list; > + while (curr) { > + handled |= curr->handler(curr->dev_id, regs);
dev_name is never used at all. What is it for ? Also, would be nice to do an smp_processor_id() just once and pass that in to prevent multiple calls to get_current().
Couldn't you modify the notifier code to do the xchg()s (though that's not available on all CPU types ...)
> +#define HAVE_NMI_HANDLER 1
What uses this ?
> + volatile struct nmi_handler *next;
Hmm ...
Is it not possible to use linux/rcupdate.h for this stuff ?
regards john -- "Lots of companies would love to be in our hole." - Scott McNealy - 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/
| |