Messages in this thread | | | Date | Thu, 8 May 2014 13:52:47 -0400 | From | Don Zickus <> | Subject | Re: [PATCH 1/5] x86, nmi: Add new nmi type 'external' |
| |
On Thu, May 08, 2014 at 07:35:01PM +0200, Ingo Molnar wrote: > > * Don Zickus <dzickus@redhat.com> wrote: > > > > > Again, I don't have a solution to juggle between PMI performance > > > > and reliable delivery. We could do away with the spinlocks and > > > > go back to single cpu delivery (like it used to be). Then > > > > devise a mechanism to switch delivery to another cpu upon > > > > hotplug. > > > > > > > > Thoughts? > > > > > > I'd say we should do a delayed timer that makes sure that all > > > possible handlers are polled after an NMI is triggered, but never > > > at a high rate. > > > > Hmm, I was thinking about it and wanted to avoid a poll as I hear > > complaints here and there about the nmi_watchdog constantly wasting > > power cycles with its polling. > > But the polling would only happen if there's NMI traffic, so that's > fine. So as long as polling stops some time after the last PMI use, > it's a good solution.
So you are thinking an NMI comes in, kicks off a delayed timer for say 10ms. The timer fires, rechecks the NMI for missed events and then stops? If another NMI happens before the timer fires, just kick the timer again?
Something like that?
Cheers, Don
> > This would also address a lot of NMI handling related fragility. > > Thanks, > > Ingo
| |