Received: by 2002:ac0:8c9a:0:0:0:0:0 with SMTP id r26csp170050ima; Fri, 1 Feb 2019 01:17:07 -0800 (PST) X-Google-Smtp-Source: ALg8bN4wEr/tFcLEDy6ZDoBmrFAOam/lrX4TX2tm6r7T9BgYWvSgUHnh2SbFYsa5/os4RN0gJp39 X-Received: by 2002:a17:902:42e4:: with SMTP id h91mr39304579pld.18.1549012627774; Fri, 01 Feb 2019 01:17:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549012627; cv=none; d=google.com; s=arc-20160816; b=NmySzr9lypEtZ9ctlf+PDJHe0SDqAtC3yqSs8Rm+dJftbGy4R8RXIONwhcsSzSHgK8 C9PP0R5FlpZvEL3iZ/6ce8A+Pu0aPhjuc8gZOYNZyLBh+uAyNgc6GA9MI8vNGTRr0bdW gVUk+XBQVSuTTaP2QY9eWyJXqtArqtTfoyNEDqSSo95JkPyVuWe7xJIzGeA1dg1f1zbV l6Eottrp7sMnHuwxvftobHZQqZ1uu5or3YECbadLGw2WJwAhro53DtjJPnRdkhwKudGF 6YnCkEDpMlwqKsD/0TMVSNaw4qkaXffML7UBl0hVsygjUWZr4Mj79+ElIrHbVx3YBqPm A7vQ== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:autocrypt:openpgp:from:references:cc:to :subject; bh=cL0TVLyR+cb+hPJeNYkcri0agrqeFyY2LFOUYXwjXq0=; b=zAsT56a2mY7dgRvm+x0OB6Z5OEakfrnzcuY9RExF/zkRjHy9PRUyF9hhSpohpx587x 9uTPn0KjLzAP4u2exICKKle2C49/JXSfGYNwgg1EeQt3RJbpL/8rzTce0VbjWZbOTeJM 7dTG8WF75dOSl+eHs9n/1HTUr4djn+MHqwSJHM7M+k/gret72G+7Wd1cdA749HhdPT6E Ta7w/ivWPMRRIxUt3pin1pyqj4dV06WTpGGqjqqJaFYwhKy+Nr8cYNNcXN94ih6b2Qg1 eGa+lR9lpoeD/e+zy8jvHsfWJs2qmYpZ6DT/sVqCWRTuR6ilGjojSwTuBP0NLaf9aabY zOHg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p80si6656484pfi.124.2019.02.01.01.16.51; Fri, 01 Feb 2019 01:17:07 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729240AbfBAJP3 (ORCPT + 99 others); Fri, 1 Feb 2019 04:15:29 -0500 Received: from foss.arm.com ([217.140.101.70]:56590 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726428AbfBAJP2 (ORCPT ); Fri, 1 Feb 2019 04:15:28 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 24BF5A78; Fri, 1 Feb 2019 01:15:28 -0800 (PST) Received: from [10.1.196.62] (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 516463F71E; Fri, 1 Feb 2019 01:15:26 -0800 (PST) Subject: Re: [PATCH 00/10] GICv3 support for kexec/kdump on EFI systems To: Sun Ted Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Ard Biesheuvel , Jeremy Linton , Jeffrey Hugo , Thomas Gleixner , Jason Cooper References: <20180921195954.21574-1-marc.zyngier@arm.com> From: Marc Zyngier Openpgp: preference=signencrypt Autocrypt: addr=marc.zyngier@arm.com; prefer-encrypt=mutual; keydata= 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 Organization: ARM Ltd Message-ID: Date: Fri, 1 Feb 2019 09:15:21 +0000 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Xulin, On 01/02/2019 06:11, Sun Ted wrote: > Hi Marc, > > Marc Zyngier > 于2018 > 年9月22日周六 上午4:03写道: > > The GICv3 architecture has the remarkable feature that once LPI tables > have been assigned to redistributors and that LPI delivery is enabled, > there is no guarantee that LPIs can be turned off (and most > implementations do not allow it), nor can it be reprogrammed to use > other tables. > > This is a bit of a problem for kexec, where the secondary kernel > completely looses track of the previous allocations. If the secondary > kernel doesn't allocate the tables exactly the same way, no LPIs will > be delivered by the GIC (which continues to use the old tables), and > memory previously allocated for the pending tables will be slowly > corrupted, one bit at a time. > > The workaround for this is based on a series[1] by Ard Biesheuvel, > which adds the required infrastructure for memory reservations to be > passed from one kernel to another using an EFI table. > > This infrastructure is then used to register the allocation of GIC > tables with EFI, and allow the GIC driver to safely reuse the existing > programming if it detects that the tables have been correctly > registered. On non-EFI systems, there is not much we can do. > > > Sorry to turn this question out again. > For others non-EFI systems, just as your said till now we did do > anything, right? We didn't do anything, because there is nothing we can do. > I did see the kexec booting failure since re-setting > the GICR_CTLR.EnableLPI from "1" to "0" unsuccessful. > > The  below commit adds the judgement for disabling LPIs, and returned > error. Caused "kexec" booting failure. And I fully expected this. When I said "we don't do anything", I meant "we don't do anything to make LPIs work". > > 6eb486b66a (irqchip/gic-v3: Ensure GICR_CTLR.EnableLPI=0 is observed > before enabling). > > >  int its_cpu_init(void) >  { >         if (!list_empty(&its_nodes)) { > -               if (!gic_rdists_supports_plpis()) { > -                       pr_info("CPU%d: LPIs not supported\n", > smp_processor_id()); > -                       return -ENXIO; > -               } > +               int ret; > + > +               ret = redist_disable_lpis(); > +               if (ret) > +                       return ret; > + And I maintain that this is the right thing to do. If LPIs are on and the memory has not been reserved, it is then likely that this memory is now being used by the kernel for something else. The system is thus going to see single-bit corruption in some random places. At that stage, your system is horribly unsafe, and I will not let it boot under these conditions. If it was working before, that's because you were lucky, and I place no faith in luck. Now you have two alternatives: - You switch to an EFI-based firmware. These days, even u-boot has an EFI implementation. COnsider doing that if you can. - If there is no EFI implementation for your SoC, you can pass the "irqchip.gicv3_nolpi=1" option to the first kernel. This will keep LPI disabled, and you'll be able to kexec a secondary kernel (and get working LPIs there). This is what I do on my Chromebook. Thanks, M. -- Jazz is not dead. It just smells funny...