[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140508175247.GA39568@redhat.com>
Date: Thu, 8 May 2014 13:52:47 -0400
From: Don Zickus <dzickus@...hat.com>
To: Ingo Molnar <mingo@...nel.org>
Cc: x86@...nel.org, Peter Zijlstra <peterz@...radead.org>,
ak@...ux.intel.com, gong.chen@...ux.intel.com,
LKML <linux-kernel@...r.kernel.org>,
Thomas Gleixner <tglx@...utronix.de>,
Frédéric Weisbecker <fweisbec@...il.com>,
Steven Rostedt <rostedt@...dmis.org>, andi@...stfloor.org
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@...hat.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists