[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5A663DEC.8080804@arm.com>
Date: Mon, 22 Jan 2018 19:39:24 +0000
From: James Morse <james.morse@....com>
To: Dongjiu Geng <gengdongjiu@...wei.com>
CC: christoffer.dall@...aro.org, marc.zyngier@....com,
linux@...linux.org.uk, catalin.marinas@....com, rjw@...ysocki.net,
bp@...en8.de, robert.moore@...el.com, lv.zheng@...el.com,
corbet@....net, will.deacon@....com, linux-doc@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
kvmarm@...ts.cs.columbia.edu, linux-acpi@...r.kernel.org,
devel@...ica.org, huangshaoyu@...wei.com
Subject: Re: [PATCH v9 3/7] acpi: apei: Add SEI notification type support
for ARMv8
Hi Dongjiu Geng,
(versions of patches 1,2 and 4 have been queued by Catalin)
(Nit 'ACPI / APEI:' is the normal subject prefix for ghes.c, this helps the
maintainers know which patches they need to pay attention to when you are
touching multiple trees)
On 06/01/18 16:02, Dongjiu Geng wrote:
> ARMv8.2 requires implementation of the RAS extension.
> In
> this extension, it adds SEI(SError Interrupt) notification
> type, this patch adds new GHES error source SEI handling
> functions.
This reads as if this patch is handling SError RAS notifications generated by a
CPU with the RAS extensions. These are about CPU->Software notifications. APEI
and GHES are a firmware first mechanism which is Software->Software.
Reading the v8.2 documents won't help anyone with the APEI/GHES code.
Please describe this from the ACPI view, "ACPI 6.x adds support for NOTIFY_SEI
as a GHES notification mechanism... ", its up to the arch code to spot a v8.2
RAS Error based on the cpu caps.
> This error source parsing and handling method
> is similar with the SEA.
There are problems with doing this:
Oct. 18, 2017, 10:26 a.m. James Morse wrote:
| How do SEA and SEI interact?
|
| As far as I can see they can both interrupt each other, which isn't something
| the single in_nmi() path in APEI can handle. I thinks we should fix this
| first.
[..]
| SEA gets away with a lot of things because its synchronous. SEI isn't. Xie
| XiuQi pointed to the memory_failure_queue() code. We can use this directly
| from SEA, but not SEI. (what happens if an SError arrives while we are
| queueing memory_failure work from an IRQ).
|
| The one that scares me is the trace-point reporting stuff. What happens if an
| SError arrives while we are enabling a trace point? (these are static-keys
| right?)
|
| I don't think we can just plumb SEI in like this and be done with it.
| (I'm looking at teasing out the estatus cache code from being x86:NMI only.
| This way we solve the same 'cant do this from NMI context' with the same
| code'.)
I will post what I've got for this estatus-cache thing as an RFC, its not ready
to be considered yet.
> Expose API ghes_notify_sei() to external users. External
> modules can call this exposed API to parse APEI table and
> handle the SEI notification.
external modules? You mean called by the arch code when it gets this NOTIFY_SEI?
Thanks,
James
Powered by blists - more mailing lists