{"id":810880,"url":"http://patchwork.ozlabs.org/api/1.2/covers/810880/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-imx/cover/1504770316-4327-1-git-send-email-xiexiuqi@huawei.com/","project":{"id":19,"url":"http://patchwork.ozlabs.org/api/1.2/projects/19/?format=json","name":"Linux IMX development","link_name":"linux-imx","list_id":"linux-imx-kernel.lists.patchwork.ozlabs.org","list_email":"linux-imx-kernel@lists.patchwork.ozlabs.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1504770316-4327-1-git-send-email-xiexiuqi@huawei.com>","list_archive_url":null,"date":"2017-09-07T07:45:13","name":"[v3,0/3] arm64/ras: support sea error recovery","submitter":{"id":24815,"url":"http://patchwork.ozlabs.org/api/1.2/people/24815/?format=json","name":"Xie XiuQi","email":"xiexiuqi@huawei.com"},"mbox":"http://patchwork.ozlabs.org/project/linux-imx/cover/1504770316-4327-1-git-send-email-xiexiuqi@huawei.com/mbox/","series":[{"id":1932,"url":"http://patchwork.ozlabs.org/api/1.2/series/1932/?format=json","web_url":"http://patchwork.ozlabs.org/project/linux-imx/list/?series=1932","date":"2017-09-07T07:45:13","name":"arm64/ras: support sea error recovery","version":3,"mbox":"http://patchwork.ozlabs.org/series/1932/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/810880/comments/","headers":{"Return-Path":"<linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org>","X-Original-To":"incoming-imx@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming-imx@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=lists.infradead.org\n\t(client-ip=65.50.211.133; helo=bombadil.infradead.org;\n\tenvelope-from=linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=lists.infradead.org\n\theader.i=@lists.infradead.org\n\theader.b=\"MUMtF+Ay\"; dkim-atps=neutral"],"Received":["from bombadil.infradead.org (bombadil.infradead.org\n\t[65.50.211.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xnszw15VJz9sNV\n\tfor <incoming-imx@patchwork.ozlabs.org>;\n\tThu,  7 Sep 2017 17:49:48 +1000 (AEST)","from localhost ([127.0.0.1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dprZH-0004DN-4g; Thu, 07 Sep 2017 07:49:43 +0000","from szxga04-in.huawei.com ([45.249.212.190])\n\tby bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux))\n\tid 1dprY8-00032z-LJ for linux-arm-kernel@lists.infradead.org;\n\tThu, 07 Sep 2017 07:48:35 +0000","from 172.30.72.59 (EHLO DGGEMS408-HUB.china.huawei.com)\n\t([172.30.72.59])\n\tby dggrg04-dlp.huawei.com (MOS 4.4.6-GA FastPath queued)\n\twith ESMTP id DGS33932; Thu, 07 Sep 2017 15:44:36 +0800 (CST)","from localhost.localdomain.localdomain (10.175.113.25) by\n\tDGGEMS408-HUB.china.huawei.com (10.3.19.208) with Microsoft SMTP\n\tServer id 14.3.301.0; Thu, 7 Sep 2017 15:44:26 +0800"],"DKIM-Signature":"v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20170209; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To\n\t:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:\n\tResent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:\n\tList-Owner; bh=fjxwyZbKzPFFF8ELC5gyAc/65KGc7hXb27dvmlQCzww=;\n\tb=MUMtF+Ayn+1AyE\n\t7v5hiYelcCksVpX2eK/8wguoV4vqZFjUesuSC6npsKUpg87kb01q8TMSTGWfJ6gWrmKkTXVHjZwZi\n\tM36UuNxB9DGi2u0OouSFJ6fpNdD8kRILQIjGctRGI0GdLb576fbhqV/cRszOsjjOV/SLFop4wXyJG\n\t2gNxbMoFYbvxXJUnBGDKZeIFBEQdPL1tHoN6ECnMwKjsguNc+50dss/0tCNH/SxLzJE4/w19RlKQ3\n\tI+9sy0aoU+FinkUP/1n2GcF9djM8ajDXgt3aCyQTuTBd0QEYvyz+7kYOhk4lk8ZZ95l1P2HljFsIs\n\tAFO8vjKQiqya3lKFxobw==;","From":"Xie XiuQi <xiexiuqi@huawei.com>","To":"<catalin.marinas@arm.com>, <will.deacon@arm.com>, <mingo@redhat.com>,\n\t<mark.rutland@arm.com>, <ard.biesheuvel@linaro.org>,\n\t<james.morse@arm.com>, <Dave.Martin@arm.com>,\n\t<takahiro.akashi@linaro.org>, <tbaicar@codeaurora.org>,\n\t<stephen.boyd@linaro.org>, <bp@suse.de>, <julien.thierry@arm.com>,\n\t<shiju.jose@huawei.com>, <zjzhang@codeaurora.org>","Subject":"[PATCH v3 0/3] arm64/ras: support sea error recovery","Date":"Thu, 7 Sep 2017 15:45:13 +0800","Message-ID":"<1504770316-4327-1-git-send-email-xiexiuqi@huawei.com>","X-Mailer":"git-send-email 1.8.3.1","MIME-Version":"1.0","X-Originating-IP":"[10.175.113.25]","X-CFilter-Loop":"Reflected","X-Mirapoint-Virus-RAPID-Raw":"score=unknown(0),\n\trefid=str=0001.0A090205.59B0F8E4.0051, ss=1, re=0.000, recu=0.000,\n\treip=0.000, cl=1, cld=1, fgs=0, ip=0.0.0.0,\n\tso=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32","X-Mirapoint-Loop-Id":"fea5777cb942cf242b30b057cccdd035","X-CRM114-Version":"20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ","X-CRM114-CacheID":"sfid-20170907_004833_105338_ADE75D9E ","X-CRM114-Status":"GOOD (  10.98  )","X-Spam-Score":"-1.9 (-)","X-Spam-Report":"SpamAssassin version 3.4.1 on bombadil.infradead.org summary:\n\tContent analysis details:   (-1.9 points)\n\tpts rule name              description\n\t---- ----------------------\n\t--------------------------------------------------\n\t-0.0 SPF_PASS               SPF: sender matches SPF record\n\t-0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay\n\tdomain\n\t-1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n\t[score: 0.0000]","X-BeenThere":"linux-arm-kernel@lists.infradead.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Unsubscribe":"<http://lists.infradead.org/mailman/options/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe>","List-Archive":"<http://lists.infradead.org/pipermail/linux-arm-kernel/>","List-Post":"<mailto:linux-arm-kernel@lists.infradead.org>","List-Help":"<mailto:linux-arm-kernel-request@lists.infradead.org?subject=help>","List-Subscribe":"<http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>,\n\t<mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe>","Cc":"wangkefeng.wang@huawei.com, cj.chengjian@huawei.com, xiexiuqi@huawei.com,\n\tlinux-kernel@vger.kernel.org, gengdongjiu@huawei.com,\n\tlijinyue@huawei.com, \n\tlinux-acpi@vger.kernel.org, huawei.libin@huawei.com,\n\tguohanjun@huawei.com, \n\tzhengqiang10@huawei.com, wangxiongfeng2@huawei.com,\n\tlinux-arm-kernel@lists.infradead.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"\"linux-arm-kernel\" <linux-arm-kernel-bounces@lists.infradead.org>","Errors-To":"linux-arm-kernel-bounces+incoming-imx=patchwork.ozlabs.org@lists.infradead.org","List-Id":"linux-imx-kernel.lists.patchwork.ozlabs.org"},"content":"With ARM v8.2 RAS Extension, SEA are usually triggered when memory errors\nare consumed. In some cases, if the error address is in a clean page or a\nread-only page, there is a chance to recover. Such as error occurs in a\ninstruction page, we can reread this page from disk instead of killing\nprocess.\n\nBecause memory_failure() may sleep, we can not call it directly in SEA\nexception context. So we saved faulting physical address associated with\na process in the ghes handler and set __TIF_SEA_NOTIFY. When we return\nfrom SEA exception context and get into do_notify_resume() before the\nprocess running, we could check it and call memory_failure() to do\nrecovery. It's safe, because we are in process context.\n\nIn some platform, when SEA triggerred, physical address could be reported\nby memory section or by processor section, so we save address at this two\nplace.\n\n---\nv3 - v2:\n  - fix patch style issue\n\nv2 - v1:\n  - wrap arm_proc_error_check and log_arm_hw_error in a single arm_process_error()\n  - fix sea_save_info return value issue\n  - fix link error if this CONFIG_ARM64_ERR_RECOV is not selected\n  - use a notify chain instead of call arch_apei_report_mem_error directly\n\n  https://lkml.org/lkml/2017/9/1/189\n\nXie XiuQi (3):\n  arm64/ras: support sea error recovery\n  GHES: add a notify chain for process memory section\n  arm64/ras: save error address from memory section for recovery\n\n arch/arm64/Kconfig                   |  11 +++\n arch/arm64/include/asm/ras.h         |  36 ++++++++\n arch/arm64/include/asm/thread_info.h |   4 +-\n arch/arm64/kernel/Makefile           |   1 +\n arch/arm64/kernel/ras.c              | 172 +++++++++++++++++++++++++++++++++++\n arch/arm64/kernel/signal.c           |   8 ++\n arch/arm64/mm/fault.c                |  27 ++++--\n drivers/acpi/apei/ghes.c             |  14 ++-\n include/acpi/ghes.h                  |   8 ++\n 9 files changed, 270 insertions(+), 11 deletions(-)\n create mode 100644 arch/arm64/include/asm/ras.h\n create mode 100644 arch/arm64/kernel/ras.c"}