Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp686815yba; Wed, 24 Apr 2019 08:03:06 -0700 (PDT) X-Google-Smtp-Source: APXvYqwoVNlc7a2OXvRTvN8erq2P0CGe8hBejPT3WdJXjEwN+zwcDaEedAe/oEA0tPc4i8VuoQmM X-Received: by 2002:a63:ef53:: with SMTP id c19mr7686423pgk.120.1556118186832; Wed, 24 Apr 2019 08:03:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556118186; cv=none; d=google.com; s=arc-20160816; b=qpx7v7EAr0sF6rocjentVHZBLTmA1CKWAPQlI+ccLCXi15ybOM78SpoMHFSPTltFEy vGMk6hk5GE7uFai0zYNO+UEXQmofxJe6LL/H2+HKwulo9qqr03GAUAU6k7evclcNQKtA YK2OmxMEsHFHsmemAWF9jyhY7pBN4DLYBkLOfyfBmZfOl9my7RXDD46+kXgbo43MhkKB 9XxhTd4JhwTFMPHLHn0j8p26MowYYTQyuPdi/KoXDX2ori0z8UtlwjbsiqtSmqrPcfLl 9/tj4Tqx3XkdDgxiUUrdQ4Ymf1sUFk75cry9Y/N5gDxJqC8mp8bSS1p21jeKt6Ek/QnL UAyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=752iRMZdzW1Xx1Ba7tR94VeDEIoNfyBpmB1y6s6F63I=; b=BCt/uRQ0DmKeY5MkS8gSigFBAdxKD+lVgP5JWx2slR8U448PhUW1v8weFdkZAqns/q pj7UHzk2uielP6kld9nT0831sIXTfv68atZlpt85mzPG+p/aL52bv9FangsV46o5AkT+ 7d54lO9AG3spu9GBep5ZusTU7XUbiui7uyt54SIv36tT0w7R0vuiyRYmGDDDNZYJCf5Z iHyLMEoQdFYTVkhDVMNy3oLebkb4IB1jMUQNDoSPeCin+G4nEwVVU6RJI5LxIGmdY9Fh dHuzrjnWplV6LZeuvQoQnvlLhfxxmxT0i+kp8S32A26o1EmGicINZfscd7EZNZwyq44J zLjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b=DXICtp6G; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h2si20589971pfk.277.2019.04.24.08.02.51; Wed, 24 Apr 2019 08:03:06 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b=DXICtp6G; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730815AbfDXOeB (ORCPT + 99 others); Wed, 24 Apr 2019 10:34:01 -0400 Received: from casper.infradead.org ([85.118.1.10]:45808 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730687AbfDXOeA (ORCPT ); Wed, 24 Apr 2019 10:34:00 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=752iRMZdzW1Xx1Ba7tR94VeDEIoNfyBpmB1y6s6F63I=; b=DXICtp6GbJn58hMxzKMgxp8RE1 zys4QpNza2sJG0aNb2ZXKBkyqOLgQLdA9nNb3kwX+/BVjZqlsLq2cjy3apoWmrIWWL1Wokqzz20L+ 6IAK1BazA5PyjBmeHNEeeYie0JamY39hEeLP1rT0eZE+g2zjY6+uI7tpSphpXQIt0N8a0SzyMgtk1 /WpOKLU9aDm+n+9M+5Mi58VbsvhJf7qioyHZlleNAKA9prSkHFhHiML2DtmCxcD1+hrmopvMF2fYZ 0vsyqoHC4XOWQ4ECE+crKXRqap1vIh01P6W4gxqnDV8tSu0o7lWmz/ZvYmZEoWFshTMS1/MJoHbTO pBWtTzEQ==; Received: from 177.17.136.231.dynamic.adsl.gvt.net.br ([177.17.136.231] helo=coco.lan) by casper.infradead.org with esmtpsa (Exim 4.90_1 #2 (Red Hat Linux)) id 1hJIyB-0007dg-H5; Wed, 24 Apr 2019 14:33:56 +0000 Date: Wed, 24 Apr 2019 11:33:49 -0300 From: Mauro Carvalho Chehab To: Changbin Du Cc: Jonathan Corbet , Bjorn Helgaas , rjw@rjwysocki.net, linux-pci@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, x86@kernel.org, fenghua.yu@intel.com, linuxppc-dev@lists.ozlabs.org, linux-acpi@vger.kernel.org, linux-gpio@vger.kernel.org Subject: Re: [PATCH v4 20/63] Documentation: ACPI: move apei/einj.txt to firmware-guide/acpi and convert to reST Message-ID: <20190424113349.79e1c577@coco.lan> In-Reply-To: <20190423162932.21428-21-changbin.du@gmail.com> References: <20190423162932.21428-1-changbin.du@gmail.com> <20190423162932.21428-21-changbin.du@gmail.com> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Wed, 24 Apr 2019 00:28:49 +0800 Changbin Du escreveu: > This converts the plain text documentation to reStructuredText format and > add it to Sphinx TOC tree. No essential content change. > > Signed-off-by: Changbin Du > --- > .../acpi/apei/einj.rst} | 98 ++++++++++--------- > Documentation/firmware-guide/acpi/index.rst | 1 + > 2 files changed, 53 insertions(+), 46 deletions(-) > rename Documentation/{acpi/apei/einj.txt => firmware-guide/acpi/apei/einj.rst} (67%) > > diff --git a/Documentation/acpi/apei/einj.txt b/Documentation/firmware-guide/acpi/apei/einj.rst > similarity index 67% > rename from Documentation/acpi/apei/einj.txt > rename to Documentation/firmware-guide/acpi/apei/einj.rst > index e550c8b98139..d85e2667155c 100644 > --- a/Documentation/acpi/apei/einj.txt > +++ b/Documentation/firmware-guide/acpi/apei/einj.rst > @@ -1,13 +1,16 @@ > - APEI Error INJection > - ~~~~~~~~~~~~~~~~~~~~ > +.. SPDX-License-Identifier: GPL-2.0 > + > +==================== > +APEI Error INJection > +==================== > > EINJ provides a hardware error injection mechanism. It is very useful > for debugging and testing APEI and RAS features in general. > > You need to check whether your BIOS supports EINJ first. For that, look > -for early boot messages similar to this one: > +for early boot messages similar to this one:: > > -ACPI: EINJ 0x000000007370A000 000150 (v01 INTEL 00000001 INTL 00000001) > + ACPI: EINJ 0x000000007370A000 000150 (v01 INTEL 00000001 INTL 00000001) > > which shows that the BIOS is exposing an EINJ table - it is the > mechanism through which the injection is done. > @@ -23,11 +26,11 @@ order to see the APEI,EINJ,... functionality supported and exposed by > the BIOS menu. > > To use EINJ, make sure the following are options enabled in your kernel > -configuration: > +configuration:: > > -CONFIG_DEBUG_FS > -CONFIG_ACPI_APEI > -CONFIG_ACPI_APEI_EINJ > + CONFIG_DEBUG_FS > + CONFIG_ACPI_APEI > + CONFIG_ACPI_APEI_EINJ > > The EINJ user interface is in /apei/einj. > > @@ -35,22 +38,22 @@ The following files belong to it: > > - available_error_type > > - This file shows which error types are supported: > - > - Error Type Value Error Description > - ================ ================= > - 0x00000001 Processor Correctable > - 0x00000002 Processor Uncorrectable non-fatal > - 0x00000004 Processor Uncorrectable fatal > - 0x00000008 Memory Correctable > - 0x00000010 Memory Uncorrectable non-fatal > - 0x00000020 Memory Uncorrectable fatal > - 0x00000040 PCI Express Correctable > - 0x00000080 PCI Express Uncorrectable fatal > - 0x00000100 PCI Express Uncorrectable non-fatal > - 0x00000200 Platform Correctable > - 0x00000400 Platform Uncorrectable non-fatal > - 0x00000800 Platform Uncorrectable fatal > + This file shows which error types are supported:: > + > + Error Type Value Error Description > + ================ ================= > + 0x00000001 Processor Correctable > + 0x00000002 Processor Uncorrectable non-fatal > + 0x00000004 Processor Uncorrectable fatal > + 0x00000008 Memory Correctable > + 0x00000010 Memory Uncorrectable non-fatal > + 0x00000020 Memory Uncorrectable fatal > + 0x00000040 PCI Express Correctable > + 0x00000080 PCI Express Uncorrectable fatal > + 0x00000100 PCI Express Uncorrectable non-fatal > + 0x00000200 Platform Correctable > + 0x00000400 Platform Uncorrectable non-fatal > + 0x00000800 Platform Uncorrectable fatal This is a table and not a literal block. The best here to preserve the author's intent is to just adjust the table markups in order to make it parseable, e. g.: This file shows which error types are supported: ================ =================================== Error Type Value Error Description ================ =================================== 0x00000001 Processor Correctable 0x00000002 Processor Uncorrectable non-fatal 0x00000004 Processor Uncorrectable fatal 0x00000008 Memory Correctable 0x00000010 Memory Uncorrectable non-fatal 0x00000020 Memory Uncorrectable fatal 0x00000040 PCI Express Correctable 0x00000080 PCI Express Uncorrectable fatal 0x00000100 PCI Express Uncorrectable non-fatal 0x00000200 Platform Correctable 0x00000400 Platform Uncorrectable non-fatal 0x00000800 Platform Uncorrectable fatal ================ =================================== After such change: Reviewed-by: Mauro Carvalho Chehab > > The format of the file contents are as above, except present are only > the available error types. > @@ -73,9 +76,12 @@ The following files belong to it: > injection. Value is a bitmask as specified in ACPI5.0 spec for the > SET_ERROR_TYPE_WITH_ADDRESS data structure: > > - Bit 0 - Processor APIC field valid (see param3 below). > - Bit 1 - Memory address and mask valid (param1 and param2). > - Bit 2 - PCIe (seg,bus,dev,fn) valid (see param4 below). > + Bit 0 > + Processor APIC field valid (see param3 below). > + Bit 1 > + Memory address and mask valid (param1 and param2). > + Bit 2 > + PCIe (seg,bus,dev,fn) valid (see param4 below). > > If set to zero, legacy behavior is mimicked where the type of > injection specifies just one bit set, and param1 is multiplexed. > @@ -121,7 +127,7 @@ BIOS versions based on the ACPI 5.0 specification have more control over > the target of the injection. For processor-related errors (type 0x1, 0x2 > and 0x4), you can set flags to 0x3 (param3 for bit 0, and param1 and > param2 for bit 1) so that you have more information added to the error > -signature being injected. The actual data passed is this: > +signature being injected. The actual data passed is this:: > > memory_address = param1; > memory_address_range = param2; > @@ -131,7 +137,7 @@ signature being injected. The actual data passed is this: > For memory errors (type 0x8, 0x10 and 0x20) the address is set using > param1 with a mask in param2 (0x0 is equivalent to all ones). For PCI > express errors (type 0x40, 0x80 and 0x100) the segment, bus, device and > -function are specified using param1: > +function are specified using param1:: > > 31 24 23 16 15 11 10 8 7 0 > +-------------------------------------------------+ > @@ -152,26 +158,26 @@ documentation for details (and expect changes to this API if vendors > creativity in using this feature expands beyond our expectations). > > > -An error injection example: > +An error injection example:: > > -# cd /sys/kernel/debug/apei/einj > -# cat available_error_type # See which errors can be injected > -0x00000002 Processor Uncorrectable non-fatal > -0x00000008 Memory Correctable > -0x00000010 Memory Uncorrectable non-fatal > -# echo 0x12345000 > param1 # Set memory address for injection > -# echo $((-1 << 12)) > param2 # Mask 0xfffffffffffff000 - anywhere in this page > -# echo 0x8 > error_type # Choose correctable memory error > -# echo 1 > error_inject # Inject now > + # cd /sys/kernel/debug/apei/einj > + # cat available_error_type # See which errors can be injected > + 0x00000002 Processor Uncorrectable non-fatal > + 0x00000008 Memory Correctable > + 0x00000010 Memory Uncorrectable non-fatal > + # echo 0x12345000 > param1 # Set memory address for injection > + # echo $((-1 << 12)) > param2 # Mask 0xfffffffffffff000 - anywhere in this page > + # echo 0x8 > error_type # Choose correctable memory error > + # echo 1 > error_inject # Inject now > > -You should see something like this in dmesg: > +You should see something like this in dmesg:: > > -[22715.830801] EDAC sbridge MC3: HANDLING MCE MEMORY ERROR > -[22715.834759] EDAC sbridge MC3: CPU 0: Machine Check Event: 0 Bank 7: 8c00004000010090 > -[22715.834759] EDAC sbridge MC3: TSC 0 > -[22715.834759] EDAC sbridge MC3: ADDR 12345000 EDAC sbridge MC3: MISC 144780c86 > -[22715.834759] EDAC sbridge MC3: PROCESSOR 0:306e7 TIME 1422553404 SOCKET 0 APIC 0 > -[22716.616173] EDAC MC3: 1 CE memory read error on CPU_SrcID#0_Channel#0_DIMM#0 (channel:0 slot:0 page:0x12345 offset:0x0 grain:32 syndrome:0x0 - area:DRAM err_code:0001:0090 socket:0 channel_mask:1 rank:0) > + [22715.830801] EDAC sbridge MC3: HANDLING MCE MEMORY ERROR > + [22715.834759] EDAC sbridge MC3: CPU 0: Machine Check Event: 0 Bank 7: 8c00004000010090 > + [22715.834759] EDAC sbridge MC3: TSC 0 > + [22715.834759] EDAC sbridge MC3: ADDR 12345000 EDAC sbridge MC3: MISC 144780c86 > + [22715.834759] EDAC sbridge MC3: PROCESSOR 0:306e7 TIME 1422553404 SOCKET 0 APIC 0 > + [22716.616173] EDAC MC3: 1 CE memory read error on CPU_SrcID#0_Channel#0_DIMM#0 (channel:0 slot:0 page:0x12345 offset:0x0 grain:32 syndrome:0x0 - area:DRAM err_code:0001:0090 socket:0 channel_mask:1 rank:0) > > For more information about EINJ, please refer to ACPI specification > version 4.0, section 17.5 and ACPI 5.0, section 18.6. > diff --git a/Documentation/firmware-guide/acpi/index.rst b/Documentation/firmware-guide/acpi/index.rst > index 869badba6d7a..fca854f017d8 100644 > --- a/Documentation/firmware-guide/acpi/index.rst > +++ b/Documentation/firmware-guide/acpi/index.rst > @@ -18,6 +18,7 @@ ACPI Support > debug > aml-debugger > apei/output_format > + apei/einj > gpio-properties > i2c-muxes > acpi-lid Thanks, Mauro