Messages in this thread | | | Date | Thu, 23 Apr 2015 10:39:58 +0200 (CEST) | From | Jiri Kosina <> | Subject | Re: [RFC PATCH 5/5] GHES: Make NMI handler have a single reader |
| |
On Wed, 1 Apr 2015, Borislav Petkov wrote:
> > > From: Jiri Kosina <jkosina@suse.cz> > > > > > > Since GHES sources are global, we theoretically need only a single CPU > > > reading them per NMI instead of a thundering herd of CPUs waiting on a > > > spinlock in NMI context for no reason at all. > > > > I originally wasn't 100% sure whether GHES sources are global (i.e. if it > > really doesn't matter which CPU is reading the registers), but looking at > > the code more it actually seems that this is really the right thing to do. > > > > Rationale: ghes_ioremap_pfn_nmi() always ioremaps() (exclusively) the page > > with the registers, performs apei_read() (which is ghes-source specific, > > but not CPU-specific) and unmaps the page again. > > > > There is nothing that would make this CPU-specific. Adding Huang Ying (the > > original author of the code) to confirm this. Huang? > > > > > Do that. > > > > I think this should indeed be pushed forward. It fixes horrible spinlock > > contention on systems which are under NMI storm (such as when perf is > > active) unrelated to GHES. > > Right, so I tested injecting an error without your patch and same > behavior. So it all points at global sources AFAICT. It would be cool, > though, if someone who knows the fw confirms unambiguously.
Three weeks have passed, therefore I find this an appropriate time for a friendly ping :)
Rafael? Naoya? Huang?
This fixes a contention spinlock problem in NMI observed on a real HW, so it would be really nice to have it fixed.
Thanks,
-- Jiri Kosina SUSE Labs
| |