From: James Morse <james.morse@arm.com>
To: Hanjun Guo <hanjun.guo@linaro.org>, Shiju Jose <shiju.jose@huawei.com>
Cc: "linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"matt@codeblueprint.co.uk" <matt@codeblueprint.co.uk>,
"catalin.marinas@arm.com" <catalin.marinas@arm.com>,
Tyler Baicar <tbaicar@codeaurora.org>,
"will.deacon@arm.com" <will.deacon@arm.com>,
"robert.moore@intel.com" <robert.moore@intel.com>,
"paul.gortmaker@windriver.com" <paul.gortmaker@windriver.com>,
"lv.zheng@intel.com" <lv.zheng@intel.com>,
"Guohanjun \(Hanjun Guo\)" <guohanjun@huawei.com>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
"fu.wei@linaro.org" <fu.wei@linaro.org>,
Gabriele Paoloni <gabriele.paoloni@huawei.com>,
"zjzhang@codeaurora.org" <zjzhang@codeaurora.org>,
"linux@armlinux.org.uk" <linux@armlinux.org.uk>,
"wangxiongfeng \(C\)" <wangxiongfeng2@huawei.com>,
"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"eun.taik.lee@s
Subject: Re: [RFC PATCH V1 v4.10-rc3 1/1] acpi: apei: handle GSIV notification type
Date: Wed, 01 Mar 2017 17:04:09 +0000 [thread overview]
Message-ID: <58B6FF09.6030306@arm.com> (raw)
In-Reply-To: <43507f99-d80b-6409-d249-b9b18425a1da@linaro.org>
Hi Hanjun,
On 01/03/17 08:27, Hanjun Guo wrote:
> On 2017/2/28 21:22, James Morse wrote:
>> On 27/02/17 18:19, Shiju Jose wrote:
>>> Add a new GHES error source handling function for
>>> GSIV(Global System Interrupt Vector).
>>> If an error source's notification type is GSIV,
>>> then this handling function can be registered
>>> into the GSIV handler and it can parse
>>> and report error information when they occur.
>>
>> I'm missing some of the story here, but how is GSIV different from 'External
>> Interrupt'? I'm guessing something other than the CPU takes this 'interrupt'...
>
> Yes, it's the same from CPU side (they are interrupts!), but there
> is history behind them and the usage is different.
>
> I think External Interrupt was introduced before ACPI is available on
> ARM (hardware reduced platforms), so I guess it was used for errors
> reported to OS which were not using SCI mechanism, for example, some
> IO error reporting.
>
> For External Interrupt, we don't use the ACPI event system, so for
> the firmware, it just report the errors associate with the interrupt
> number, the kernel map the interrupt number and install the
> irq handler for it.
>
> For GSIV based event, it was introduced for hardware reduced platform
> in recent ACPI revision, and ARM64 is one of its consumers. When
> errors are reported via GSIV, ACPI event notification needs to be
> implemented and requires the platform to define a hardware error device
> (PNP0C33) in ACPI namespace, and also a generic event device ACPI0013.
Okay, so for APEI this really means PNP0C33 was Notify()d. 'SCI' means the same
but the route they take to get into APEI is different.
> For example, if we are using SPI (ARM GIC) 100 to report errors, there
> is a ACPI0013 driver in drivers/acpi/evged.c to register the irq, when
Aha, this is where the interrupt-magic happens.
> error happened and trigger the interrupt, ACPI0013 driver will
> notify the error device (PNP0C33), then error device driver
> (drivers/acpi/hed.c) will process the error data form APEI table...
>> The GHES GSIV code below is identical to the behaviour of the SCI Notification
>> type... are these two names for the same thing? (I'm confused!)
>
> SCI is also an 'interrupt' but it's a special irq number for ACPI
> event, and it has GPE (general purpose event) registers behind it,
> which is used only on Intel platforms. SCI based event use
> Method(\_GPE._L0x) to notify the error device (PNP0C33), but GSIV
> is used for HW-reduced platform which has no GPEs.
> Hope it can clarify something :)
Yes thanks! (the mist is slowly clearing...)
If ACPI_HEST_NOTIFY_SCI and ACPI_HEST_NOTIFY_GSIV both mean 'receive
notification from PNP0C33', is there any point having separate lists and
add/remove functions for them?
Instead, could we rename Linux's ghes_notifier_sci() and ghes_sci list to
describe 'hed' instead, then group the two case statements together? There would
be no need to add a selectable CONFIG_ACPI_APEI_GSIV, as SCI is already built-in
and this way the code added is tiny. The only thing we would lose is the name
'GSIV' in the not-supported error message which we don't need if its always
supported.
Thanks,
James
next prev parent reply other threads:[~2017-03-01 17:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <86258A5CC0A3704780874CF6004BA8A62DCAB57E@lhreml502-mbs>
2017-02-27 18:58 ` [RFC PATCH V1 v4.10-rc3 1/1] acpi: apei: handle GSIV notification type Paul Gortmaker
2017-02-27 20:39 ` Steven Rostedt
2017-02-28 13:22 ` James Morse
2017-03-01 8:27 ` Hanjun Guo
2017-03-01 17:04 ` James Morse [this message]
2017-03-02 13:45 ` Shiju Jose
2017-03-03 4:20 ` Hanjun Guo
2017-03-03 12:48 ` Shiju Jose
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=58B6FF09.6030306@arm.com \
--to=james.morse@arm.com \
--cc=catalin.marinas@arm.com \
--cc=fu.wei@linaro.org \
--cc=gabriele.paoloni@huawei.com \
--cc=guohanjun@huawei.com \
--cc=hanjun.guo@linaro.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=lv.zheng@intel.com \
--cc=matt@codeblueprint.co.uk \
--cc=paul.gortmaker@windriver.com \
--cc=robert.moore@intel.com \
--cc=shiju.jose@huawei.com \
--cc=tbaicar@codeaurora.org \
--cc=wangxiongfeng2@huawei.com \
--cc=will.deacon@arm.com \
--cc=zjzhang@codeaurora.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox