From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D9B762A13 for ; Mon, 22 Jan 2024 16:02:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=140.211.166.136 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705939355; cv=none; b=JoWNZRYdhgI4YjUjr/Tw2edu9f+75MbQh7/A8uVex1gUjKtmoP6779WmqnpfSoLgw7dvpk3DUuNPYjKTL8jw67GMD1lxnztwvBwcyreQDPchVRLjMqJpptPHuSbtwN06XVM7j+0h8ZYP5e8S62dQVZKEAMrNrDZsK6CVBHcGgaM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705939355; c=relaxed/simple; bh=DfvUc1kkTAgFV9KbBC0HUkcLxAbVIJv/dK2TEfAAtq8=; h=Date:From:To:CC:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UuUP47AVOLn+yOgxNoYoSELiuyl5PBjZOGK4SeKidvvc/DGp7pp2P5vSDqFyuUmZ33/ocFApqUm0BwlrNYo2vq6x4EBt7WBiP+DhoHQZaE1GNb/KZz4tLq8tsXhtm74bs7vzcTb7CZlJAaab5t4qWgUaYkqUA/Mq+I4DA7m68ts= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; arc=none smtp.client-ip=140.211.166.136 Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 19E4C60E03 for ; Mon, 22 Jan 2024 16:02:34 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 19E4C60E03 X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -4.198 X-Spam-Level: Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KYymbK7F1fhx for ; Mon, 22 Jan 2024 16:02:32 +0000 (UTC) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id 4594A60D4D for ; Mon, 22 Jan 2024 16:02:31 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 4594A60D4D Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4TJZg429vPz6K6FL; Tue, 23 Jan 2024 00:00:00 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 89AC3140B2F; Tue, 23 Jan 2024 00:02:28 +0800 (CST) Received: from localhost (10.202.227.76) by lhrpeml500005.china.huawei.com (7.191.163.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 22 Jan 2024 16:02:27 +0000 Date: Mon, 22 Jan 2024 16:02:27 +0000 From: Jonathan Cameron To: "Russell King (Oracle)" CC: "Rafael J. Wysocki" , , , , , , , , , , , , , , , Salil Mehta , Jean-Philippe Brucker , , , James Morse Subject: Re: [PATCH RFC v3 03/21] ACPI: processor: Register CPUs that are online, but not described in the DSDT Message-ID: <20240122160227.00002d83@Huawei.com> In-Reply-To: References: Organization: Huawei Technologies Research and Development (UK) Ltd. X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) Precedence: bulk X-Mailing-List: acpica-devel@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: lhrpeml100005.china.huawei.com (7.191.160.25) To lhrpeml500005.china.huawei.com (7.191.163.240) On Mon, 15 Jan 2024 11:06:29 +0000 "Russell King (Oracle)" wrote: > On Mon, Dec 18, 2023 at 09:22:03PM +0100, Rafael J. Wysocki wrote: > > On Wed, Dec 13, 2023 at 1:49=E2=80=AFPM Russell King wrote: =20 > > > > > > From: James Morse > > > > > > ACPI has two descriptions of CPUs, one in the MADT/APIC table, the ot= her > > > in the DSDT. Both are required. (ACPI 6.5's 8.4 "Declaring Processors" > > > says "Each processor in the system must be declared in the ACPI > > > namespace"). Having two descriptions allows firmware authors to get > > > this wrong. > > > > > > If CPUs are described in the MADT/APIC, they will be brought online > > > early during boot. Once the register_cpu() calls are moved to ACPI, > > > they will be based on the DSDT description of the CPUs. When CPUs are > > > missing from the DSDT description, they will end up online, but not > > > registered. > > > > > > Add a helper that runs after acpi_init() has completed to register > > > CPUs that are online, but weren't found in the DSDT. Any CPU that > > > is registered by this code triggers a firmware-bug warning and kernel > > > taint. > > > > > > Qemu TCG only describes the first CPU in the DSDT, unless cpu-hotplug > > > is configured. =20 > >=20 > > So why is this a kernel problem? =20 >=20 > So what are you proposing should be the behaviour here? What this > statement seems to be saying is that QEMU as it exists today only > describes the first CPU in DSDT. This confuses me somewhat, because I'm far from sure which machines this is true for in QEMU. I'm guessing it's a legacy thing with some old distro version of QEMU - so we'll have to paper over it anyway but for current QEMU I'm not sure it's true. Helpfully there are a bunch of ACPI table tests so I've been checking through all the multi CPU cases. CPU hotplug not enabled. pc/DSDT.dimmpxm - 4x Processor entries. -smp 4 pc/DSDT.acpihmat - 2x Processor entries. -smp 2 q35/DSDT.acpihmat - 2x Processor entries. -smp 2 virt/DSDT.acpihmatvirt - 4x ACPI0007 entries -smp 4 q35/DSDT.acpihmat-noinitiator - 4 x Processor () entries -smp 4=20 virt/DSDT.topology - 8x ACPI0007 entries I've also looked at the code and we have various types of CPU hotplug on x86 but they all build appropriate numbers of Processor() entries in DSDT. Arm likewise seems to build the right number of ACPI0007 entries (and doesn't yet have CPU HP support). If anyone can add a reference on why this is needed that would be very helpful. >=20 > As this patch series changes when arch_register_cpu() gets called (as > described in the paragraph above) we obviously need to preserve the > _existing_ behaviour to avoid causing regressions. So, if changing the > kernel causes user visible regressions (e.g. sysfs entries to > disappear) then it obviously _is_ a kernel problem that needs to be > solved. >=20 > We can't say "well fix QEMU then" without invoking the wrath of Linus. Overall I'm fine with the defensive nature of this patch as there 'might' be firmware out there with this problem - I just can't establish that there is! If anyone else recalls the history of this then give a shout. I vaguely wondered if this was an ia64 thing but nope, QEMU never generated tables for ia64 before dropping support back in QEMU 2.11 >=20 > > > Signed-off-by: James Morse > > > Reviewed-by: Jonathan Cameron > > > Reviewed-by: Gavin Shan > > > Tested-by: Miguel Luis > > > Tested-by: Vishnu Pajjuri > > > Tested-by: Jianyong Wu > > > Signed-off-by: Russell King (Oracle) > > > --- > > > drivers/acpi/acpi_processor.c | 19 +++++++++++++++++++ > > > 1 file changed, 19 insertions(+) > > > > > > diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_proces= sor.c > > > index 6a542e0ce396..0511f2bc10bc 100644 > > > --- a/drivers/acpi/acpi_processor.c > > > +++ b/drivers/acpi/acpi_processor.c > > > @@ -791,6 +791,25 @@ void __init acpi_processor_init(void) > > > acpi_pcc_cpufreq_init(); > > > } > > > > > > +static int __init acpi_processor_register_missing_cpus(void) > > > +{ > > > + int cpu; > > > + > > > + if (acpi_disabled) > > > + return 0; > > > + > > > + for_each_online_cpu(cpu) { > > > + if (!get_cpu_device(cpu)) { > > > + pr_err_once(FW_BUG "CPU %u has no ACPI namesp= ace description!\n", cpu); > > > + add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_= STILL_OK); > > > + arch_register_cpu(cpu); =20 > >=20 > > Which part of this code is related to ACPI? =20 >=20 > That's a good question, and I suspect it would be more suited to being > placed in drivers/base/cpu.c except for the problem that the error > message refers to ACPI. >=20 > As long as we keep the acpi_disabled test, I guess that's fine. > cpu_dev_register_generic() there already tests acpi_disabled. >=20 Moving it seems fine to me. Jonathan From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 165B1C47DD9 for ; Mon, 22 Jan 2024 16:02:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:CC:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cdx1hMeMp7vfu9ApON8oCn2pmNH2z7oeCZZLEjOz4S0=; b=h3/zxxRg+7mdOc 3uy6LEzgS41cEs9Uy4vlgcwDPsqMc5jis8OFJEzxgWyQdAjJcuTN5u1QB8MezYPVMlVcppDxTT9mF Ah/YaRLArZocjR5hcxTedKKOVZaIiTn6o5reogaw6WFor9wPVCnQaUO+yAM6HTNX6XDKqbmVeObp2 /Rtv3aw402TSN4RTmC1vsfiBfaLyr07CPUX2KyWC5JtT419hlTRZJSkAv3Ds5gMBC4+Kvvb9IOFjr 3sMc8rygT/0jAtE5wV73uF+Zaq12AkoCB/KVWiAt19LX0YGvVkRI63m52e2B1ON7FVZq+94/uIDkM Yt4J9L8ExwlEd3/SLRag==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rRwl1-00CrEU-2c; Mon, 22 Jan 2024 16:02:43 +0000 Received: from frasgout.his.huawei.com ([185.176.79.56]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rRwkx-00CrBQ-2W; Mon, 22 Jan 2024 16:02:42 +0000 Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4TJZg429vPz6K6FL; Tue, 23 Jan 2024 00:00:00 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 89AC3140B2F; Tue, 23 Jan 2024 00:02:28 +0800 (CST) Received: from localhost (10.202.227.76) by lhrpeml500005.china.huawei.com (7.191.163.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 22 Jan 2024 16:02:27 +0000 Date: Mon, 22 Jan 2024 16:02:27 +0000 From: Jonathan Cameron To: "Russell King (Oracle)" CC: "Rafael J. Wysocki" , , , , , , , , , , , , , , , Salil Mehta , Jean-Philippe Brucker , , , James Morse Subject: Re: [PATCH RFC v3 03/21] ACPI: processor: Register CPUs that are online, but not described in the DSDT Message-ID: <20240122160227.00002d83@Huawei.com> In-Reply-To: References: Organization: Huawei Technologies Research and Development (UK) Ltd. X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) MIME-Version: 1.0 X-Originating-IP: [10.202.227.76] X-ClientProxiedBy: lhrpeml100005.china.huawei.com (7.191.160.25) To lhrpeml500005.china.huawei.com (7.191.163.240) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240122_080240_123227_7850386B X-CRM114-Status: GOOD ( 42.85 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gTW9uLCAxNSBKYW4gMjAyNCAxMTowNjoyOSArMDAwMAoiUnVzc2VsbCBLaW5nIChPcmFjbGUp IiA8bGludXhAYXJtbGludXgub3JnLnVrPiB3cm90ZToKCj4gT24gTW9uLCBEZWMgMTgsIDIwMjMg YXQgMDk6MjI6MDNQTSArMDEwMCwgUmFmYWVsIEouIFd5c29ja2kgd3JvdGU6Cj4gPiBPbiBXZWQs IERlYyAxMywgMjAyMyBhdCAxOjQ54oCvUE0gUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxp bnV4Lm9yZy51az4gd3JvdGU6ICAKPiA+ID4KPiA+ID4gRnJvbTogSmFtZXMgTW9yc2UgPGphbWVz Lm1vcnNlQGFybS5jb20+Cj4gPiA+Cj4gPiA+IEFDUEkgaGFzIHR3byBkZXNjcmlwdGlvbnMgb2Yg Q1BVcywgb25lIGluIHRoZSBNQURUL0FQSUMgdGFibGUsIHRoZSBvdGhlcgo+ID4gPiBpbiB0aGUg RFNEVC4gQm90aCBhcmUgcmVxdWlyZWQuIChBQ1BJIDYuNSdzIDguNCAiRGVjbGFyaW5nIFByb2Nl c3NvcnMiCj4gPiA+IHNheXMgIkVhY2ggcHJvY2Vzc29yIGluIHRoZSBzeXN0ZW0gbXVzdCBiZSBk ZWNsYXJlZCBpbiB0aGUgQUNQSQo+ID4gPiBuYW1lc3BhY2UiKS4gSGF2aW5nIHR3byBkZXNjcmlw dGlvbnMgYWxsb3dzIGZpcm13YXJlIGF1dGhvcnMgdG8gZ2V0Cj4gPiA+IHRoaXMgd3JvbmcuCj4g PiA+Cj4gPiA+IElmIENQVXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgTUFEVC9BUElDLCB0aGV5IHdp bGwgYmUgYnJvdWdodCBvbmxpbmUKPiA+ID4gZWFybHkgZHVyaW5nIGJvb3QuIE9uY2UgdGhlIHJl Z2lzdGVyX2NwdSgpIGNhbGxzIGFyZSBtb3ZlZCB0byBBQ1BJLAo+ID4gPiB0aGV5IHdpbGwgYmUg YmFzZWQgb24gdGhlIERTRFQgZGVzY3JpcHRpb24gb2YgdGhlIENQVXMuIFdoZW4gQ1BVcyBhcmUK PiA+ID4gbWlzc2luZyBmcm9tIHRoZSBEU0RUIGRlc2NyaXB0aW9uLCB0aGV5IHdpbGwgZW5kIHVw IG9ubGluZSwgYnV0IG5vdAo+ID4gPiByZWdpc3RlcmVkLgo+ID4gPgo+ID4gPiBBZGQgYSBoZWxw ZXIgdGhhdCBydW5zIGFmdGVyIGFjcGlfaW5pdCgpIGhhcyBjb21wbGV0ZWQgdG8gcmVnaXN0ZXIK PiA+ID4gQ1BVcyB0aGF0IGFyZSBvbmxpbmUsIGJ1dCB3ZXJlbid0IGZvdW5kIGluIHRoZSBEU0RU LiBBbnkgQ1BVIHRoYXQKPiA+ID4gaXMgcmVnaXN0ZXJlZCBieSB0aGlzIGNvZGUgdHJpZ2dlcnMg YSBmaXJtd2FyZS1idWcgd2FybmluZyBhbmQga2VybmVsCj4gPiA+IHRhaW50Lgo+ID4gPgo+ID4g PiBRZW11IFRDRyBvbmx5IGRlc2NyaWJlcyB0aGUgZmlyc3QgQ1BVIGluIHRoZSBEU0RULCB1bmxl c3MgY3B1LWhvdHBsdWcKPiA+ID4gaXMgY29uZmlndXJlZC4gIAo+ID4gCj4gPiBTbyB3aHkgaXMg dGhpcyBhIGtlcm5lbCBwcm9ibGVtPyAgCj4gCj4gU28gd2hhdCBhcmUgeW91IHByb3Bvc2luZyBz aG91bGQgYmUgdGhlIGJlaGF2aW91ciBoZXJlPyBXaGF0IHRoaXMKPiBzdGF0ZW1lbnQgc2VlbXMg dG8gYmUgc2F5aW5nIGlzIHRoYXQgUUVNVSBhcyBpdCBleGlzdHMgdG9kYXkgb25seQo+IGRlc2Ny aWJlcyB0aGUgZmlyc3QgQ1BVIGluIERTRFQuCgpUaGlzIGNvbmZ1c2VzIG1lIHNvbWV3aGF0LCBi ZWNhdXNlIEknbSBmYXIgZnJvbSBzdXJlIHdoaWNoIG1hY2hpbmVzIHRoaXMKaXMgdHJ1ZSBmb3Ig aW4gUUVNVS4gIEknbSBndWVzc2luZyBpdCdzIGEgbGVnYWN5IHRoaW5nIHdpdGgKc29tZSBvbGQg ZGlzdHJvIHZlcnNpb24gb2YgUUVNVSAtIHNvIHdlJ2xsIGhhdmUgdG8gcGFwZXIgb3ZlciBpdCBh bnl3YXkKYnV0IGZvciBjdXJyZW50IFFFTVUgSSdtIG5vdCBzdXJlIGl0J3MgdHJ1ZS4KCkhlbHBm dWxseSB0aGVyZSBhcmUgYSBidW5jaCBvZiBBQ1BJIHRhYmxlIHRlc3RzIHNvIEkndmUgYmVlbiBj aGVja2luZwp0aHJvdWdoIGFsbCB0aGUgbXVsdGkgQ1BVIGNhc2VzLgoKQ1BVIGhvdHBsdWcgbm90 IGVuYWJsZWQuCnBjL0RTRFQuZGltbXB4bSAgLSA0eCBQcm9jZXNzb3IgZW50cmllcy4gIC1zbXAg NApwYy9EU0RULmFjcGlobWF0IC0gMnggUHJvY2Vzc29yIGVudHJpZXMuICAtc21wIDIKcTM1L0RT RFQuYWNwaWhtYXQgLSAyeCBQcm9jZXNzb3IgZW50cmllcy4gLXNtcCAyCnZpcnQvRFNEVC5hY3Bp aG1hdHZpcnQgLSA0eCBBQ1BJMDAwNyBlbnRyaWVzIC1zbXAgNApxMzUvRFNEVC5hY3BpaG1hdC1u b2luaXRpYXRvciAtIDQgeCBQcm9jZXNzb3IgKCkgZW50cmllcyAtc21wIDQgCnZpcnQvRFNEVC50 b3BvbG9neSAtIDh4IEFDUEkwMDA3IGVudHJpZXMKCkkndmUgYWxzbyBsb29rZWQgYXQgdGhlIGNv ZGUgYW5kIHdlIGhhdmUgdmFyaW91cyB0eXBlcyBvZgpDUFUgaG90cGx1ZyBvbiB4ODYgYnV0IHRo ZXkgYWxsIGJ1aWxkIGFwcHJvcHJpYXRlIG51bWJlcnMgb2YKUHJvY2Vzc29yKCkgZW50cmllcyBp biBEU0RULgpBcm0gbGlrZXdpc2Ugc2VlbXMgdG8gYnVpbGQgdGhlIHJpZ2h0IG51bWJlciBvZiBB Q1BJMDAwNyBlbnRyaWVzCihhbmQgZG9lc24ndCB5ZXQgaGF2ZSBDUFUgSFAgc3VwcG9ydCkuCgpJ ZiBhbnlvbmUgY2FuIGFkZCBhIHJlZmVyZW5jZSBvbiB3aHkgdGhpcyBpcyBuZWVkZWQgdGhhdCB3 b3VsZCBiZSB2ZXJ5CmhlbHBmdWwuCgo+IAo+IEFzIHRoaXMgcGF0Y2ggc2VyaWVzIGNoYW5nZXMg d2hlbiBhcmNoX3JlZ2lzdGVyX2NwdSgpIGdldHMgY2FsbGVkIChhcwo+IGRlc2NyaWJlZCBpbiB0 aGUgcGFyYWdyYXBoIGFib3ZlKSB3ZSBvYnZpb3VzbHkgbmVlZCB0byBwcmVzZXJ2ZSB0aGUKPiBf ZXhpc3RpbmdfIGJlaGF2aW91ciB0byBhdm9pZCBjYXVzaW5nIHJlZ3Jlc3Npb25zLiBTbywgaWYg Y2hhbmdpbmcgdGhlCj4ga2VybmVsIGNhdXNlcyB1c2VyIHZpc2libGUgcmVncmVzc2lvbnMgKGUu Zy4gc3lzZnMgZW50cmllcyB0bwo+IGRpc2FwcGVhcikgdGhlbiBpdCBvYnZpb3VzbHkgX2lzXyBh IGtlcm5lbCBwcm9ibGVtIHRoYXQgbmVlZHMgdG8gYmUKPiBzb2x2ZWQuCj4gCj4gV2UgY2FuJ3Qg c2F5ICJ3ZWxsIGZpeCBRRU1VIHRoZW4iIHdpdGhvdXQgaW52b2tpbmcgdGhlIHdyYXRoIG9mIExp bnVzLgoKT3ZlcmFsbCBJJ20gZmluZSB3aXRoIHRoZSBkZWZlbnNpdmUgbmF0dXJlIG9mIHRoaXMg cGF0Y2ggYXMgdGhlcmUKJ21pZ2h0JyBiZSBmaXJtd2FyZSBvdXQgdGhlcmUgd2l0aCB0aGlzIHBy b2JsZW0gLSBJIGp1c3QgY2FuJ3QgZXN0YWJsaXNoCnRoYXQgdGhlcmUgaXMhICBJZiBhbnlvbmUg ZWxzZSByZWNhbGxzIHRoZSBoaXN0b3J5IG9mIHRoaXMgdGhlbiBnaXZlCmEgc2hvdXQuICBJIHZh Z3VlbHkgd29uZGVyZWQgaWYgdGhpcyB3YXMgYW4gaWE2NCB0aGluZyBidXQgbm9wZSwgUUVNVQpu ZXZlciBnZW5lcmF0ZWQgdGFibGVzIGZvciBpYTY0IGJlZm9yZSBkcm9wcGluZyBzdXBwb3J0IGJh Y2sgaW4gUUVNVSAyLjExCgoKPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogSmFtZXMgTW9yc2UgPGph bWVzLm1vcnNlQGFybS5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxK b25hdGhhbi5DYW1lcm9uQGh1YXdlaS5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBHYXZpbiBTaGFu IDxnc2hhbkByZWRoYXQuY29tPgo+ID4gPiBUZXN0ZWQtYnk6IE1pZ3VlbCBMdWlzIDxtaWd1ZWwu bHVpc0BvcmFjbGUuY29tPgo+ID4gPiBUZXN0ZWQtYnk6IFZpc2hudSBQYWpqdXJpIDx2aXNobnVA b3MuYW1wZXJlY29tcHV0aW5nLmNvbT4KPiA+ID4gVGVzdGVkLWJ5OiBKaWFueW9uZyBXdSA8amlh bnlvbmcud3VAYXJtLmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogUnVzc2VsbCBLaW5nIChPcmFj bGUpIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51az4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJz L2FjcGkvYWNwaV9wcm9jZXNzb3IuYyB8IDE5ICsrKysrKysrKysrKysrKysrKysKPiA+ID4gIDEg ZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspCj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYyBiL2RyaXZlcnMvYWNwaS9hY3BpX3Byb2Nlc3Nv ci5jCj4gPiA+IGluZGV4IDZhNTQyZTBjZTM5Ni4uMDUxMWYyYmMxMGJjIDEwMDY0NAo+ID4gPiAt LS0gYS9kcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYwo+ID4gPiArKysgYi9kcml2ZXJzL2Fj cGkvYWNwaV9wcm9jZXNzb3IuYwo+ID4gPiBAQCAtNzkxLDYgKzc5MSwyNSBAQCB2b2lkIF9faW5p dCBhY3BpX3Byb2Nlc3Nvcl9pbml0KHZvaWQpCj4gPiA+ICAgICAgICAgYWNwaV9wY2NfY3B1ZnJl cV9pbml0KCk7Cj4gPiA+ICB9Cj4gPiA+Cj4gPiA+ICtzdGF0aWMgaW50IF9faW5pdCBhY3BpX3By b2Nlc3Nvcl9yZWdpc3Rlcl9taXNzaW5nX2NwdXModm9pZCkKPiA+ID4gK3sKPiA+ID4gKyAgICAg ICBpbnQgY3B1Owo+ID4gPiArCj4gPiA+ICsgICAgICAgaWYgKGFjcGlfZGlzYWJsZWQpCj4gPiA+ ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+ID4gKwo+ID4gPiArICAgICAgIGZvcl9lYWNo X29ubGluZV9jcHUoY3B1KSB7Cj4gPiA+ICsgICAgICAgICAgICAgICBpZiAoIWdldF9jcHVfZGV2 aWNlKGNwdSkpIHsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcHJfZXJyX29uY2UoRldf QlVHICJDUFUgJXUgaGFzIG5vIEFDUEkgbmFtZXNwYWNlIGRlc2NyaXB0aW9uIVxuIiwgY3B1KTsK PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYWRkX3RhaW50KFRBSU5UX0ZJUk1XQVJFX1dP UktBUk9VTkQsIExPQ0tERVBfU1RJTExfT0spOwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICBhcmNoX3JlZ2lzdGVyX2NwdShjcHUpOyAgCj4gPiAKPiA+IFdoaWNoIHBhcnQgb2YgdGhpcyBj b2RlIGlzIHJlbGF0ZWQgdG8gQUNQST8gIAo+IAo+IFRoYXQncyBhIGdvb2QgcXVlc3Rpb24sIGFu ZCBJIHN1c3BlY3QgaXQgd291bGQgYmUgbW9yZSBzdWl0ZWQgdG8gYmVpbmcKPiBwbGFjZWQgaW4g ZHJpdmVycy9iYXNlL2NwdS5jIGV4Y2VwdCBmb3IgdGhlIHByb2JsZW0gdGhhdCB0aGUgZXJyb3IK PiBtZXNzYWdlIHJlZmVycyB0byBBQ1BJLgo+IAo+IEFzIGxvbmcgYXMgd2Uga2VlcCB0aGUgYWNw aV9kaXNhYmxlZCB0ZXN0LCBJIGd1ZXNzIHRoYXQncyBmaW5lLgo+IGNwdV9kZXZfcmVnaXN0ZXJf Z2VuZXJpYygpIHRoZXJlIGFscmVhZHkgdGVzdHMgYWNwaV9kaXNhYmxlZC4KPiAKTW92aW5nIGl0 IHNlZW1zIGZpbmUgdG8gbWUuCgpKb25hdGhhbgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNj dkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtcmlzY3YK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B365DC47DD9 for ; Mon, 22 Jan 2024 16:03:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:CC:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QyzT1wTBUylaYZuc8kmtMDK5ZvPKGvWUBFev2Hxh1cw=; b=i2HnvTBaC9XlU7 85B7/rQAaq/YYFUZa5CWl7UXhTZsET05DeNMXMkqwKRNl6F0s7ySjykIbzXHe8rzSsdEB4TRYnZPW p0G1q77hWDVGDc6UryvKcdlDRAfrKnSoLE4QWhl54OCV8v8UZYQf/Iat53JUkQ+e3UnxNa8/I1YrX fHBJ83O13L8XWPwHswADVUBNn3rxMqCQStGzwyg/FuNqNzKgdhp2u6d7H/Fc/aJyr4qM1SGVPNKkD SJ6rUk7MLklTGJbCBmzppobzifAeVx5xtskBqFuMoI72weSaL/Xzm4kVq3iMlR4WdRjakifFJ5bC8 kx0+A3wmRUxZp0mH7bOg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rRwl1-00CrDy-0V; Mon, 22 Jan 2024 16:02:43 +0000 Received: from frasgout.his.huawei.com ([185.176.79.56]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rRwkx-00CrBQ-2W; Mon, 22 Jan 2024 16:02:42 +0000 Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4TJZg429vPz6K6FL; Tue, 23 Jan 2024 00:00:00 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 89AC3140B2F; Tue, 23 Jan 2024 00:02:28 +0800 (CST) Received: from localhost (10.202.227.76) by lhrpeml500005.china.huawei.com (7.191.163.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Mon, 22 Jan 2024 16:02:27 +0000 Date: Mon, 22 Jan 2024 16:02:27 +0000 From: Jonathan Cameron To: "Russell King (Oracle)" CC: "Rafael J. Wysocki" , , , , , , , , , , , , , , , Salil Mehta , Jean-Philippe Brucker , , , James Morse Subject: Re: [PATCH RFC v3 03/21] ACPI: processor: Register CPUs that are online, but not described in the DSDT Message-ID: <20240122160227.00002d83@Huawei.com> In-Reply-To: References: Organization: Huawei Technologies Research and Development (UK) Ltd. X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) MIME-Version: 1.0 X-Originating-IP: [10.202.227.76] X-ClientProxiedBy: lhrpeml100005.china.huawei.com (7.191.160.25) To lhrpeml500005.china.huawei.com (7.191.163.240) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240122_080240_123227_7850386B X-CRM114-Status: GOOD ( 42.85 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gTW9uLCAxNSBKYW4gMjAyNCAxMTowNjoyOSArMDAwMAoiUnVzc2VsbCBLaW5nIChPcmFjbGUp IiA8bGludXhAYXJtbGludXgub3JnLnVrPiB3cm90ZToKCj4gT24gTW9uLCBEZWMgMTgsIDIwMjMg YXQgMDk6MjI6MDNQTSArMDEwMCwgUmFmYWVsIEouIFd5c29ja2kgd3JvdGU6Cj4gPiBPbiBXZWQs IERlYyAxMywgMjAyMyBhdCAxOjQ54oCvUE0gUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxp bnV4Lm9yZy51az4gd3JvdGU6ICAKPiA+ID4KPiA+ID4gRnJvbTogSmFtZXMgTW9yc2UgPGphbWVz Lm1vcnNlQGFybS5jb20+Cj4gPiA+Cj4gPiA+IEFDUEkgaGFzIHR3byBkZXNjcmlwdGlvbnMgb2Yg Q1BVcywgb25lIGluIHRoZSBNQURUL0FQSUMgdGFibGUsIHRoZSBvdGhlcgo+ID4gPiBpbiB0aGUg RFNEVC4gQm90aCBhcmUgcmVxdWlyZWQuIChBQ1BJIDYuNSdzIDguNCAiRGVjbGFyaW5nIFByb2Nl c3NvcnMiCj4gPiA+IHNheXMgIkVhY2ggcHJvY2Vzc29yIGluIHRoZSBzeXN0ZW0gbXVzdCBiZSBk ZWNsYXJlZCBpbiB0aGUgQUNQSQo+ID4gPiBuYW1lc3BhY2UiKS4gSGF2aW5nIHR3byBkZXNjcmlw dGlvbnMgYWxsb3dzIGZpcm13YXJlIGF1dGhvcnMgdG8gZ2V0Cj4gPiA+IHRoaXMgd3JvbmcuCj4g PiA+Cj4gPiA+IElmIENQVXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgTUFEVC9BUElDLCB0aGV5IHdp bGwgYmUgYnJvdWdodCBvbmxpbmUKPiA+ID4gZWFybHkgZHVyaW5nIGJvb3QuIE9uY2UgdGhlIHJl Z2lzdGVyX2NwdSgpIGNhbGxzIGFyZSBtb3ZlZCB0byBBQ1BJLAo+ID4gPiB0aGV5IHdpbGwgYmUg YmFzZWQgb24gdGhlIERTRFQgZGVzY3JpcHRpb24gb2YgdGhlIENQVXMuIFdoZW4gQ1BVcyBhcmUK PiA+ID4gbWlzc2luZyBmcm9tIHRoZSBEU0RUIGRlc2NyaXB0aW9uLCB0aGV5IHdpbGwgZW5kIHVw IG9ubGluZSwgYnV0IG5vdAo+ID4gPiByZWdpc3RlcmVkLgo+ID4gPgo+ID4gPiBBZGQgYSBoZWxw ZXIgdGhhdCBydW5zIGFmdGVyIGFjcGlfaW5pdCgpIGhhcyBjb21wbGV0ZWQgdG8gcmVnaXN0ZXIK PiA+ID4gQ1BVcyB0aGF0IGFyZSBvbmxpbmUsIGJ1dCB3ZXJlbid0IGZvdW5kIGluIHRoZSBEU0RU LiBBbnkgQ1BVIHRoYXQKPiA+ID4gaXMgcmVnaXN0ZXJlZCBieSB0aGlzIGNvZGUgdHJpZ2dlcnMg YSBmaXJtd2FyZS1idWcgd2FybmluZyBhbmQga2VybmVsCj4gPiA+IHRhaW50Lgo+ID4gPgo+ID4g PiBRZW11IFRDRyBvbmx5IGRlc2NyaWJlcyB0aGUgZmlyc3QgQ1BVIGluIHRoZSBEU0RULCB1bmxl c3MgY3B1LWhvdHBsdWcKPiA+ID4gaXMgY29uZmlndXJlZC4gIAo+ID4gCj4gPiBTbyB3aHkgaXMg dGhpcyBhIGtlcm5lbCBwcm9ibGVtPyAgCj4gCj4gU28gd2hhdCBhcmUgeW91IHByb3Bvc2luZyBz aG91bGQgYmUgdGhlIGJlaGF2aW91ciBoZXJlPyBXaGF0IHRoaXMKPiBzdGF0ZW1lbnQgc2VlbXMg dG8gYmUgc2F5aW5nIGlzIHRoYXQgUUVNVSBhcyBpdCBleGlzdHMgdG9kYXkgb25seQo+IGRlc2Ny aWJlcyB0aGUgZmlyc3QgQ1BVIGluIERTRFQuCgpUaGlzIGNvbmZ1c2VzIG1lIHNvbWV3aGF0LCBi ZWNhdXNlIEknbSBmYXIgZnJvbSBzdXJlIHdoaWNoIG1hY2hpbmVzIHRoaXMKaXMgdHJ1ZSBmb3Ig aW4gUUVNVS4gIEknbSBndWVzc2luZyBpdCdzIGEgbGVnYWN5IHRoaW5nIHdpdGgKc29tZSBvbGQg ZGlzdHJvIHZlcnNpb24gb2YgUUVNVSAtIHNvIHdlJ2xsIGhhdmUgdG8gcGFwZXIgb3ZlciBpdCBh bnl3YXkKYnV0IGZvciBjdXJyZW50IFFFTVUgSSdtIG5vdCBzdXJlIGl0J3MgdHJ1ZS4KCkhlbHBm dWxseSB0aGVyZSBhcmUgYSBidW5jaCBvZiBBQ1BJIHRhYmxlIHRlc3RzIHNvIEkndmUgYmVlbiBj aGVja2luZwp0aHJvdWdoIGFsbCB0aGUgbXVsdGkgQ1BVIGNhc2VzLgoKQ1BVIGhvdHBsdWcgbm90 IGVuYWJsZWQuCnBjL0RTRFQuZGltbXB4bSAgLSA0eCBQcm9jZXNzb3IgZW50cmllcy4gIC1zbXAg NApwYy9EU0RULmFjcGlobWF0IC0gMnggUHJvY2Vzc29yIGVudHJpZXMuICAtc21wIDIKcTM1L0RT RFQuYWNwaWhtYXQgLSAyeCBQcm9jZXNzb3IgZW50cmllcy4gLXNtcCAyCnZpcnQvRFNEVC5hY3Bp aG1hdHZpcnQgLSA0eCBBQ1BJMDAwNyBlbnRyaWVzIC1zbXAgNApxMzUvRFNEVC5hY3BpaG1hdC1u b2luaXRpYXRvciAtIDQgeCBQcm9jZXNzb3IgKCkgZW50cmllcyAtc21wIDQgCnZpcnQvRFNEVC50 b3BvbG9neSAtIDh4IEFDUEkwMDA3IGVudHJpZXMKCkkndmUgYWxzbyBsb29rZWQgYXQgdGhlIGNv ZGUgYW5kIHdlIGhhdmUgdmFyaW91cyB0eXBlcyBvZgpDUFUgaG90cGx1ZyBvbiB4ODYgYnV0IHRo ZXkgYWxsIGJ1aWxkIGFwcHJvcHJpYXRlIG51bWJlcnMgb2YKUHJvY2Vzc29yKCkgZW50cmllcyBp biBEU0RULgpBcm0gbGlrZXdpc2Ugc2VlbXMgdG8gYnVpbGQgdGhlIHJpZ2h0IG51bWJlciBvZiBB Q1BJMDAwNyBlbnRyaWVzCihhbmQgZG9lc24ndCB5ZXQgaGF2ZSBDUFUgSFAgc3VwcG9ydCkuCgpJ ZiBhbnlvbmUgY2FuIGFkZCBhIHJlZmVyZW5jZSBvbiB3aHkgdGhpcyBpcyBuZWVkZWQgdGhhdCB3 b3VsZCBiZSB2ZXJ5CmhlbHBmdWwuCgo+IAo+IEFzIHRoaXMgcGF0Y2ggc2VyaWVzIGNoYW5nZXMg d2hlbiBhcmNoX3JlZ2lzdGVyX2NwdSgpIGdldHMgY2FsbGVkIChhcwo+IGRlc2NyaWJlZCBpbiB0 aGUgcGFyYWdyYXBoIGFib3ZlKSB3ZSBvYnZpb3VzbHkgbmVlZCB0byBwcmVzZXJ2ZSB0aGUKPiBf ZXhpc3RpbmdfIGJlaGF2aW91ciB0byBhdm9pZCBjYXVzaW5nIHJlZ3Jlc3Npb25zLiBTbywgaWYg Y2hhbmdpbmcgdGhlCj4ga2VybmVsIGNhdXNlcyB1c2VyIHZpc2libGUgcmVncmVzc2lvbnMgKGUu Zy4gc3lzZnMgZW50cmllcyB0bwo+IGRpc2FwcGVhcikgdGhlbiBpdCBvYnZpb3VzbHkgX2lzXyBh IGtlcm5lbCBwcm9ibGVtIHRoYXQgbmVlZHMgdG8gYmUKPiBzb2x2ZWQuCj4gCj4gV2UgY2FuJ3Qg c2F5ICJ3ZWxsIGZpeCBRRU1VIHRoZW4iIHdpdGhvdXQgaW52b2tpbmcgdGhlIHdyYXRoIG9mIExp bnVzLgoKT3ZlcmFsbCBJJ20gZmluZSB3aXRoIHRoZSBkZWZlbnNpdmUgbmF0dXJlIG9mIHRoaXMg cGF0Y2ggYXMgdGhlcmUKJ21pZ2h0JyBiZSBmaXJtd2FyZSBvdXQgdGhlcmUgd2l0aCB0aGlzIHBy b2JsZW0gLSBJIGp1c3QgY2FuJ3QgZXN0YWJsaXNoCnRoYXQgdGhlcmUgaXMhICBJZiBhbnlvbmUg ZWxzZSByZWNhbGxzIHRoZSBoaXN0b3J5IG9mIHRoaXMgdGhlbiBnaXZlCmEgc2hvdXQuICBJIHZh Z3VlbHkgd29uZGVyZWQgaWYgdGhpcyB3YXMgYW4gaWE2NCB0aGluZyBidXQgbm9wZSwgUUVNVQpu ZXZlciBnZW5lcmF0ZWQgdGFibGVzIGZvciBpYTY0IGJlZm9yZSBkcm9wcGluZyBzdXBwb3J0IGJh Y2sgaW4gUUVNVSAyLjExCgoKPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogSmFtZXMgTW9yc2UgPGph bWVzLm1vcnNlQGFybS5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxK b25hdGhhbi5DYW1lcm9uQGh1YXdlaS5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBHYXZpbiBTaGFu IDxnc2hhbkByZWRoYXQuY29tPgo+ID4gPiBUZXN0ZWQtYnk6IE1pZ3VlbCBMdWlzIDxtaWd1ZWwu bHVpc0BvcmFjbGUuY29tPgo+ID4gPiBUZXN0ZWQtYnk6IFZpc2hudSBQYWpqdXJpIDx2aXNobnVA b3MuYW1wZXJlY29tcHV0aW5nLmNvbT4KPiA+ID4gVGVzdGVkLWJ5OiBKaWFueW9uZyBXdSA8amlh bnlvbmcud3VAYXJtLmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogUnVzc2VsbCBLaW5nIChPcmFj bGUpIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51az4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJz L2FjcGkvYWNwaV9wcm9jZXNzb3IuYyB8IDE5ICsrKysrKysrKysrKysrKysrKysKPiA+ID4gIDEg ZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspCj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYyBiL2RyaXZlcnMvYWNwaS9hY3BpX3Byb2Nlc3Nv ci5jCj4gPiA+IGluZGV4IDZhNTQyZTBjZTM5Ni4uMDUxMWYyYmMxMGJjIDEwMDY0NAo+ID4gPiAt LS0gYS9kcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYwo+ID4gPiArKysgYi9kcml2ZXJzL2Fj cGkvYWNwaV9wcm9jZXNzb3IuYwo+ID4gPiBAQCAtNzkxLDYgKzc5MSwyNSBAQCB2b2lkIF9faW5p dCBhY3BpX3Byb2Nlc3Nvcl9pbml0KHZvaWQpCj4gPiA+ICAgICAgICAgYWNwaV9wY2NfY3B1ZnJl cV9pbml0KCk7Cj4gPiA+ICB9Cj4gPiA+Cj4gPiA+ICtzdGF0aWMgaW50IF9faW5pdCBhY3BpX3By b2Nlc3Nvcl9yZWdpc3Rlcl9taXNzaW5nX2NwdXModm9pZCkKPiA+ID4gK3sKPiA+ID4gKyAgICAg ICBpbnQgY3B1Owo+ID4gPiArCj4gPiA+ICsgICAgICAgaWYgKGFjcGlfZGlzYWJsZWQpCj4gPiA+ ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+ID4gKwo+ID4gPiArICAgICAgIGZvcl9lYWNo X29ubGluZV9jcHUoY3B1KSB7Cj4gPiA+ICsgICAgICAgICAgICAgICBpZiAoIWdldF9jcHVfZGV2 aWNlKGNwdSkpIHsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcHJfZXJyX29uY2UoRldf QlVHICJDUFUgJXUgaGFzIG5vIEFDUEkgbmFtZXNwYWNlIGRlc2NyaXB0aW9uIVxuIiwgY3B1KTsK PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYWRkX3RhaW50KFRBSU5UX0ZJUk1XQVJFX1dP UktBUk9VTkQsIExPQ0tERVBfU1RJTExfT0spOwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICBhcmNoX3JlZ2lzdGVyX2NwdShjcHUpOyAgCj4gPiAKPiA+IFdoaWNoIHBhcnQgb2YgdGhpcyBj b2RlIGlzIHJlbGF0ZWQgdG8gQUNQST8gIAo+IAo+IFRoYXQncyBhIGdvb2QgcXVlc3Rpb24sIGFu ZCBJIHN1c3BlY3QgaXQgd291bGQgYmUgbW9yZSBzdWl0ZWQgdG8gYmVpbmcKPiBwbGFjZWQgaW4g ZHJpdmVycy9iYXNlL2NwdS5jIGV4Y2VwdCBmb3IgdGhlIHByb2JsZW0gdGhhdCB0aGUgZXJyb3IK PiBtZXNzYWdlIHJlZmVycyB0byBBQ1BJLgo+IAo+IEFzIGxvbmcgYXMgd2Uga2VlcCB0aGUgYWNw aV9kaXNhYmxlZCB0ZXN0LCBJIGd1ZXNzIHRoYXQncyBmaW5lLgo+IGNwdV9kZXZfcmVnaXN0ZXJf Z2VuZXJpYygpIHRoZXJlIGFscmVhZHkgdGVzdHMgYWNwaV9kaXNhYmxlZC4KPiAKTW92aW5nIGl0 IHNlZW1zIGZpbmUgdG8gbWUuCgpKb25hdGhhbgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK