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 135B953806 for ; Thu, 11 Jan 2024 17:59:16 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 9299660A91 for ; Thu, 11 Jan 2024 17:59:16 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 9299660A91 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 EgvVAlyrdhAm for ; Thu, 11 Jan 2024 17:59:14 +0000 (UTC) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by smtp3.osuosl.org (Postfix) with ESMTPS id 67E6560A61 for ; Thu, 11 Jan 2024 17:59:14 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 67E6560A61 Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4T9snT06zPz6J6XT; Fri, 12 Jan 2024 01:57:17 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 48896140595; Fri, 12 Jan 2024 01:59:10 +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; Thu, 11 Jan 2024 17:59:09 +0000 Date: Thu, 11 Jan 2024 17:59:08 +0000 From: Jonathan Cameron To: "Rafael J. Wysocki" CC: Russell King , , , , , , , , , , , , , , , Salil Mehta , Jean-Philippe Brucker , , , James Morse Subject: Re: [PATCH RFC v3 02/21] ACPI: processor: Add support for processors described as container packages Message-ID: <20240111175908.00002f46@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: lhrpeml100001.china.huawei.com (7.191.160.183) To lhrpeml500005.china.huawei.com (7.191.163.240) On Mon, 18 Dec 2023 21:17:34 +0100 "Rafael J. Wysocki" wrote: > On Wed, Dec 13, 2023 at 1:49=E2=80=AFPM Russell King wrote: > > > > From: James Morse Done some digging + machine faking. This is mid stage results at best. Summary: I don't think this patch is necessary. If anyone happens to be in the mood for testing on various platforms, can you drop this patch and see if everything still works. With this patch in place, and a processor container containing Processor() objects acpi_process_add is called twice - once via the path added here and once via acpi_bus_attach etc. Maybe it's a left over from earlier approaches to some of this? > > > > ACPI has two ways of describing processors in the DSDT. From ACPI v6.5, > > 5.2.12: > > > > "Starting with ACPI Specification 6.3, the use of the Processor() object > > was deprecated. Only legacy systems should continue with this usage. On > > the Itanium architecture only, a _UID is provided for the Processor() > > that is a string object. This usage of _UID is also deprecated since it > > can preclude an OSPM from being able to match a processor to a > > non-enumerable device, such as those defined in the MADT. From ACPI > > Specification 6.3 onward, all processor objects for all architectures > > except Itanium must now use Device() objects with an _HID of ACPI0007, > > and use only integer _UID values." Well, we definitely don't care about Itanium any more so most of this is ir= relevant and can be scrubbed going forwards! Otherwise I think we only care about Device() and Processor() being two thi= ngs that might be seen to describe CPUs and they may or may not be in a Processor container. > > > > Also see https://uefi.org/specs/ACPI/6.5/08_Processor_Configuration_and= _Control.html#declaring-processors > > > > Duplicate descriptions are not allowed, the ACPI processor driver alrea= dy > > parses the UID from both devices and containers. acpi_processor_get_inf= o() > > returns an error if the UID exists twice in the DSDT. =20 >=20 > I'm not really sure how the above is related to the actual patch. This is nasty. They key is that with this patch in place, we are actually adding them twice if they are are instantiated via Processor() in a process= or container. So this reference is explaining why we don't get two lots regis= tered. This patch should call out explicitly why we want to do it twice (I'm assuming on a temporary baseis). >=20 > > The missing probe for CPUs described as packages =20 >=20 > It is unclear what exactly is meant by "CPUs described as packages". >=20 > From the patch, it looks like those would be Processor() objects > defined under a processor container device. Agreed. >=20 > > creates a problem for > > moving the cpu_register() calls into the acpi_processor driver, as CPUs > > described like this don't get registered, leading to errors from other > > subsystems when they try to add new sysfs entries to the CPU node. > > (e.g. topology_sysfs_init()'s use of topology_add_dev() via cpuhp) > > > > To fix this, parse the processor container and call acpi_processor_add() > > for each processor that is discovered like this. =20 >=20 > Discovered like what? Doesn't add any info. "To fix this, parse the processor container and call acpi_processor_add() f= or each processor found." >=20 > > The processor container > > handler is added with acpi_scan_add_handler(), so no detach call will > > arrive. =20 >=20 > The above requires clarification too. >=20 > > Qemu TCG describes CPUs using processor devices in a processor containe= r. Hmm. This isn't so clear cut. For ARM it does it nicely with ACPI0007 etc. For x86 it is still Processor() under some circumstances... (why exactly doesn't matter here - it's all legacy mess). To poke this I hacked the arm virt qemu platform to use Processor() in a container so I could like for like comparisons. The logic that injects a HID into Processor() objects means the existing handlers get fired without this patch. I'm going to assume that might not be the case later in this patch set, but I've not found where it is broken yet :( > > For more information, see build_cpus_aml() in Qemu hw/acpi/cpu.c and > > https://uefi.org/specs/ACPI/6.5/08_Processor_Configuration_and_Control.= html#processor-container-device > > > > Signed-off-by: James Morse > > Tested-by: Miguel Luis > > Tested-by: Vishnu Pajjuri > > Tested-by: Jianyong Wu > > --- > > Outstanding comments: > > https://lore.kernel.org/r/20230914145353.000072e2@Huawei.com > > https://lore.kernel.org/r/50571c2f-aa3c-baeb-3add-cd59e0eddc02@redhat.= com > > --- > > drivers/acpi/acpi_processor.c | 22 ++++++++++++++++++++++ > > 1 file changed, 22 insertions(+) > > > > diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_processo= r.c > > index 4fe2ef54088c..6a542e0ce396 100644 > > --- a/drivers/acpi/acpi_processor.c > > +++ b/drivers/acpi/acpi_processor.c > > @@ -626,9 +626,31 @@ static struct acpi_scan_handler processor_handler = =3D { > > }, > > }; > > > > +static acpi_status acpi_processor_container_walk(acpi_handle handle, > > + u32 lvl, > > + void *context, > > + void **rv) > > +{ > > + struct acpi_device *adev; > > + acpi_status status; > > + > > + adev =3D acpi_get_acpi_dev(handle); > > + if (!adev) > > + return AE_ERROR; =20 >=20 > Why is the reference counting needed here? >=20 > Wouldn't acpi_fetch_acpi_dev() suffice? You are the expert here :) I can't see why the reference is needed so would be fine with dropping it. >=20 > Also, should the walk really be terminated on the first error? If this patch makes sense things will probably blow up later but no worse than before so sure, keep going. >=20 > > + > > + status =3D acpi_processor_add(adev, &processor_device_ids[0]); > > + acpi_put_acpi_dev(adev); > > + > > + return status; > > +} > > + > > static int acpi_processor_container_attach(struct acpi_device *dev, > > const struct acpi_device_id = *id) > > { > > + acpi_walk_namespace(ACPI_TYPE_PROCESSOR, dev->handle, > > + ACPI_UINT32_MAX, acpi_processor_container_w= alk, > > + NULL, NULL, NULL); =20 >=20 > This covers processor objects only, so why is this not needed for > processor devices defined under a processor container object? Both cases are covered by the existing handling without this. I'm far from clear on why we need this patch. Presumably it's the reference in the description on it breaking for Processor Package containing Processor() objects that matters after a move... I'm struggling to find that move though! >=20 > It is not obvious, so it would be nice to add a comment explaining the > difference. >=20 > > + > > return 1; > > } > > > > -- =20 >=20 > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel 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 AB18CC47258 for ; Thu, 11 Jan 2024 17:59:34 +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=QnT2PA1T46feoZ/F81DxtHX3g1ksm9tKObMT3seiRQ0=; b=Daf8CQcxbPJElh VT6BsQRMohzx33AcyKcH+BMt/3s6NZK4MSl7hQi5as5tcXwH6LHMrxQBt4HHb2gunIHLyf7ne8I9S R8DkDWg/wQYP0BXRd1sFDCOp94lvSHC7iC7im3Q/dD07Dq2Wi6gTPcAxY9u3PgEot+IiaK+ZPUqXl P5mlvf1bo4QEmn39BeY26PrQzLdXKhVQwIu1Sw5cCP5DHIIopONzUzJCbKOYwT/SgmtJNhyo+0eL7 NlK8w2ZhvOYKITVObEHU1ezReQ2QS6Shae4rb+6nU+oGXZsKvL1kY730+MobkfO9mCXYwrIugPZY+ pwAlMLM+EJUtb7/uOpXQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rNzKt-000mMX-2w; Thu, 11 Jan 2024 17:59:23 +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 1rNzKo-000mKm-2B; Thu, 11 Jan 2024 17:59:22 +0000 Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4T9snT06zPz6J6XT; Fri, 12 Jan 2024 01:57:17 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 48896140595; Fri, 12 Jan 2024 01:59:10 +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; Thu, 11 Jan 2024 17:59:09 +0000 Date: Thu, 11 Jan 2024 17:59:08 +0000 From: Jonathan Cameron To: "Rafael J. Wysocki" CC: Russell King , , , , , , , , , , , , , , , Salil Mehta , Jean-Philippe Brucker , , , James Morse Subject: Re: [PATCH RFC v3 02/21] ACPI: processor: Add support for processors described as container packages Message-ID: <20240111175908.00002f46@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: lhrpeml100001.china.huawei.com (7.191.160.183) 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-20240111_095919_676249_4A480619 X-CRM114-Status: GOOD ( 51.97 ) 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 T24gTW9uLCAxOCBEZWMgMjAyMyAyMToxNzozNCArMDEwMAoiUmFmYWVsIEouIFd5c29ja2kiIDxy YWZhZWxAa2VybmVsLm9yZz4gd3JvdGU6Cgo+IE9uIFdlZCwgRGVjIDEzLCAyMDIzIGF0IDE6NDni gK9QTSBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPiB3cm90ZToKPiA+ Cj4gPiBGcm9tOiBKYW1lcyBNb3JzZSA8amFtZXMubW9yc2VAYXJtLmNvbT4KCkRvbmUgc29tZSBk aWdnaW5nICsgbWFjaGluZSBmYWtpbmcuICBUaGlzIGlzIG1pZCBzdGFnZSByZXN1bHRzIGF0IGJl c3QuCgpTdW1tYXJ5OiBJIGRvbid0IHRoaW5rIHRoaXMgcGF0Y2ggaXMgbmVjZXNzYXJ5LiAgSWYg YW55b25lIGhhcHBlbnMgdG8gYmUgaW4KdGhlIG1vb2QgZm9yIHRlc3Rpbmcgb24gdmFyaW91cyBw bGF0Zm9ybXMsIGNhbiB5b3UgZHJvcCB0aGlzIHBhdGNoIGFuZApzZWUgaWYgZXZlcnl0aGluZyBz dGlsbCB3b3Jrcy4KCldpdGggdGhpcyBwYXRjaCBpbiBwbGFjZSwgYW5kIGEgcHJvY2Vzc29yIGNv bnRhaW5lciBjb250YWluaW5nClByb2Nlc3NvcigpIG9iamVjdHMgYWNwaV9wcm9jZXNzX2FkZCBp cyBjYWxsZWQgdHdpY2UgLSBvbmNlIHZpYQp0aGUgcGF0aCBhZGRlZCBoZXJlIGFuZCBvbmNlIHZp YSBhY3BpX2J1c19hdHRhY2ggZXRjLgoKTWF5YmUgaXQncyBhIGxlZnQgb3ZlciBmcm9tIGVhcmxp ZXIgYXBwcm9hY2hlcyB0byBzb21lIG9mIHRoaXM/CgoKPiA+Cj4gPiBBQ1BJIGhhcyB0d28gd2F5 cyBvZiBkZXNjcmliaW5nIHByb2Nlc3NvcnMgaW4gdGhlIERTRFQuIEZyb20gQUNQSSB2Ni41LAo+ ID4gNS4yLjEyOgo+ID4KPiA+ICJTdGFydGluZyB3aXRoIEFDUEkgU3BlY2lmaWNhdGlvbiA2LjMs IHRoZSB1c2Ugb2YgdGhlIFByb2Nlc3NvcigpIG9iamVjdAo+ID4gd2FzIGRlcHJlY2F0ZWQuIE9u bHkgbGVnYWN5IHN5c3RlbXMgc2hvdWxkIGNvbnRpbnVlIHdpdGggdGhpcyB1c2FnZS4gT24KPiA+ IHRoZSBJdGFuaXVtIGFyY2hpdGVjdHVyZSBvbmx5LCBhIF9VSUQgaXMgcHJvdmlkZWQgZm9yIHRo ZSBQcm9jZXNzb3IoKQo+ID4gdGhhdCBpcyBhIHN0cmluZyBvYmplY3QuIFRoaXMgdXNhZ2Ugb2Yg X1VJRCBpcyBhbHNvIGRlcHJlY2F0ZWQgc2luY2UgaXQKPiA+IGNhbiBwcmVjbHVkZSBhbiBPU1BN IGZyb20gYmVpbmcgYWJsZSB0byBtYXRjaCBhIHByb2Nlc3NvciB0byBhCj4gPiBub24tZW51bWVy YWJsZSBkZXZpY2UsIHN1Y2ggYXMgdGhvc2UgZGVmaW5lZCBpbiB0aGUgTUFEVC4gRnJvbSBBQ1BJ Cj4gPiBTcGVjaWZpY2F0aW9uIDYuMyBvbndhcmQsIGFsbCBwcm9jZXNzb3Igb2JqZWN0cyBmb3Ig YWxsIGFyY2hpdGVjdHVyZXMKPiA+IGV4Y2VwdCBJdGFuaXVtIG11c3Qgbm93IHVzZSBEZXZpY2Uo KSBvYmplY3RzIHdpdGggYW4gX0hJRCBvZiBBQ1BJMDAwNywKPiA+IGFuZCB1c2Ugb25seSBpbnRl Z2VyIF9VSUQgdmFsdWVzLiIKCldlbGwsIHdlIGRlZmluaXRlbHkgZG9uJ3QgY2FyZSBhYm91dCBJ dGFuaXVtIGFueSBtb3JlIHNvIG1vc3Qgb2YgdGhpcyBpcyBpcnJlbGV2YW50CmFuZCBjYW4gYmUg c2NydWJiZWQgZ29pbmcgZm9yd2FyZHMhCgpPdGhlcndpc2UgSSB0aGluayB3ZSBvbmx5IGNhcmUg YWJvdXQgRGV2aWNlKCkgYW5kIFByb2Nlc3NvcigpIGJlaW5nIHR3byB0aGluZ3MKdGhhdCBtaWdo dCBiZSBzZWVuIHRvIGRlc2NyaWJlIENQVXMgYW5kIHRoZXkgbWF5IG9yIG1heSBub3QgYmUgaW4g YQpQcm9jZXNzb3IgY29udGFpbmVyLgoKPiA+Cj4gPiBBbHNvIHNlZSBodHRwczovL3VlZmkub3Jn L3NwZWNzL0FDUEkvNi41LzA4X1Byb2Nlc3Nvcl9Db25maWd1cmF0aW9uX2FuZF9Db250cm9sLmh0 bWwjZGVjbGFyaW5nLXByb2Nlc3NvcnMKPiA+Cj4gPiBEdXBsaWNhdGUgZGVzY3JpcHRpb25zIGFy ZSBub3QgYWxsb3dlZCwgdGhlIEFDUEkgcHJvY2Vzc29yIGRyaXZlciBhbHJlYWR5Cj4gPiBwYXJz ZXMgdGhlIFVJRCBmcm9tIGJvdGggZGV2aWNlcyBhbmQgY29udGFpbmVycy4gYWNwaV9wcm9jZXNz b3JfZ2V0X2luZm8oKQo+ID4gcmV0dXJucyBhbiBlcnJvciBpZiB0aGUgVUlEIGV4aXN0cyB0d2lj ZSBpbiB0aGUgRFNEVC4gIAo+IAo+IEknbSBub3QgcmVhbGx5IHN1cmUgaG93IHRoZSBhYm92ZSBp cyByZWxhdGVkIHRvIHRoZSBhY3R1YWwgcGF0Y2guCgpUaGlzIGlzIG5hc3R5LiAgVGhleSBrZXkg aXMgdGhhdCB3aXRoIHRoaXMgcGF0Y2ggaW4gcGxhY2UsIHdlIGFyZSBhY3R1YWxseQphZGRpbmcg dGhlbSB0d2ljZSBpZiB0aGV5IGFyZSBhcmUgaW5zdGFudGlhdGVkIHZpYSBQcm9jZXNzb3IoKSBp biBhIHByb2Nlc3Nvcgpjb250YWluZXIuICBTbyB0aGlzIHJlZmVyZW5jZSBpcyBleHBsYWluaW5n IHdoeSB3ZSBkb24ndCBnZXQgdHdvIGxvdHMgcmVnaXN0ZXJlZC4KClRoaXMgcGF0Y2ggc2hvdWxk IGNhbGwgb3V0IGV4cGxpY2l0bHkgd2h5IHdlIHdhbnQgdG8gZG8gaXQgdHdpY2UKKEknbSBhc3N1 bWluZyBvbiBhIHRlbXBvcmFyeSBiYXNlaXMpLgoKPiAKPiA+IFRoZSBtaXNzaW5nIHByb2JlIGZv ciBDUFVzIGRlc2NyaWJlZCBhcyBwYWNrYWdlcyAgCj4gCj4gSXQgaXMgdW5jbGVhciB3aGF0IGV4 YWN0bHkgaXMgbWVhbnQgYnkgIkNQVXMgZGVzY3JpYmVkIGFzIHBhY2thZ2VzIi4KPiAKPiBGcm9t IHRoZSBwYXRjaCwgaXQgbG9va3MgbGlrZSB0aG9zZSB3b3VsZCBiZSBQcm9jZXNzb3IoKSBvYmpl Y3RzCj4gZGVmaW5lZCB1bmRlciBhIHByb2Nlc3NvciBjb250YWluZXIgZGV2aWNlLgpBZ3JlZWQu Cgo+IAo+ID4gY3JlYXRlcyBhIHByb2JsZW0gZm9yCj4gPiBtb3ZpbmcgdGhlIGNwdV9yZWdpc3Rl cigpIGNhbGxzIGludG8gdGhlIGFjcGlfcHJvY2Vzc29yIGRyaXZlciwgYXMgQ1BVcwo+ID4gZGVz Y3JpYmVkIGxpa2UgdGhpcyBkb24ndCBnZXQgcmVnaXN0ZXJlZCwgbGVhZGluZyB0byBlcnJvcnMg ZnJvbSBvdGhlcgo+ID4gc3Vic3lzdGVtcyB3aGVuIHRoZXkgdHJ5IHRvIGFkZCBuZXcgc3lzZnMg ZW50cmllcyB0byB0aGUgQ1BVIG5vZGUuCj4gPiAoZS5nLiB0b3BvbG9neV9zeXNmc19pbml0KCkn cyB1c2Ugb2YgdG9wb2xvZ3lfYWRkX2RldigpIHZpYSBjcHVocCkKPiA+Cj4gPiBUbyBmaXggdGhp cywgcGFyc2UgdGhlIHByb2Nlc3NvciBjb250YWluZXIgYW5kIGNhbGwgYWNwaV9wcm9jZXNzb3Jf YWRkKCkKPiA+IGZvciBlYWNoIHByb2Nlc3NvciB0aGF0IGlzIGRpc2NvdmVyZWQgbGlrZSB0aGlz LiAgCj4gCj4gRGlzY292ZXJlZCBsaWtlIHdoYXQ/CkRvZXNuJ3QgYWRkIGFueSBpbmZvLgoKIlRv IGZpeCB0aGlzLCBwYXJzZSB0aGUgcHJvY2Vzc29yIGNvbnRhaW5lciBhbmQgY2FsbCBhY3BpX3By b2Nlc3Nvcl9hZGQoKSBmb3IKZWFjaCBwcm9jZXNzb3IgZm91bmQuIgoKPiAKPiA+IFRoZSBwcm9j ZXNzb3IgY29udGFpbmVyCj4gPiBoYW5kbGVyIGlzIGFkZGVkIHdpdGggYWNwaV9zY2FuX2FkZF9o YW5kbGVyKCksIHNvIG5vIGRldGFjaCBjYWxsIHdpbGwKPiA+IGFycml2ZS4gIAo+IAo+IFRoZSBh Ym92ZSByZXF1aXJlcyBjbGFyaWZpY2F0aW9uIHRvby4KPiAKPiA+IFFlbXUgVENHIGRlc2NyaWJl cyBDUFVzIHVzaW5nIHByb2Nlc3NvciBkZXZpY2VzIGluIGEgcHJvY2Vzc29yIGNvbnRhaW5lci4K CkhtbS4gVGhpcyBpc24ndCBzbyBjbGVhciBjdXQuCgpGb3IgQVJNIGl0IGRvZXMgaXQgbmljZWx5 IHdpdGggQUNQSTAwMDcgZXRjLiBGb3IgeDg2IGl0IGlzIHN0aWxsClByb2Nlc3NvcigpIHVuZGVy IHNvbWUgY2lyY3Vtc3RhbmNlcy4uLiAod2h5IGV4YWN0bHkgZG9lc24ndCBtYXR0ZXIgaGVyZQot IGl0J3MgYWxsIGxlZ2FjeSBtZXNzKS4KClRvIHBva2UgdGhpcyBJIGhhY2tlZCB0aGUgYXJtIHZp cnQgcWVtdSBwbGF0Zm9ybSB0byB1c2UgUHJvY2Vzc29yKCkgaW4gYQpjb250YWluZXIgc28gSSBj b3VsZCBsaWtlIGZvciBsaWtlIGNvbXBhcmlzb25zLgoKVGhlIGxvZ2ljIHRoYXQgaW5qZWN0cyBh IEhJRCBpbnRvIFByb2Nlc3NvcigpIG9iamVjdHMgbWVhbnMgdGhlIGV4aXN0aW5nCmhhbmRsZXJz IGdldCBmaXJlZCB3aXRob3V0IHRoaXMgcGF0Y2guICBJJ20gZ29pbmcgdG8gYXNzdW1lIHRoYXQg bWlnaHQKbm90IGJlIHRoZSBjYXNlIGxhdGVyIGluIHRoaXMgcGF0Y2ggc2V0LCBidXQgSSd2ZSBu b3QgZm91bmQgd2hlcmUgaXQKaXMgYnJva2VuIHlldCA6KAoKCj4gPiBGb3IgbW9yZSBpbmZvcm1h dGlvbiwgc2VlIGJ1aWxkX2NwdXNfYW1sKCkgaW4gUWVtdSBody9hY3BpL2NwdS5jIGFuZAo+ID4g aHR0cHM6Ly91ZWZpLm9yZy9zcGVjcy9BQ1BJLzYuNS8wOF9Qcm9jZXNzb3JfQ29uZmlndXJhdGlv bl9hbmRfQ29udHJvbC5odG1sI3Byb2Nlc3Nvci1jb250YWluZXItZGV2aWNlCj4gPgo+ID4gU2ln bmVkLW9mZi1ieTogSmFtZXMgTW9yc2UgPGphbWVzLm1vcnNlQGFybS5jb20+Cj4gPiBUZXN0ZWQt Ynk6IE1pZ3VlbCBMdWlzIDxtaWd1ZWwubHVpc0BvcmFjbGUuY29tPgo+ID4gVGVzdGVkLWJ5OiBW aXNobnUgUGFqanVyaSA8dmlzaG51QG9zLmFtcGVyZWNvbXB1dGluZy5jb20+Cj4gPiBUZXN0ZWQt Ynk6IEppYW55b25nIFd1IDxqaWFueW9uZy53dUBhcm0uY29tPgo+ID4gLS0tCj4gPiBPdXRzdGFu ZGluZyBjb21tZW50czoKPiA+ICBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjMwOTE0MTQ1 MzUzLjAwMDA3MmUyQEh1YXdlaS5jb20KPiA+ICBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzUw NTcxYzJmLWFhM2MtYmFlYi0zYWRkLWNkNTllMGVkZGMwMkByZWRoYXQuY29tCj4gPiAtLS0KPiA+ ICBkcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYyB8IDIyICsrKysrKysrKysrKysrKysrKysr KysKPiA+ICAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKQo+ID4KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYyBiL2RyaXZlcnMvYWNwaS9hY3BpX3By b2Nlc3Nvci5jCj4gPiBpbmRleCA0ZmUyZWY1NDA4OGMuLjZhNTQyZTBjZTM5NiAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvYWNwaS9hY3BpX3Byb2Nlc3Nvci5jCj4gPiArKysgYi9kcml2ZXJzL2Fj cGkvYWNwaV9wcm9jZXNzb3IuYwo+ID4gQEAgLTYyNiw5ICs2MjYsMzEgQEAgc3RhdGljIHN0cnVj dCBhY3BpX3NjYW5faGFuZGxlciBwcm9jZXNzb3JfaGFuZGxlciA9IHsKPiA+ICAgICAgICAgfSwK PiA+ICB9Owo+ID4KPiA+ICtzdGF0aWMgYWNwaV9zdGF0dXMgYWNwaV9wcm9jZXNzb3JfY29udGFp bmVyX3dhbGsoYWNwaV9oYW5kbGUgaGFuZGxlLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBsdmwsCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29udGV4dCwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqcnYpCj4gPiAr ewo+ID4gKyAgICAgICBzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXY7Cj4gPiArICAgICAgIGFjcGlf c3RhdHVzIHN0YXR1czsKPiA+ICsKPiA+ICsgICAgICAgYWRldiA9IGFjcGlfZ2V0X2FjcGlfZGV2 KGhhbmRsZSk7Cj4gPiArICAgICAgIGlmICghYWRldikKPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gQUVfRVJST1I7ICAKPiAKPiBXaHkgaXMgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBuZWVkZWQg aGVyZT8KPiAKPiBXb3VsZG4ndCBhY3BpX2ZldGNoX2FjcGlfZGV2KCkgc3VmZmljZT8KWW91IGFy ZSB0aGUgZXhwZXJ0IGhlcmUgOikgIEkgY2FuJ3Qgc2VlIHdoeSB0aGUgcmVmZXJlbmNlIGlzIG5l ZWRlZApzbyB3b3VsZCBiZSBmaW5lIHdpdGggZHJvcHBpbmcgaXQuCgo+IAo+IEFsc28sIHNob3Vs ZCB0aGUgd2FsayByZWFsbHkgYmUgdGVybWluYXRlZCBvbiB0aGUgZmlyc3QgZXJyb3I/CgpJZiB0 aGlzIHBhdGNoIG1ha2VzIHNlbnNlIHRoaW5ncyB3aWxsIHByb2JhYmx5IGJsb3cgdXAgbGF0ZXIg YnV0IG5vCndvcnNlIHRoYW4gYmVmb3JlIHNvIHN1cmUsIGtlZXAgZ29pbmcuCgo+IAo+ID4gKwo+ ID4gKyAgICAgICBzdGF0dXMgPSBhY3BpX3Byb2Nlc3Nvcl9hZGQoYWRldiwgJnByb2Nlc3Nvcl9k ZXZpY2VfaWRzWzBdKTsKPiA+ICsgICAgICAgYWNwaV9wdXRfYWNwaV9kZXYoYWRldik7Cj4gPiAr Cj4gPiArICAgICAgIHJldHVybiBzdGF0dXM7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQg YWNwaV9wcm9jZXNzb3JfY29udGFpbmVyX2F0dGFjaChzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldiwK PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgYWNwaV9kZXZpY2VfaWQgKmlkKQo+ID4gIHsKPiA+ICsgICAgICAgYWNwaV93YWxrX25hbWVz cGFjZShBQ1BJX1RZUEVfUFJPQ0VTU09SLCBkZXYtPmhhbmRsZSwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICBBQ1BJX1VJTlQzMl9NQVgsIGFjcGlfcHJvY2Vzc29yX2NvbnRhaW5lcl93 YWxrLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIE5VTEwpOyAg Cj4gCj4gVGhpcyBjb3ZlcnMgcHJvY2Vzc29yIG9iamVjdHMgb25seSwgc28gd2h5IGlzIHRoaXMg bm90IG5lZWRlZCBmb3IKPiBwcm9jZXNzb3IgZGV2aWNlcyBkZWZpbmVkIHVuZGVyIGEgcHJvY2Vz c29yIGNvbnRhaW5lciBvYmplY3Q/CgpCb3RoIGNhc2VzIGFyZSBjb3ZlcmVkIGJ5IHRoZSBleGlz dGluZyBoYW5kbGluZyB3aXRob3V0IHRoaXMuCgpJJ20gZmFyIGZyb20gY2xlYXIgb24gd2h5IHdl IG5lZWQgdGhpcyBwYXRjaC4gIFByZXN1bWFibHkKaXQncyB0aGUgcmVmZXJlbmNlIGluIHRoZSBk ZXNjcmlwdGlvbiBvbiBpdCBicmVha2luZyBmb3IKUHJvY2Vzc29yIFBhY2thZ2UgY29udGFpbmlu ZyBQcm9jZXNzb3IoKSBvYmplY3RzIHRoYXQgbWF0dGVycwphZnRlciBhIG1vdmUuLi4gSSdtIHN0 cnVnZ2xpbmcgdG8gZmluZCB0aGF0IG1vdmUgdGhvdWdoIQoKCgo+IAo+IEl0IGlzIG5vdCBvYnZp b3VzLCBzbyBpdCB3b3VsZCBiZSBuaWNlIHRvIGFkZCBhIGNvbW1lbnQgZXhwbGFpbmluZyB0aGUK PiBkaWZmZXJlbmNlLgo+IAo+ID4gKwo+ID4gICAgICAgICByZXR1cm4gMTsKPiA+ICB9Cj4gPgo+ ID4gLS0gIAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKPiBsaW51eC1hcm0ta2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LXJpc2N2Cg== 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 53A8FC47077 for ; Thu, 11 Jan 2024 17:59:54 +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=UmTd6jGNlxLOiDIqlrC3O7a0GnmxkkGAwukahjxt6Vo=; b=DoZ69l/H96qa/+ aAsUNQpaCVSxubS6Ae3fcJF+zSJc5oFZTqKsNekR1lWahlFIiQGdwz9Y3Kqc0wNztUVy9H5E9WtO1 toaHSC3OPUgZm05cRmskAT1YahiYydTDrYa6UD0wlVVCNmD76MOhG5ItQwigowF2chh1icc5r2O6r bCdqPJrTDWP9BF4GBNWl2SoXy+Q6gxNcUWxzEnjxQkrigrDLDFN/6KD7Qb1wVIhcLy+ANAsdljWqA XrKg5DRjoGXTSYxWCugN7lj10xrjKLrnnldrkyz8ikf7nMrG+47MxRLx63amBzIeq9iHa0PRCi0Om Zw2lr3UWV2Vc4YapttcQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rNzKt-000mMB-13; Thu, 11 Jan 2024 17:59:23 +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 1rNzKo-000mKm-2B; Thu, 11 Jan 2024 17:59:22 +0000 Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4T9snT06zPz6J6XT; Fri, 12 Jan 2024 01:57:17 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 48896140595; Fri, 12 Jan 2024 01:59:10 +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; Thu, 11 Jan 2024 17:59:09 +0000 Date: Thu, 11 Jan 2024 17:59:08 +0000 From: Jonathan Cameron To: "Rafael J. Wysocki" CC: Russell King , , , , , , , , , , , , , , , Salil Mehta , Jean-Philippe Brucker , , , James Morse Subject: Re: [PATCH RFC v3 02/21] ACPI: processor: Add support for processors described as container packages Message-ID: <20240111175908.00002f46@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: lhrpeml100001.china.huawei.com (7.191.160.183) 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-20240111_095919_676249_4A480619 X-CRM114-Status: GOOD ( 51.97 ) 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 T24gTW9uLCAxOCBEZWMgMjAyMyAyMToxNzozNCArMDEwMAoiUmFmYWVsIEouIFd5c29ja2kiIDxy YWZhZWxAa2VybmVsLm9yZz4gd3JvdGU6Cgo+IE9uIFdlZCwgRGVjIDEzLCAyMDIzIGF0IDE6NDni gK9QTSBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPiB3cm90ZToKPiA+ Cj4gPiBGcm9tOiBKYW1lcyBNb3JzZSA8amFtZXMubW9yc2VAYXJtLmNvbT4KCkRvbmUgc29tZSBk aWdnaW5nICsgbWFjaGluZSBmYWtpbmcuICBUaGlzIGlzIG1pZCBzdGFnZSByZXN1bHRzIGF0IGJl c3QuCgpTdW1tYXJ5OiBJIGRvbid0IHRoaW5rIHRoaXMgcGF0Y2ggaXMgbmVjZXNzYXJ5LiAgSWYg YW55b25lIGhhcHBlbnMgdG8gYmUgaW4KdGhlIG1vb2QgZm9yIHRlc3Rpbmcgb24gdmFyaW91cyBw bGF0Zm9ybXMsIGNhbiB5b3UgZHJvcCB0aGlzIHBhdGNoIGFuZApzZWUgaWYgZXZlcnl0aGluZyBz dGlsbCB3b3Jrcy4KCldpdGggdGhpcyBwYXRjaCBpbiBwbGFjZSwgYW5kIGEgcHJvY2Vzc29yIGNv bnRhaW5lciBjb250YWluaW5nClByb2Nlc3NvcigpIG9iamVjdHMgYWNwaV9wcm9jZXNzX2FkZCBp cyBjYWxsZWQgdHdpY2UgLSBvbmNlIHZpYQp0aGUgcGF0aCBhZGRlZCBoZXJlIGFuZCBvbmNlIHZp YSBhY3BpX2J1c19hdHRhY2ggZXRjLgoKTWF5YmUgaXQncyBhIGxlZnQgb3ZlciBmcm9tIGVhcmxp ZXIgYXBwcm9hY2hlcyB0byBzb21lIG9mIHRoaXM/CgoKPiA+Cj4gPiBBQ1BJIGhhcyB0d28gd2F5 cyBvZiBkZXNjcmliaW5nIHByb2Nlc3NvcnMgaW4gdGhlIERTRFQuIEZyb20gQUNQSSB2Ni41LAo+ ID4gNS4yLjEyOgo+ID4KPiA+ICJTdGFydGluZyB3aXRoIEFDUEkgU3BlY2lmaWNhdGlvbiA2LjMs IHRoZSB1c2Ugb2YgdGhlIFByb2Nlc3NvcigpIG9iamVjdAo+ID4gd2FzIGRlcHJlY2F0ZWQuIE9u bHkgbGVnYWN5IHN5c3RlbXMgc2hvdWxkIGNvbnRpbnVlIHdpdGggdGhpcyB1c2FnZS4gT24KPiA+ IHRoZSBJdGFuaXVtIGFyY2hpdGVjdHVyZSBvbmx5LCBhIF9VSUQgaXMgcHJvdmlkZWQgZm9yIHRo ZSBQcm9jZXNzb3IoKQo+ID4gdGhhdCBpcyBhIHN0cmluZyBvYmplY3QuIFRoaXMgdXNhZ2Ugb2Yg X1VJRCBpcyBhbHNvIGRlcHJlY2F0ZWQgc2luY2UgaXQKPiA+IGNhbiBwcmVjbHVkZSBhbiBPU1BN IGZyb20gYmVpbmcgYWJsZSB0byBtYXRjaCBhIHByb2Nlc3NvciB0byBhCj4gPiBub24tZW51bWVy YWJsZSBkZXZpY2UsIHN1Y2ggYXMgdGhvc2UgZGVmaW5lZCBpbiB0aGUgTUFEVC4gRnJvbSBBQ1BJ Cj4gPiBTcGVjaWZpY2F0aW9uIDYuMyBvbndhcmQsIGFsbCBwcm9jZXNzb3Igb2JqZWN0cyBmb3Ig YWxsIGFyY2hpdGVjdHVyZXMKPiA+IGV4Y2VwdCBJdGFuaXVtIG11c3Qgbm93IHVzZSBEZXZpY2Uo KSBvYmplY3RzIHdpdGggYW4gX0hJRCBvZiBBQ1BJMDAwNywKPiA+IGFuZCB1c2Ugb25seSBpbnRl Z2VyIF9VSUQgdmFsdWVzLiIKCldlbGwsIHdlIGRlZmluaXRlbHkgZG9uJ3QgY2FyZSBhYm91dCBJ dGFuaXVtIGFueSBtb3JlIHNvIG1vc3Qgb2YgdGhpcyBpcyBpcnJlbGV2YW50CmFuZCBjYW4gYmUg c2NydWJiZWQgZ29pbmcgZm9yd2FyZHMhCgpPdGhlcndpc2UgSSB0aGluayB3ZSBvbmx5IGNhcmUg YWJvdXQgRGV2aWNlKCkgYW5kIFByb2Nlc3NvcigpIGJlaW5nIHR3byB0aGluZ3MKdGhhdCBtaWdo dCBiZSBzZWVuIHRvIGRlc2NyaWJlIENQVXMgYW5kIHRoZXkgbWF5IG9yIG1heSBub3QgYmUgaW4g YQpQcm9jZXNzb3IgY29udGFpbmVyLgoKPiA+Cj4gPiBBbHNvIHNlZSBodHRwczovL3VlZmkub3Jn L3NwZWNzL0FDUEkvNi41LzA4X1Byb2Nlc3Nvcl9Db25maWd1cmF0aW9uX2FuZF9Db250cm9sLmh0 bWwjZGVjbGFyaW5nLXByb2Nlc3NvcnMKPiA+Cj4gPiBEdXBsaWNhdGUgZGVzY3JpcHRpb25zIGFy ZSBub3QgYWxsb3dlZCwgdGhlIEFDUEkgcHJvY2Vzc29yIGRyaXZlciBhbHJlYWR5Cj4gPiBwYXJz ZXMgdGhlIFVJRCBmcm9tIGJvdGggZGV2aWNlcyBhbmQgY29udGFpbmVycy4gYWNwaV9wcm9jZXNz b3JfZ2V0X2luZm8oKQo+ID4gcmV0dXJucyBhbiBlcnJvciBpZiB0aGUgVUlEIGV4aXN0cyB0d2lj ZSBpbiB0aGUgRFNEVC4gIAo+IAo+IEknbSBub3QgcmVhbGx5IHN1cmUgaG93IHRoZSBhYm92ZSBp cyByZWxhdGVkIHRvIHRoZSBhY3R1YWwgcGF0Y2guCgpUaGlzIGlzIG5hc3R5LiAgVGhleSBrZXkg aXMgdGhhdCB3aXRoIHRoaXMgcGF0Y2ggaW4gcGxhY2UsIHdlIGFyZSBhY3R1YWxseQphZGRpbmcg dGhlbSB0d2ljZSBpZiB0aGV5IGFyZSBhcmUgaW5zdGFudGlhdGVkIHZpYSBQcm9jZXNzb3IoKSBp biBhIHByb2Nlc3Nvcgpjb250YWluZXIuICBTbyB0aGlzIHJlZmVyZW5jZSBpcyBleHBsYWluaW5n IHdoeSB3ZSBkb24ndCBnZXQgdHdvIGxvdHMgcmVnaXN0ZXJlZC4KClRoaXMgcGF0Y2ggc2hvdWxk IGNhbGwgb3V0IGV4cGxpY2l0bHkgd2h5IHdlIHdhbnQgdG8gZG8gaXQgdHdpY2UKKEknbSBhc3N1 bWluZyBvbiBhIHRlbXBvcmFyeSBiYXNlaXMpLgoKPiAKPiA+IFRoZSBtaXNzaW5nIHByb2JlIGZv ciBDUFVzIGRlc2NyaWJlZCBhcyBwYWNrYWdlcyAgCj4gCj4gSXQgaXMgdW5jbGVhciB3aGF0IGV4 YWN0bHkgaXMgbWVhbnQgYnkgIkNQVXMgZGVzY3JpYmVkIGFzIHBhY2thZ2VzIi4KPiAKPiBGcm9t IHRoZSBwYXRjaCwgaXQgbG9va3MgbGlrZSB0aG9zZSB3b3VsZCBiZSBQcm9jZXNzb3IoKSBvYmpl Y3RzCj4gZGVmaW5lZCB1bmRlciBhIHByb2Nlc3NvciBjb250YWluZXIgZGV2aWNlLgpBZ3JlZWQu Cgo+IAo+ID4gY3JlYXRlcyBhIHByb2JsZW0gZm9yCj4gPiBtb3ZpbmcgdGhlIGNwdV9yZWdpc3Rl cigpIGNhbGxzIGludG8gdGhlIGFjcGlfcHJvY2Vzc29yIGRyaXZlciwgYXMgQ1BVcwo+ID4gZGVz Y3JpYmVkIGxpa2UgdGhpcyBkb24ndCBnZXQgcmVnaXN0ZXJlZCwgbGVhZGluZyB0byBlcnJvcnMg ZnJvbSBvdGhlcgo+ID4gc3Vic3lzdGVtcyB3aGVuIHRoZXkgdHJ5IHRvIGFkZCBuZXcgc3lzZnMg ZW50cmllcyB0byB0aGUgQ1BVIG5vZGUuCj4gPiAoZS5nLiB0b3BvbG9neV9zeXNmc19pbml0KCkn cyB1c2Ugb2YgdG9wb2xvZ3lfYWRkX2RldigpIHZpYSBjcHVocCkKPiA+Cj4gPiBUbyBmaXggdGhp cywgcGFyc2UgdGhlIHByb2Nlc3NvciBjb250YWluZXIgYW5kIGNhbGwgYWNwaV9wcm9jZXNzb3Jf YWRkKCkKPiA+IGZvciBlYWNoIHByb2Nlc3NvciB0aGF0IGlzIGRpc2NvdmVyZWQgbGlrZSB0aGlz LiAgCj4gCj4gRGlzY292ZXJlZCBsaWtlIHdoYXQ/CkRvZXNuJ3QgYWRkIGFueSBpbmZvLgoKIlRv IGZpeCB0aGlzLCBwYXJzZSB0aGUgcHJvY2Vzc29yIGNvbnRhaW5lciBhbmQgY2FsbCBhY3BpX3By b2Nlc3Nvcl9hZGQoKSBmb3IKZWFjaCBwcm9jZXNzb3IgZm91bmQuIgoKPiAKPiA+IFRoZSBwcm9j ZXNzb3IgY29udGFpbmVyCj4gPiBoYW5kbGVyIGlzIGFkZGVkIHdpdGggYWNwaV9zY2FuX2FkZF9o YW5kbGVyKCksIHNvIG5vIGRldGFjaCBjYWxsIHdpbGwKPiA+IGFycml2ZS4gIAo+IAo+IFRoZSBh Ym92ZSByZXF1aXJlcyBjbGFyaWZpY2F0aW9uIHRvby4KPiAKPiA+IFFlbXUgVENHIGRlc2NyaWJl cyBDUFVzIHVzaW5nIHByb2Nlc3NvciBkZXZpY2VzIGluIGEgcHJvY2Vzc29yIGNvbnRhaW5lci4K CkhtbS4gVGhpcyBpc24ndCBzbyBjbGVhciBjdXQuCgpGb3IgQVJNIGl0IGRvZXMgaXQgbmljZWx5 IHdpdGggQUNQSTAwMDcgZXRjLiBGb3IgeDg2IGl0IGlzIHN0aWxsClByb2Nlc3NvcigpIHVuZGVy IHNvbWUgY2lyY3Vtc3RhbmNlcy4uLiAod2h5IGV4YWN0bHkgZG9lc24ndCBtYXR0ZXIgaGVyZQot IGl0J3MgYWxsIGxlZ2FjeSBtZXNzKS4KClRvIHBva2UgdGhpcyBJIGhhY2tlZCB0aGUgYXJtIHZp cnQgcWVtdSBwbGF0Zm9ybSB0byB1c2UgUHJvY2Vzc29yKCkgaW4gYQpjb250YWluZXIgc28gSSBj b3VsZCBsaWtlIGZvciBsaWtlIGNvbXBhcmlzb25zLgoKVGhlIGxvZ2ljIHRoYXQgaW5qZWN0cyBh IEhJRCBpbnRvIFByb2Nlc3NvcigpIG9iamVjdHMgbWVhbnMgdGhlIGV4aXN0aW5nCmhhbmRsZXJz IGdldCBmaXJlZCB3aXRob3V0IHRoaXMgcGF0Y2guICBJJ20gZ29pbmcgdG8gYXNzdW1lIHRoYXQg bWlnaHQKbm90IGJlIHRoZSBjYXNlIGxhdGVyIGluIHRoaXMgcGF0Y2ggc2V0LCBidXQgSSd2ZSBu b3QgZm91bmQgd2hlcmUgaXQKaXMgYnJva2VuIHlldCA6KAoKCj4gPiBGb3IgbW9yZSBpbmZvcm1h dGlvbiwgc2VlIGJ1aWxkX2NwdXNfYW1sKCkgaW4gUWVtdSBody9hY3BpL2NwdS5jIGFuZAo+ID4g aHR0cHM6Ly91ZWZpLm9yZy9zcGVjcy9BQ1BJLzYuNS8wOF9Qcm9jZXNzb3JfQ29uZmlndXJhdGlv bl9hbmRfQ29udHJvbC5odG1sI3Byb2Nlc3Nvci1jb250YWluZXItZGV2aWNlCj4gPgo+ID4gU2ln bmVkLW9mZi1ieTogSmFtZXMgTW9yc2UgPGphbWVzLm1vcnNlQGFybS5jb20+Cj4gPiBUZXN0ZWQt Ynk6IE1pZ3VlbCBMdWlzIDxtaWd1ZWwubHVpc0BvcmFjbGUuY29tPgo+ID4gVGVzdGVkLWJ5OiBW aXNobnUgUGFqanVyaSA8dmlzaG51QG9zLmFtcGVyZWNvbXB1dGluZy5jb20+Cj4gPiBUZXN0ZWQt Ynk6IEppYW55b25nIFd1IDxqaWFueW9uZy53dUBhcm0uY29tPgo+ID4gLS0tCj4gPiBPdXRzdGFu ZGluZyBjb21tZW50czoKPiA+ICBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjMwOTE0MTQ1 MzUzLjAwMDA3MmUyQEh1YXdlaS5jb20KPiA+ICBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzUw NTcxYzJmLWFhM2MtYmFlYi0zYWRkLWNkNTllMGVkZGMwMkByZWRoYXQuY29tCj4gPiAtLS0KPiA+ ICBkcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYyB8IDIyICsrKysrKysrKysrKysrKysrKysr KysKPiA+ICAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKQo+ID4KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYyBiL2RyaXZlcnMvYWNwaS9hY3BpX3By b2Nlc3Nvci5jCj4gPiBpbmRleCA0ZmUyZWY1NDA4OGMuLjZhNTQyZTBjZTM5NiAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvYWNwaS9hY3BpX3Byb2Nlc3Nvci5jCj4gPiArKysgYi9kcml2ZXJzL2Fj cGkvYWNwaV9wcm9jZXNzb3IuYwo+ID4gQEAgLTYyNiw5ICs2MjYsMzEgQEAgc3RhdGljIHN0cnVj dCBhY3BpX3NjYW5faGFuZGxlciBwcm9jZXNzb3JfaGFuZGxlciA9IHsKPiA+ICAgICAgICAgfSwK PiA+ICB9Owo+ID4KPiA+ICtzdGF0aWMgYWNwaV9zdGF0dXMgYWNwaV9wcm9jZXNzb3JfY29udGFp bmVyX3dhbGsoYWNwaV9oYW5kbGUgaGFuZGxlLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBsdmwsCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29udGV4dCwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqcnYpCj4gPiAr ewo+ID4gKyAgICAgICBzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFkZXY7Cj4gPiArICAgICAgIGFjcGlf c3RhdHVzIHN0YXR1czsKPiA+ICsKPiA+ICsgICAgICAgYWRldiA9IGFjcGlfZ2V0X2FjcGlfZGV2 KGhhbmRsZSk7Cj4gPiArICAgICAgIGlmICghYWRldikKPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gQUVfRVJST1I7ICAKPiAKPiBXaHkgaXMgdGhlIHJlZmVyZW5jZSBjb3VudGluZyBuZWVkZWQg aGVyZT8KPiAKPiBXb3VsZG4ndCBhY3BpX2ZldGNoX2FjcGlfZGV2KCkgc3VmZmljZT8KWW91IGFy ZSB0aGUgZXhwZXJ0IGhlcmUgOikgIEkgY2FuJ3Qgc2VlIHdoeSB0aGUgcmVmZXJlbmNlIGlzIG5l ZWRlZApzbyB3b3VsZCBiZSBmaW5lIHdpdGggZHJvcHBpbmcgaXQuCgo+IAo+IEFsc28sIHNob3Vs ZCB0aGUgd2FsayByZWFsbHkgYmUgdGVybWluYXRlZCBvbiB0aGUgZmlyc3QgZXJyb3I/CgpJZiB0 aGlzIHBhdGNoIG1ha2VzIHNlbnNlIHRoaW5ncyB3aWxsIHByb2JhYmx5IGJsb3cgdXAgbGF0ZXIg YnV0IG5vCndvcnNlIHRoYW4gYmVmb3JlIHNvIHN1cmUsIGtlZXAgZ29pbmcuCgo+IAo+ID4gKwo+ ID4gKyAgICAgICBzdGF0dXMgPSBhY3BpX3Byb2Nlc3Nvcl9hZGQoYWRldiwgJnByb2Nlc3Nvcl9k ZXZpY2VfaWRzWzBdKTsKPiA+ICsgICAgICAgYWNwaV9wdXRfYWNwaV9kZXYoYWRldik7Cj4gPiAr Cj4gPiArICAgICAgIHJldHVybiBzdGF0dXM7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQg YWNwaV9wcm9jZXNzb3JfY29udGFpbmVyX2F0dGFjaChzdHJ1Y3QgYWNwaV9kZXZpY2UgKmRldiwK PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgYWNwaV9kZXZpY2VfaWQgKmlkKQo+ID4gIHsKPiA+ICsgICAgICAgYWNwaV93YWxrX25hbWVz cGFjZShBQ1BJX1RZUEVfUFJPQ0VTU09SLCBkZXYtPmhhbmRsZSwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICBBQ1BJX1VJTlQzMl9NQVgsIGFjcGlfcHJvY2Vzc29yX2NvbnRhaW5lcl93 YWxrLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIE5VTEwpOyAg Cj4gCj4gVGhpcyBjb3ZlcnMgcHJvY2Vzc29yIG9iamVjdHMgb25seSwgc28gd2h5IGlzIHRoaXMg bm90IG5lZWRlZCBmb3IKPiBwcm9jZXNzb3IgZGV2aWNlcyBkZWZpbmVkIHVuZGVyIGEgcHJvY2Vz c29yIGNvbnRhaW5lciBvYmplY3Q/CgpCb3RoIGNhc2VzIGFyZSBjb3ZlcmVkIGJ5IHRoZSBleGlz dGluZyBoYW5kbGluZyB3aXRob3V0IHRoaXMuCgpJJ20gZmFyIGZyb20gY2xlYXIgb24gd2h5IHdl IG5lZWQgdGhpcyBwYXRjaC4gIFByZXN1bWFibHkKaXQncyB0aGUgcmVmZXJlbmNlIGluIHRoZSBk ZXNjcmlwdGlvbiBvbiBpdCBicmVha2luZyBmb3IKUHJvY2Vzc29yIFBhY2thZ2UgY29udGFpbmlu ZyBQcm9jZXNzb3IoKSBvYmplY3RzIHRoYXQgbWF0dGVycwphZnRlciBhIG1vdmUuLi4gSSdtIHN0 cnVnZ2xpbmcgdG8gZmluZCB0aGF0IG1vdmUgdGhvdWdoIQoKCgo+IAo+IEl0IGlzIG5vdCBvYnZp b3VzLCBzbyBpdCB3b3VsZCBiZSBuaWNlIHRvIGFkZCBhIGNvbW1lbnQgZXhwbGFpbmluZyB0aGUK PiBkaWZmZXJlbmNlLgo+IAo+ID4gKwo+ID4gICAgICAgICByZXR1cm4gMTsKPiA+ICB9Cj4gPgo+ ID4gLS0gIAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKPiBsaW51eC1hcm0ta2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==