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
WARNING: multiple messages have this Message-ID (diff)
From: james.morse@arm.com (James Morse)
To: linux-arm-kernel@lists.infradead.org
Subject: [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
WARNING: multiple messages have this Message-ID (diff)
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:03 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-27 18:19 [RFC PATCH V1 v4.10-rc3 1/1] acpi: apei: handle GSIV notification type Shiju Jose
2017-02-27 18:19 ` Shiju Jose
2017-02-27 18:58 ` Paul Gortmaker
2017-02-27 18:58 ` Paul Gortmaker
2017-02-27 18:58 ` Paul Gortmaker
2017-02-27 20:39 ` Steven Rostedt
2017-02-27 20:39 ` Steven Rostedt
2017-02-27 20:39 ` Steven Rostedt
2017-02-28 13:22 ` James Morse
2017-02-28 13:22 ` James Morse
2017-02-28 13:22 ` James Morse
2017-03-01 8:27 ` [Devel] " Hanjun Guo
2017-03-01 8:27 ` Hanjun Guo
2017-03-01 8:27 ` Hanjun Guo
2017-03-01 8:27 ` Hanjun Guo
2017-03-01 17:04 ` James Morse [this message]
2017-03-01 17:04 ` James Morse
2017-03-01 17:04 ` James Morse
2017-03-02 13:45 ` Shiju Jose
2017-03-02 13:45 ` Shiju Jose
2017-03-02 13:45 ` Shiju Jose
2017-03-03 4:20 ` [Devel] " Hanjun Guo
2017-03-03 4:20 ` Hanjun Guo
2017-03-03 4:20 ` Hanjun Guo
2017-03-03 4:20 ` Hanjun Guo
2017-03-03 12:48 ` Shiju Jose
2017-03-03 12:48 ` Shiju Jose
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=eun.taik.lee@s \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.