linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: robert.richter@cavium.com (Robert Richter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V17 01/11] acpi: apei: read ack upon ghes record consumption
Date: Fri, 30 Jun 2017 12:10:43 +0200	[thread overview]
Message-ID: <20170630101043.GZ658@rric.localdomain> (raw)
In-Reply-To: <1495225933-4410-2-git-send-email-tbaicar@codeaurora.org>

Tyler,

On 19.05.17 14:32:03, Tyler Baicar wrote:
> A RAS (Reliability, Availability, Serviceability) controller
> may be a separate processor running in parallel with OS
> execution, and may generate error records for consumption by
> the OS. If the RAS controller produces multiple error records,
> then they may be overwritten before the OS has consumed them.
> 
> The Generic Hardware Error Source (GHES) v2 structure
> introduces the capability for the OS to acknowledge the
> consumption of the error record generated by the RAS
> controller. A RAS controller supporting GHESv2 shall wait for
> the acknowledgment before writing a new error record, thus
> eliminating the race condition.
> 
> Add support for parsing of GHESv2 sub-tables as well.
> 
> Signed-off-by: Tyler Baicar <tbaicar@codeaurora.org>
> CC: Jonathan (Zhixiong) Zhang <zjzhang@codeaurora.org>
> Reviewed-by: James Morse <james.morse@arm.com>
> ---
>  drivers/acpi/apei/ghes.c | 59 +++++++++++++++++++++++++++++++++++++++++++++---
>  drivers/acpi/apei/hest.c |  7 ++++--
>  include/acpi/ghes.h      |  5 +++-
>  3 files changed, 65 insertions(+), 6 deletions(-)

>  static int ghes_proc(struct ghes *ghes)
>  {
>  	int rc;
> @@ -661,6 +704,16 @@ static int ghes_proc(struct ghes *ghes)
>  			ghes_estatus_cache_add(ghes->generic, ghes->estatus);
>  	}
>  	ghes_do_proc(ghes, ghes->estatus);
> +
> +	/*
> +	 * GHESv2 type HEST entries introduce support for error acknowledgment,
> +	 * so only acknowledge the error if this support is present.
> +	 */
> +	if (is_hest_type_generic_v2(ghes)) {
> +		rc = ghes_ack_error(ghes->generic_v2);
> +		if (rc)
> +			return rc;
> +	}
>  out:
>  	ghes_clear_estatus(ghes);
>  	return rc;

was there any specific reason why the ack is sent before clearing the
block status? Spec says the ack should be sent at last.

Also, the block is never cleared if ghes_ack_error() returns an error.
IMO we should fall through and clear the block status (this will
change anyway if the bloc status is cleared first).

-Robert

  reply	other threads:[~2017-06-30 10:10 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-19 20:32 [PATCH V17 00/11] Add UEFI 2.6 and ACPI 6.1 updates for RAS on ARM64 Tyler Baicar
2017-05-19 20:32 ` [PATCH V17 01/11] acpi: apei: read ack upon ghes record consumption Tyler Baicar
2017-06-30 10:10   ` Robert Richter [this message]
2017-06-30 16:47     ` Baicar, Tyler
2017-05-19 20:32 ` [PATCH V17 02/11] ras: acpi/apei: cper: add support for generic data v3 structure Tyler Baicar
2017-06-02 14:13   ` Will Deacon
2017-06-06  9:22     ` Ard Biesheuvel
2017-05-19 20:32 ` [PATCH V17 03/11] cper: add timestamp print to CPER status printing Tyler Baicar
2017-06-06  9:25   ` Ard Biesheuvel
2017-05-19 20:32 ` [PATCH V17 04/11] efi: parse ARM processor error Tyler Baicar
2017-05-19 20:32 ` [PATCH V17 05/11] arm64: exception: handle Synchronous External Abort Tyler Baicar
2017-05-19 20:32 ` [PATCH V17 06/11] acpi: apei: handle SEA notification type for ARMv8 Tyler Baicar
2017-05-19 20:32 ` [PATCH V17 07/11] acpi: apei: panic OS with fatal error status block Tyler Baicar
2017-05-19 20:32 ` [PATCH V17 08/11] efi: print unrecognized CPER section Tyler Baicar
2017-06-07 10:08   ` Ard Biesheuvel
2017-05-19 20:32 ` [PATCH V17 09/11] ras: acpi / apei: generate trace event for " Tyler Baicar
2017-05-19 20:32 ` [PATCH V17 10/11] trace, ras: add ARM processor error trace event Tyler Baicar
2017-05-19 20:32 ` [PATCH V17 11/11] arm/arm64: KVM: add guest SEA support Tyler Baicar
2017-05-23  9:30 ` [PATCH V17 00/11] Add UEFI 2.6 and ACPI 6.1 updates for RAS on ARM64 Borislav Petkov
2017-06-07 11:50 ` Will Deacon
2017-06-20  6:34   ` Robert Richter
2017-06-20  8:49     ` Will Deacon
2017-06-21 13:00       ` Robert Richter
2017-06-21 13:10         ` Robert Richter

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=20170630101043.GZ658@rric.localdomain \
    --to=robert.richter@cavium.com \
    --cc=linux-arm-kernel@lists.infradead.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;
as well as URLs for NNTP newsgroup(s).