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 14F57CCA473 for ; Tue, 21 Jun 2022 16:01:05 +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:In-Reply-To:MIME-Version:References: 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=hMKmQNjllJGlC00UbrtqgSCXYXMDI1ETYYz7Q0ojOVY=; b=O/8JCPlYZOheiC Yra/fuJxhHfkpB1FOuBcUQLobpFQtrJCVGseUtW7eBFc6up8NZxVKQoFjTofM55MXWjiwLDLPqVCA lAUMnHyO7VZ8D+ZVHzzTM+MIZxhBa53oemW2l3YIFde5sfGEuNrr0rkPH2RadHUF5I4Tc3p78GtLO q9YZle6rFAwHyK4alyKOleTx6E9Mx9RLKsfzqraa1yJY/guby+1y68/TBP5NG413fY+Hh/HD9eOt2 caOzY31nhhNRWt1RIvpsC4i2cd1ZQyodVDsJSio53xn1KQg3iWnZoNXlwuKHacUM9x1p7jE9ZalzI T56l6u54r9xVRKDgXQ8Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3gJB-006HaH-3K; Tue, 21 Jun 2022 16:00:53 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3gIy-006HVP-IC; Tue, 21 Jun 2022 16:00:42 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4ED50165C; Tue, 21 Jun 2022 09:00:36 -0700 (PDT) Received: from bogus (e103737-lin.cambridge.arm.com [10.1.197.49]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AD1E53F66F; Tue, 21 Jun 2022 09:00:34 -0700 (PDT) Date: Tue, 21 Jun 2022 17:00:32 +0100 From: Sudeep Holla To: Dietmar Eggemann Cc: Vincent Guittot , linux-kernel@vger.kernel.org, Atish Patra , Atish Patra , Morten Rasmussen , Sudeep Holla , Qing Wang , linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, Rob Herring Subject: Re: [PATCH v3 15/16] arch_topology: Set cluster identifier in each core/thread from /cpu-map Message-ID: <20220621160032.rtvrtfss55xdirem@bogus> References: <20220525081416.3306043-16-sudeep.holla@arm.com> <947470ba-35fc-3c72-d01b-c0a7337216a2@arm.com> <20220606102159.dduxmvq4m2fm6gks@bogus> <20220610102753.virkx47uyfsojol6@bogus> <20220613111743.3od6a5dyyogad4ay@bogus> <73574a8f-5c72-8f7e-3dc4-42493131681e@arm.com> <20220617111647.62hsqbpl3bk7xb2y@bogus> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220621_090040_736958_60B1BF4A X-CRM114-Status: GOOD ( 62.07 ) 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 T24gTW9uLCBKdW4gMjAsIDIwMjIgYXQgMDM6Mjc6MzNQTSArMDIwMCwgRGlldG1hciBFZ2dlbWFu biB3cm90ZToKPiBPbiAxNy8wNi8yMDIyIDEzOjE2LCBTdWRlZXAgSG9sbGEgd3JvdGU6Cj4gPiBP biBUaHUsIEp1biAxNiwgMjAyMiBhdCAwNTowMjoyOFBNICswMTAwLCBEaWV0bWFyIEVnZ2VtYW5u IHdyb3RlOgo+ID4+IE9uIDEzLzA2LzIwMjIgMTI6MTcsIFN1ZGVlcCBIb2xsYSB3cm90ZToKPiA+ Pj4gT24gTW9uLCBKdW4gMTMsIDIwMjIgYXQgMTE6MTk6MzZBTSArMDIwMCwgRGlldG1hciBFZ2dl bWFubiB3cm90ZToKPiA+Pj4+IE9uIDEwLzA2LzIwMjIgMTI6MjcsIFN1ZGVlcCBIb2xsYSB3cm90 ZToKPiA+Pj4+PiBPbiBGcmksIEp1biAxMCwgMjAyMiBhdCAxMjowODo0NFBNICswMjAwLCBWaW5j ZW50IEd1aXR0b3Qgd3JvdGU6Cj4gPj4+Pj4+IE9uIE1vbiwgNiBKdW4gMjAyMiBhdCAxMjoyMiwg U3VkZWVwIEhvbGxhIDxzdWRlZXAuaG9sbGFAYXJtLmNvbT4gd3JvdGU6Cj4gCj4gWy4uLl0KPiAK PiA+Pj4gV2hhdCBhcmUgeW91IHJlZmVycmluZyBhcyAnZ2x1ZSB0aGVtIHRvZ2V0aGVyJy4gQXMg SSBzYWlkIHRoaXMgc2VyaWVzIGp1c3QKPiA+Pj4gYWRkcmVzcyB0aGUgaGFyZHdhcmUgdG9wb2xv Z3kgYW5kIGlmIHRoZXJlIGlzIGFueSBpbXBhY3Qgb24gc2NoZWQgZG9tYWlucwo+ID4+PiB0aGVu IGl0IGlzIGRvIHdpdGggYWxpZ25tZW50IHdpdGggQUNQSSBhbmQgRFQgcGxhdGZvcm0gYmVoYXZp b3VyLiBJIGFtIG5vdAo+ID4+PiBhZGRpbmcgYW55dGhpbmcgbW9yZSB0byBnbHVlIHRvcG9sb2d5 IGFuZCBpbmZvIG5lZWRlZCBmb3Igc2NoZWQgZG9tYWlucy4KPiA+Pgo+ID4+IFlvdSBjYW4gZml4 ICgxKSB3aXRob3V0ICgyKSBwYXJzaW5nIDEuIGxldmVsIGNsdXN0ZXIgbm9kZXMgYXMKPiA+PiBj bHVzdGVyX3NpYmxpbmdzLgo+ID4+Cj4gPiAKPiA+IFRlY2huaWNhbGx5IHllcywgYnV0IEkgc2Vl IG5vIHBvaW50IGluIGRlbGF5aW5nIGl0IGFzIGl0IGlzIGNvbnNpZGVyZWQgYXMKPiA+IGJyb2tl biB3aXRoIHJlc3BlY3QgdG8gdGhlIG1vbWVudCBBQ1BJIGV4cG9zZWQgdGhlIGNvcnJlY3QgdmFs dWUgYW5kIGF0IHRoZQo+ID4gc2FtZSB0aW1lIHJlc3VsdGVkIGluIGV4cG9zaW5nIGluY29ycmVj dCB2YWx1ZSBpbiBjYXNlIG9mIERULiBJIGFtIHJlZmVycmluZwo+ID4gdG8gdGhlIHNhbWUgY2hh bmdlIHRoYXQgaW50cm9kdWNlZCBTQ0hFRF9DTFVTVEVSLiBUaGUgZGFtYWdlIGlzIGRvbmUgYW5k IGl0Cj4gPiBuZWVkcyByZXBhaXJpbmcgQVNBUC4KPiAKPiBPSywgdGhlbiBsZXRzIGAvc3lzLy4u Li90b3BvbG9neS9jbHVzdGVyX2NwdXNgIHJlZmVyIHRvIHB1cmUKPiB0b3BvbG9neS1iYXNlZCBj bHVzdGVyIGluZm9ybWF0aW9uLiBUaGlzIGNhbiBiZSBEVCBjbHVzdGVyLW5vZGUKPiBpbmZvcm1h dGlvbiBvciBBQ1BJIEwzLXRhZyBpbmZvcm1hdGlvbiBlLmcuIGZvciBLUDkyMC4KPgoKQWdyZWVk LiBBbGwgdGhlIGluZm9ybWF0aW9uIHVuZGVyIC9zeXMvLi4uL3RvcG9sb2d5LyBhcmUgdGhlIGhh cmR3YXJlIHZpZXcKYW5kIG5vdCB0aGUgc2NoZWR1bGVyJ3MgdmlldyBvZiB0aGUgaGFyZHdhcmUg Zm9yIHRoZSBwdXJwb3NlIG9mIGJ1aWxkaW5nCnNjaGVkIGRvbWFpbnMuCgo+ID4+PiBJbmRlZWQu IEJ1dCBJIGRvbid0IGdldCB3aGF0IHlvdSBtZWFuIGJ5IDIgbGV2ZWwgaGVyZS4gQUNQSSBwdXRz IDFzdCBsZXZlbAo+ID4+Cj4gPj4gY3B1X21hcCB7Cj4gPj4gICBzb2NrZXQwIHsKPiA+PiAgICAg Y2x1c3RlcjAgeyAgICA8LS0gMS4gbGV2ZWwgY2x1c3Rlcgo+ID4+ICAgICAgIGNsdXN0ZXIwIHsg IDwtLSAyLiBsZXZlbCBjbHVzdGVyICgzIC0tPikKPiA+IAo+ID4gT2ggSSBoYWQgbWlzdW5kZXJz dG9vZCB0aGlzIGxldmVsIG5vbWVuY2xhdHVyZSwgSSByZWZlciBpdCBhcyBsZWFmIGNsdXN0ZXIK PiA+IG5vZGUgd2hpY2ggaXMgMi4gbGV2ZWwgY2x1c3RlciBpbiB0aGlzIERUIHNuaXBwZXQuCj4g PiAKPiA+PiAgICAgICAgIGNvcmUwIHsKPiA+Pgo+ID4+ICAgICAgICAgfTsKPiA+PiAgICAgICAg IGNvcmUxIHsKPiA+Pgo+ID4+ICAgICAgICAgfTsKPiA+PiAgICAgICBjbHVzdGVyMSB7Cj4gPj4g ICAuLi4KPiA+Pgo+ID4+IEFybXY5IEwyIGNvbXBsZXhlczogZS5nLiBRQyBTTTg0NTA6Cj4gPj4K PiA+PiAgICAgICAuLS0tLS0tLS0tLS0tLS0tLgo+ID4+IENQVSAgIHwwIDEgMiAzIDQgNSA2IDd8 Cj4gPj4gICAgICAgKy0tLS0tLS0tLS0tLS0tLSsKPiA+PiB1YXJjaCB8bCBsIGwgbCBtIG0gbSBi fCAoc28gY2FsbGVkIHRyaS1nZWFyOiBsaXR0bGUsIG1lZGl1bSwgYmlnKQo+ID4+ICAgICAgICst LS0tLS0tLS0tLS0tLS0rCj4gPj4gICBMMiAgfCAgIHwgICB8IHwgfCB8IHwgPC0tIDIuIGxldmVs IGNsdXN0ZXIsIEFybXY5IEwyIGNvbXBsZXhlcyAoPC0tIDMpCj4gPiAKPiA+IEFnYWluIGJlZm9y ZSBJIGFzc3VtZSwgd2hhdCBleGFjdGx5IDwtLTMgaGVyZSBhbmQgaW4gYWJvdmUgc25pcHBldCBt ZWFuID8KPiAKPiBJIHdhbnRlZCB0byBzaG93IHRoYXQgd2UgY291bGQgZW5jb2RlIGAyLiBsZXZl bCBjbHVzdGVyYCBhcyBgQXJtdjkgTDIKPiBjb21wbGV4ZXNgLiBCdXQgc2luY2Ugd2UgYWdyZWVk IChhZnRlciB0aGUgZW1haWwgd2FzIHNlbnQpIG5vdCB0bwo+IHN1cHBvcnQgYG5lc3RlZCBjbHVz dGVyLW5vZGVzYCwgdGhpcyBpZGVhIGRvZXMgbm90IGhvbGQgYW55bW9yZS4KPgoKWWVzIEkgcGxh biB0byB0aHJvdyB3YXJuaW5nIGlmIHdlIGVuY291bnRlciBuZXN0ZWQgY2x1c3RlcnMsIHdpbGwg YmUgcGFydCBvZgpuZXh0IHZlcnNpb24oaHR0cHM6Ly9naXQua2VybmVsLm9yZy9zdWRlZXAuaG9s bGEvYy85NGZhZTEyZDY0YmIpLgoKPiA+PiAgICAgICArLS0tLS0tLS0tLS0tLS0tKwo+ID4+ICAg TDMgIHw8LS0gICAgICAgICAtLT58Cj4gPj4gICAgICAgKy0tLS0tLS0tLS0tLS0tLSsKPiA+PiAg ICAgICB8PC0tIGNsdXN0ZXIgLS0+fAo+ID4gCj4gPiBJIHRoaW5rIHRoaXMgaXMgMiBsZXZlbCBj bHVzdGVyIG9yIG9ubHkgY2x1c3RlciBpbiB0aGlzIHN5c3RlbSB3LnIudCBoYXJkd2FyZS4KPiA+ IFNvIGxldHMgbm90IGNvbmZ1c2Ugd2l0aCBtdWx0aS1sZXZlbCBpZiBub3QgbmVjZXNzYXJ5Lgo+ Cj4gTm8gbmVlZCwgd2Ugc2FpZCBubyBgbmVzdGVkIGNsdXN0ZXItbm9kZWAgc3VwcG9ydCBpbiBE VC4KPgoK8J+RjQoKPiA+PiAgICAgICArLS0tLS0tLS0tLS0tLS0tKwo+ID4+ICAgICAgIHw8LS0g ICBEU1UgICAtLT58Cj4gPj4gICAgICAgJy0tLS0tLS0tLS0tLS0tLScKPiA+Pgo+ID4+IE9ubHkg aWYgd2UgbWFwIChpKSBpbnRvIGNsdXN0ZXJfc2libGluZywgd2UgZ2V0IHRoZSBzYW1lIGhhcmR3 YXJlCj4gPj4gcmVwcmVzZW50YXRpb24gKGZvciB0aGUgdGFzayBzY2hlZHVsZXIpIGZvciBBQ1BJ ICg0KSBhbmQgRFQgKDUpIHN5c3RlbXMuCj4gPj4KPiA+IAo+ID4gV2hhdCBpcyAoaSkgYWJvdmUg Pwo+IAo+IFNvcnJ5LCAoaSkgd2FzIG1lYW50IHRvIGJlIGAzIC0tPmAuCj4KCkFoIG9rCgo+ID4+ ICg0KSBleGFtcGxlczoKPiA+Pgo+ID4+IEt1bnBlbmc5MjAgLSAyNCBDUFVzIHNoYXJpbmcgTExD IChjcHVfY29yZWdyb3VwX21hc2soKSksIDQgQ1BVcyBzaGFyaW5nCj4gPj4gTDMtdGFnIChjcHVf Y2x1c3Rlcmdyb3VwX21hc2soKSkuCj4gPj4KPiA+IAo+ID4gQWdhaW4gZGVjb3VwbGUgY2FjaGUg aW5mbyBhbmQgY2x1c3RlciBpbmZvIGZyb20gaC93LCB5b3UgaGF2ZSBhbGwgdGhlIGluZm8uCj4g PiBZb3UgY2FuIGNvdXBsZSB0aGVtIHRvZ2V0aGVyIGlmIHRoYXQgaGVscHMgd2hlbiB5b3UgZmVl ZCBzY2hlZF9kb21haW5zLgo+Cj4gT0ssIHRoaXMgaXMgd2hhdCB3ZSBmaW5hbGx5IGFncmVlZC4K PgoK8J+RjQoKPiA+PiBYODYgSmFjb2JzdmlsbGUgLSAyNCBDUFVzIHNoYXJpbmcgTExDIChMMyks IDQgQ1BVcyBzaGFyaW5nIEwyCj4gPj4KPiA+PiBBcm12OSBMMiBjb21wbGV4ZXM6IGUuZy4gUUMg U004NDUwIC0gOCBDUFVzIHNoYXJpbmcgTExDIChMMyksIChmb3IgQTUxMAo+ID4+IChsaXR0bGUg Q1BVcykpIDIgQ1BVcyBzaGFyaW5nIEwyCj4gPgo+ID4gWy4uLl0KPiA+IAo+ID4+PiBBbmQgeWVz IGxzdG9wbyBkb2Vzbid0IHJlYWQgY2x1c3RlciBJRHMuIEJ1dCB3ZSBleHBvc2UgdGhlbSBpbiBB Q1BJIHN5c3RlbQo+ID4+PiBhbmQgbm90IG9uIERUIHdoaWNoIHdhcyBteSBtYWluIHBvaW50Lgo+ IAo+IE9LLCBubyBmdXJ0aGVyIGRpc2N1c3Npb24gbmVlZGVkIGhlcmUuIGAvc3lzLy4uLi90b3Bv bG9neS9jbHVzdGVyX2NwdXNgCj4gc2hvd3MgTDIgKExMQykgb24gSnVubywgTDMtdGFnIGFuIEtQ OTIwIG9yIEwyIG9uIFg4NiBKYWNvYnN2aWxsZS4gVGhlCj4gY3B1X3h4eF9tYXNrKClzIG9mIChl LmcuKSBkZWZhdWx0X3RvcG9sb2d5W10gaGF2ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUKPiBzY2hl ZHVsZXIgc2VlcyB0aGUgY29ycmVjdCBpbmZvcm1hdGlvbiAodGhlIGhpZXJhcmNoeSBvZiBjcHVt YXNrcykuCj4KCkNvcnJlY3QKCj4gPj4gVW5kZXJzdG9vZC4gQnV0IGEgS3VucGVuZzkyMCBgY2x1 c3Rlcl9jcHVzX2xpc3RgIGZpbGUgd291bGQgY29udGFpbgo+ID4+IGxvZ2ljYWxseSBkaWZmZXJl bnQgaW5mb3JtYXRpb24gdGhhbiBhIEp1bm8gYGNsdXN0ZXJfY3B1c19saXN0YCBmaWxlLgo+ID4+ Cj4gPiBBbmQgd2h5IGlzIHRoYXQgPwo+IAo+IElmIHdlIHNlZSBpdCBmcm9tIHRoZSBhbmdsZSBv ZiB0aGUgZGVmaW5pdGlvbiBvZiBTQ0hFRF9DT05GSUdfQ0xVU1RFUgo+IChgLi4uIHRoZSBsZXZl bCBvZiB0b3BvbG9neSBhYm92ZSBDUFVzIC4uLmAgdGhlbiBJIGNhbiBzZWUgdGhhdCBib3RoCj4g ZGVmaW5pdGlvbnMgYXJlIHRoZSBzYW1lLiAoQ1BVUyBzaG91bGQgYmUgcmF0aGVyIGBjb3Jlc2Ag aGVyZSwgSSBndWVzcz8pLgo+IAo+IFsuLi5dCj4KClllcywgSSBoYXZlIHVzZSBjb3JlcyBhbmQg Q1BVcyBpbnRlcmNoYW5nZXMgYXQgc2V2ZXJhbCBwbGFjZXMgc28gZmFyLCB3aWxsCnRyeSB0byBi ZSBtb3JlIHNwZWNpZmljIGluIHRoZSBmdXR1cmUuCgo+ID4+PiBBcyBwb2ludGVkIG91dCBlYXJs aWVyLCBoYXZlIHlvdSBjaGVja2VkIEFDUEkgb24gSnVubyBhbmQgd2l0aCAKPiA+Pj4gQ09ORklH X1NDSEVEX0NMVVNURVIgPyBJZiB0aGUgYmVoYXZpb3VyIHdpdGggbXkgc2VyaWVzIG9uIERUIGFu ZCBBQ1BJCj4gPj4+IGRpZmZlcnMsIHRoZW4gaXQgaXMgYW4gaXNzdWUuIEJ1dCBBRkFJVSwgaXQg ZG9lc24ndCBhbmQgdGhhdCBpcyBteSBtYWluCj4gPj4+IGFyZ3VtZW50LiBZb3UgYXJlIGp1c3Qg YXNzdW1pbmcgd2hhdCB3ZSBoYXZlIG9uIEp1bm8gd2l0aCBEVCBpcyBjb3JyZWN0Cj4gPj4+IHdo aWNoIG1heSBiZSB3LnIudCB0byBzY2hlZHVsZXIgYnV0IGRlZmluaXRlbHkgbm90IHdpdGggcmVz cGVjdCB0byB0aGUKPiA+Pj4gaGFyZHdhcmUgdG9wb2xvZ3kgZXhwb3NlZCB0byB0aGUgdXNlcnMu IFNvIG15IGFpbSBpcyB0byBnZXQgdGhhdCBmaXhlZC4KPiA+Pgo+ID4+IEkgbmV2ZXIgcnVuIEp1 bm8gdy8gQUNQSS4gQXJlIHlvdSBzYXlpbmcgdGhhdAo+ID4+IGZpbmRfYWNwaV9jcHVfdG9wb2xv Z3lfY2x1c3RlcigpIHJldHVybnMgY3B1X3RvcG9sb2d5W2NwdV0uY2x1c3Rlcl9pZCdzCj4gPj4g d2hpY2ggbWF0Y2ggdGhlIGAxLiBsZXZlbCBjbHVzdGVyIG5vZGVzYD8KPiA+Pgo+ID4KPiA+IEFn YWluIEkgYW0gdG90YWxseSBjb25mdXNlZCBhcyB3aHkgdGhpcyBpcyBub3cgMS5sZXZlbCBjbHVz dGVyIHdoZXJlIGFzIGFib3ZlCj4gPiBTRE0gd2FzIDIubGV2ZWwgY2x1c3Rlci4gQm90aCBTb0Nz IGhhdmUgb25seSAxIGxldmVsIG9mIGNsdXN0ZXIuIFdoaWxlIFNETQo+ID4gaGFzIDEgRFNVIGNs dXN0ZXIsIEp1bm8gaGFzIDIgY2x1c3RlcnMuCj4gCj4gTm8gbmVlZCBpbiBhZ3JlZWluZyB3aGF0 IGxldmVsIChjb3VsZCkgc3RhbmQocykgaGVyZSBmb3IuIFdlIHNhaWQgYG5vCj4gbmVzdGVkIGNs dXN0ZXItbm9kZWAuCj4KCvCfkY0KCj4gPj4gVGhlIGZ1bmN0aW9uIGhlYWRlciBvZiBmaW5kX2Fj cGlfY3B1X3RvcG9sb2d5X2NsdXN0ZXIoKSBzYXlzIHRoYXQgYC4uLgo+ID4+IHRoZSBjbHVzdGVy LCBpZiBwcmVzZW50IGlzIHRoZSBsZXZlbCBvZiB0b3BvbG9neSBhYm92ZSBDUFVzLiAuLi5gLgo+ ID4+Cj4gPiAKPiA+IEV4YWN0bHkgYW5kIHRoYXQncyBob3cgc3lzZnMgaXMgYWxzbyBkZWZpbmVk IGFuZCB3ZSBjYW4ndCBnbyBiYWNrIGFuZCBjaGFuZ2UKPiA+IHRoYXQgbm93LiBJIGRvbid0IHNl ZSBhbnkgaXNzdWUgVEJILgo+IAo+IE9LLgo+IAo+ID4+IEZyb20gdGhpcyBwZXJzcGVjdGl2ZSBJ IGNhbiBzZWUgeW91ciBwb2ludC4gQnV0IHRoaXMgaXMgdGhlbiBzdGlsbAo+ID4+IGNsZWFybHkg cG9vcmx5IGRlc2lnbmVkLgo+ID4gCj4gPiBOb3QgcmVhbGx5IGFzIHBlciB0aGUgZGVmaW5pdGlv bi4KPiAKPiBOb3QgZnJvbSB0aGUgdmlld3BvaW50IG9mIHRvcG9sb2d5IGFuZCBjYWNoZWluZm8u IEJ1dCBmcm9tIHRoZSBzY2hlZHVsZXIKPiBhbmQgdGhlIHdob2xlIHRoaW5nIGdldHMgYWN0aXZh dGVkIGJ5IGEgc2NoZWR1bGVyIENPTkZJRyBvcHRpb24uCj4KCkFncmVlZCBhbmQgSSB0b28gdGhp bmsgaXQgbXVzdCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuCgo+ID4+IEhvdyB3b3VsZCB3ZSBldmVy IHN1cHBvcnQgQ09ORklHX1NDSEVEX0NMVVNURVIKPiA+PiBpbiBEVCB3aGVuIGl0IHJlYWxseSAo cG90ZW50aWFsbHkpIHdvdWxkIGJyaW5nIGEgYmVuZWZpdCAoaS5lLiBpbiB0aGUKPiA+PiBBcm12 OSBMMi1jb21wbGV4IGNhc2UpIGFuZCBub3Qgb25seSBjcmVhdGUgdHJvdWJsZSBmb3IgdGhlIHRh c2sKPiA+PiBzY2hlZHVsZXIgdG8gc2V0dXAgaXRzIGRvbWFpbnMgY29ycmVjdGx5Pwo+ID4gCj4g PiBJbmRlZWQsIHRoYXQgaXMgdGhlIG5leHQgcHJvYmxlbSBvbmNlIHdlIGdldCBhbGwgdGhlc2Ug YWxpZ25lZCBhY3Jvc3MKPiA+IERUIGFuZCBBQ1BJLiBUaGV5IGhhdmUgZGl2ZXJnZWQgYW5kIEkg cHJlZmVyIG5vdCB0byBhbGxvdyB0aGF0IGFueW1vcmUKPiA+IGJ5IGFkZGluZyBtb3JlIGRpdmVy Z2VuY2UgZS5nLiB0byBzdXBwb3J0IEFybXY5IEwyLWNvbXBsZXggY2FzZS4gUGxlYXNlCj4gPiBj b25zaWRlciB0aGF0IG9uIHRvcCBvZiB0aGVzZSwgSSBhbSBub3QgYWRkcmVzc2luZyB0aGF0IGF0 IHRoZSBtb21lbnQuCj4gPiBJbiBmYWN0IEkgYW0gbm90IGFkZHJlc3NpbmcgYW55IHNjaGVkX2Rv bWFpbiB0b3BpY3Mgb3IgaXNzdWVzLiBJIGhhdmUgbWFkZQo+ID4gdGhhdCBjbGVhciDwn5iJLgo+ IAo+IElmIEkgcmVjYWxsIHRoZSBjb250ZW50IG9mIG91ciBkaXNjdXNzaW9uIGNvcnJlY3RseSwg YEFybXY5IEwyCj4gY29tcGxleGVzYCBzdXBwb3J0IGNvdWxkIGNvbWUgZnJvbSBMMiAocHJvYmFi bHkgYExMQyAtIDFgID8pIGRldGVjdGlvbgo+IGZyb20gY2FjaGVpbmZvLiBCdXQgdGhpcyBpcyBu b3QgcGFydCBvZiB0aGlzIHBhdGNoLXNldC4KPgoKQ29ycmVjdCBhbmQgdGhhbmtzIGZvciBtYWtp bmcgdGhhdCBjbGVhciBoZXJlLiBJIGhhdmUgaW50ZW50aW9uYWxseSBub3QKbWVudGlvbmVkIGl0 IHNvIGZhciBhcyBJIGFtIG5vdCBhZGRyZXNzaW5nIGFueXRoaW5nIHNwZWNpZmljIHRvIHN1Y2gg YQp0b3BvbG9neS4KCj4gPj4gQWxzbyBpbiBjYXNlIHdlIHN0aWNrIHRvCj4gPj4gc2V0dGluZyBD T05GSUdfU0NIRURfQ0xVU1RFUj0xIGJ5IGRlZmF1bHQsIENMUyBzaG91bGQgYmUgdGhlIGRlZmF1 bHQgTExDCj4gPj4gc2NoZWQgZG9tYWluIGFuZCBNQyB0aGUgZXhjZXB0aW9uYWwgb25lLiBKdXN0 IHRvIHJlc3BlY3QgdGhlIHdheSBob3cgdGhlCj4gPj4gdGFzayBzY2hlZHVsZXIgcmVtb3ZlcyBu b3QgdXNlZnVsIGRvbWFpbnMgdG9kYXkuCj4gPiAKPiA+IEZpeCB0aGUgY3B1X2NsdXN0ZXJncm91 cF9tYXNrIG9yIGFueSBvdGhlciBjcHVfKmdyb3VwX21hc2sgYXMgcGVyIHlvdXIKPiA+IHRhc3Rl LiBUaGUgdG9wb2xvZ3kgbWFza3MgYXJlIGp1c3QgaW5wdXRzIHRvIHRoZXNlIGFuZCB3aWxsIG5v dCBiZSBjaGFuZ2VkCj4gPiBvciBkaXZlcmdlZCBmb3IgdGhlc2UgcmVhc29ucy4gU29ycnkgaWYg dGhhdCBpcyBub3QgaGVscGZ1bCwgYnV0IHRoYXQgaXMgdGhlCj4gPiByZWFsaXR5IHdpdGggc3lz ZnMgZXhwb3NlZCB0byB0aGUgdXNlci1zcGFjZS4KPiAKPiBBZ3JlZWQuIFdlIGRvbid0IGhhdmUg dG8gcmVseSBvbiB0aGUgdGFzayBzY2hlZHVsZXIgdG8gYnVpbGQgdGhlIHJpZ2h0Cj4gc2NoZWQg ZG9tYWluIGhpZXJhcmNoeSBvdXQgb2YgZXZlcnkgY3B1X3h4eF9tYXNrKCkgZnVuY3Rpb25zLiBX ZSBjYW4KPiB0d2VhayBjcHVfeHh4X21hc2soKSB0byBnZXQgdGhpcyBkb25lLgo+CgpDb3JyZWN0 LCBJIGFtIG5vdCBzYXlpbmcgaXQgaXMgYXMgc2ltcGxlIGFzIHRoYXQsIGJ1dCB0byBrZWVwIGhh cmR3YXJlCnRvcG9sb2d5IGFuZCB0aGUgaW5mbyBmZWQgdG8gc2NoZWR1bGVyIG9yIHRoZSBpbmZv IGFzIHZpZXdlZCBmcm9tCnNjaGVkX2RvbWFpbnMgcGVyc3BlY3RpdmUgZGlmZmVyZW50LiBUaGUg Zm9ybWVyIGNoYW5nZXMgd2l0aCBoYXJkd2FyZSB3aGlsZQp0aGUgbGF0dGVyIGNoYW5nZXMgd2l0 aCB0aGUgdmlldyBvZiBzY2hlZHVsZXIuIEJhc2VkIG9uIHRoZSBsb2dpYyBpdAp1c2VkIHRvIG9w dGltaXNlLCBzY2hlZHVsZXIgY2FuIHRyeSBkaWZmZXJlbnQgdmlldyBvbiB0aGUgc2FtZSBoYXJk d2FyZSBidXQKdGhhdCdzIG5vdCB3aGVyZSB3ZSB3YW50IHRvIGJlLiBXZSB3YW50IHRvIHByb3Zp ZGUgYSBnZW5lcmljIHZpZXcgYmFzZWQgb24KYWxsIHRoZSBoL3cgY3B1IGFuZCBjYWNoZSB0b3Bv bG9neSBpbmZvcm1hdGlvbi4gSXQgbWF5IG5vdCBiZSBhbHdheXMgb3B0aW1hbCwKYnV0IHdlIGNh biB0cnkgdGhlIGJlc3QuCgo+ID4+PiBJZiB5b3UgYXJlIG5vdCBoYXBweSB3aXRoIHRoYXQsIHRo ZW4gaG93IGNhbiBiZSBiZSBoYXBweSB3aXRoIHdoYXQgaXMgdGhlCj4gPj4+IGN1cnJlbnQgYmVo YXZpb3VyIG9uIEFDUEkgKyBhbmQgLSBDT05GSUdfU0NIRURfQ0xVU1RFUi4gSSBoYXZlbid0IGdv dAo+ID4+PiB5b3VyIG9waW5pb24geWV0IG9uIHRoYXQgbWF0dGVyLgo+ID4+Cj4gPj4gSSBndWVz cyBpdCdzIGNsZWFyIG5vdyB0aGF0IEFDUEkgKyBDT05GSUdfU0NIRURfQ0xVU1RFUiB3aXRoIGBg dGhlIGxldmVsCj4gPj4gb2YgdG9wb2xvZ3kgYWJvdmUgQ1BVc2AgaXMgY29uZ3J1ZW50IHdpdGgg TExDYCBjcmVhdGVzIHRyb3VibGUgdG8gdGhlCj4gPj4gc2NoZWR1bGVyLiBTbyBJIGRvbid0IHNl ZSB3aHkgd2Ugc2hvdWxkIHJlcGxpY2F0ZSB0aGlzIGZvciBEVC4gTGV0J3MKPiA+PiBkaXNjdXNz IGZ1cnRoZXIgdG9tb3Jyb3cgaW4gcGVyc29uLgo+ID4gCj4gPiBJIHNlZSBpdCBkaWZmZXJlbnRs eS4gSWYgdGhhdCBjcmVhdGVzIGEgdHJvdWJsZSwgZml4IHRoYXQgYW5kIHlvdSB3aWxsIG5vdAo+ ID4gaGF2ZSBhbnkgaXNzdWVzIHdpdGggRFQgdG9vLgo+IAo+IE9LLCBJIHRoaW5rIHdlIChhcm02 NCkgZm91bmQgYSB3YXkgdG8gc3VwcG9ydCBhIGRlZmF1bHQKPiBDT05GSUdfU0NIRURfQ0xVU1RF UiBhbmQgZml4aW5nIHRoZSBgSnVubyBsc3RvcG9gIGlzc3VlIHdpdGggYSBwb3NzaWJsZQo+IHdh eSB0byBpbmNsdWRlIGBBcm12OSBMMiBjb21wbGV4ZXNgIHN1cHBvcnQgdmlhIGNhY2hlaW5mbyBs YXRlci4KClRoYW5rcyBmb3IgYWxsIHRoZSBkaXNjdXNzaW9uLiBIb3BlIHdlIG1heSBub3QgaGF2 ZSB0byByZXZpc2l0IHRoaXMgdG9waWMKaW4gc3VjaCBkZXB0aCB1bnRpbCBhbm90aGVyIHRvcG9s b2d5IHRoYXQgYnJlYWtzIGFsbCBvdXIgY3VycmVudCBhc3N1bXB0aW9uCmFycml2ZXMgaW4gdGhl IHdpbGQgd2hpY2ggbWF5IG5vdCBiZSB0b28gbG9uZy4KCkkgcmVtZW1iZXIgdGFsa2luZyB3aXRo IE1vcnRlbiBhbmQgY29uY2x1ZGluZyBMTEMgaXMgc3VmZmljaWVudCBmb3IgYXJtNjQKY291cGxl IG9mIHllYXJzIGJhY2ssIGJ1dCBub3cgdGhhdCBjYW4gYmUgcXVlc3Rpb25hYmxlIHdpdGggQXJt djkgTDIKY29tcGxleC4KCi0tIApSZWdhcmRzLApTdWRlZXAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51 eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CB42FC433EF for ; Tue, 21 Jun 2022 16:01:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233010AbiFUQBq (ORCPT ); Tue, 21 Jun 2022 12:01:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1353516AbiFUQB2 (ORCPT ); Tue, 21 Jun 2022 12:01:28 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 697CB2F3B8 for ; Tue, 21 Jun 2022 09:00:36 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4ED50165C; Tue, 21 Jun 2022 09:00:36 -0700 (PDT) Received: from bogus (e103737-lin.cambridge.arm.com [10.1.197.49]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AD1E53F66F; Tue, 21 Jun 2022 09:00:34 -0700 (PDT) Date: Tue, 21 Jun 2022 17:00:32 +0100 From: Sudeep Holla To: Dietmar Eggemann Cc: Vincent Guittot , linux-kernel@vger.kernel.org, Atish Patra , Atish Patra , Morten Rasmussen , Sudeep Holla , Qing Wang , linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, Rob Herring Subject: Re: [PATCH v3 15/16] arch_topology: Set cluster identifier in each core/thread from /cpu-map Message-ID: <20220621160032.rtvrtfss55xdirem@bogus> References: <20220525081416.3306043-16-sudeep.holla@arm.com> <947470ba-35fc-3c72-d01b-c0a7337216a2@arm.com> <20220606102159.dduxmvq4m2fm6gks@bogus> <20220610102753.virkx47uyfsojol6@bogus> <20220613111743.3od6a5dyyogad4ay@bogus> <73574a8f-5c72-8f7e-3dc4-42493131681e@arm.com> <20220617111647.62hsqbpl3bk7xb2y@bogus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jun 20, 2022 at 03:27:33PM +0200, Dietmar Eggemann wrote: > On 17/06/2022 13:16, Sudeep Holla wrote: > > On Thu, Jun 16, 2022 at 05:02:28PM +0100, Dietmar Eggemann wrote: > >> On 13/06/2022 12:17, Sudeep Holla wrote: > >>> On Mon, Jun 13, 2022 at 11:19:36AM +0200, Dietmar Eggemann wrote: > >>>> On 10/06/2022 12:27, Sudeep Holla wrote: > >>>>> On Fri, Jun 10, 2022 at 12:08:44PM +0200, Vincent Guittot wrote: > >>>>>> On Mon, 6 Jun 2022 at 12:22, Sudeep Holla wrote: > > [...] > > >>> What are you referring as 'glue them together'. As I said this series just > >>> address the hardware topology and if there is any impact on sched domains > >>> then it is do with alignment with ACPI and DT platform behaviour. I am not > >>> adding anything more to glue topology and info needed for sched domains. > >> > >> You can fix (1) without (2) parsing 1. level cluster nodes as > >> cluster_siblings. > >> > > > > Technically yes, but I see no point in delaying it as it is considered as > > broken with respect to the moment ACPI exposed the correct value and at the > > same time resulted in exposing incorrect value in case of DT. I am referring > > to the same change that introduced SCHED_CLUSTER. The damage is done and it > > needs repairing ASAP. > > OK, then lets `/sys/.../topology/cluster_cpus` refer to pure > topology-based cluster information. This can be DT cluster-node > information or ACPI L3-tag information e.g. for KP920. > Agreed. All the information under /sys/.../topology/ are the hardware view and not the scheduler's view of the hardware for the purpose of building sched domains. > >>> Indeed. But I don't get what you mean by 2 level here. ACPI puts 1st level > >> > >> cpu_map { > >> socket0 { > >> cluster0 { <-- 1. level cluster > >> cluster0 { <-- 2. level cluster (3 -->) > > > > Oh I had misunderstood this level nomenclature, I refer it as leaf cluster > > node which is 2. level cluster in this DT snippet. > > > >> core0 { > >> > >> }; > >> core1 { > >> > >> }; > >> cluster1 { > >> ... > >> > >> Armv9 L2 complexes: e.g. QC SM8450: > >> > >> .---------------. > >> CPU |0 1 2 3 4 5 6 7| > >> +---------------+ > >> uarch |l l l l m m m b| (so called tri-gear: little, medium, big) > >> +---------------+ > >> L2 | | | | | | | <-- 2. level cluster, Armv9 L2 complexes (<-- 3) > > > > Again before I assume, what exactly <--3 here and in above snippet mean ? > > I wanted to show that we could encode `2. level cluster` as `Armv9 L2 > complexes`. But since we agreed (after the email was sent) not to > support `nested cluster-nodes`, this idea does not hold anymore. > Yes I plan to throw warning if we encounter nested clusters, will be part of next version(https://git.kernel.org/sudeep.holla/c/94fae12d64bb). > >> +---------------+ > >> L3 |<-- -->| > >> +---------------+ > >> |<-- cluster -->| > > > > I think this is 2 level cluster or only cluster in this system w.r.t hardware. > > So lets not confuse with multi-level if not necessary. > > No need, we said no `nested cluster-node` support in DT. > 👍 > >> +---------------+ > >> |<-- DSU -->| > >> '---------------' > >> > >> Only if we map (i) into cluster_sibling, we get the same hardware > >> representation (for the task scheduler) for ACPI (4) and DT (5) systems. > >> > > > > What is (i) above ? > > Sorry, (i) was meant to be `3 -->`. > Ah ok > >> (4) examples: > >> > >> Kunpeng920 - 24 CPUs sharing LLC (cpu_coregroup_mask()), 4 CPUs sharing > >> L3-tag (cpu_clustergroup_mask()). > >> > > > > Again decouple cache info and cluster info from h/w, you have all the info. > > You can couple them together if that helps when you feed sched_domains. > > OK, this is what we finally agreed. > 👍 > >> X86 Jacobsville - 24 CPUs sharing LLC (L3), 4 CPUs sharing L2 > >> > >> Armv9 L2 complexes: e.g. QC SM8450 - 8 CPUs sharing LLC (L3), (for A510 > >> (little CPUs)) 2 CPUs sharing L2 > > > > [...] > > > >>> And yes lstopo doesn't read cluster IDs. But we expose them in ACPI system > >>> and not on DT which was my main point. > > OK, no further discussion needed here. `/sys/.../topology/cluster_cpus` > shows L2 (LLC) on Juno, L3-tag an KP920 or L2 on X86 Jacobsville. The > cpu_xxx_mask()s of (e.g.) default_topology[] have to make sure that the > scheduler sees the correct information (the hierarchy of cpumasks). > Correct > >> Understood. But a Kunpeng920 `cluster_cpus_list` file would contain > >> logically different information than a Juno `cluster_cpus_list` file. > >> > > And why is that ? > > If we see it from the angle of the definition of SCHED_CONFIG_CLUSTER > (`... the level of topology above CPUs ...` then I can see that both > definitions are the same. (CPUS should be rather `cores` here, I guess?). > > [...] > Yes, I have use cores and CPUs interchanges at several places so far, will try to be more specific in the future. > >>> As pointed out earlier, have you checked ACPI on Juno and with > >>> CONFIG_SCHED_CLUSTER ? If the behaviour with my series on DT and ACPI > >>> differs, then it is an issue. But AFAIU, it doesn't and that is my main > >>> argument. You are just assuming what we have on Juno with DT is correct > >>> which may be w.r.t to scheduler but definitely not with respect to the > >>> hardware topology exposed to the users. So my aim is to get that fixed. > >> > >> I never run Juno w/ ACPI. Are you saying that > >> find_acpi_cpu_topology_cluster() returns cpu_topology[cpu].cluster_id's > >> which match the `1. level cluster nodes`? > >> > > > > Again I am totally confused as why this is now 1.level cluster where as above > > SDM was 2.level cluster. Both SoCs have only 1 level of cluster. While SDM > > has 1 DSU cluster, Juno has 2 clusters. > > No need in agreeing what level (could) stand(s) here for. We said `no > nested cluster-node`. > 👍 > >> The function header of find_acpi_cpu_topology_cluster() says that `... > >> the cluster, if present is the level of topology above CPUs. ...`. > >> > > > > Exactly and that's how sysfs is also defined and we can't go back and change > > that now. I don't see any issue TBH. > > OK. > > >> From this perspective I can see your point. But this is then still > >> clearly poorly designed. > > > > Not really as per the definition. > > Not from the viewpoint of topology and cacheinfo. But from the scheduler > and the whole thing gets activated by a scheduler CONFIG option. > Agreed and I too think it must be enabled by default. > >> How would we ever support CONFIG_SCHED_CLUSTER > >> in DT when it really (potentially) would bring a benefit (i.e. in the > >> Armv9 L2-complex case) and not only create trouble for the task > >> scheduler to setup its domains correctly? > > > > Indeed, that is the next problem once we get all these aligned across > > DT and ACPI. They have diverged and I prefer not to allow that anymore > > by adding more divergence e.g. to support Armv9 L2-complex case. Please > > consider that on top of these, I am not addressing that at the moment. > > In fact I am not addressing any sched_domain topics or issues. I have made > > that clear 😉. > > If I recall the content of our discussion correctly, `Armv9 L2 > complexes` support could come from L2 (probably `LLC - 1` ?) detection > from cacheinfo. But this is not part of this patch-set. > Correct and thanks for making that clear here. I have intentionally not mentioned it so far as I am not addressing anything specific to such a topology. > >> Also in case we stick to > >> setting CONFIG_SCHED_CLUSTER=1 by default, CLS should be the default LLC > >> sched domain and MC the exceptional one. Just to respect the way how the > >> task scheduler removes not useful domains today. > > > > Fix the cpu_clustergroup_mask or any other cpu_*group_mask as per your > > taste. The topology masks are just inputs to these and will not be changed > > or diverged for these reasons. Sorry if that is not helpful, but that is the > > reality with sysfs exposed to the user-space. > > Agreed. We don't have to rely on the task scheduler to build the right > sched domain hierarchy out of every cpu_xxx_mask() functions. We can > tweak cpu_xxx_mask() to get this done. > Correct, I am not saying it is as simple as that, but to keep hardware topology and the info fed to scheduler or the info as viewed from sched_domains perspective different. The former changes with hardware while the latter changes with the view of scheduler. Based on the logic it used to optimise, scheduler can try different view on the same hardware but that's not where we want to be. We want to provide a generic view based on all the h/w cpu and cache topology information. It may not be always optimal, but we can try the best. > >>> If you are not happy with that, then how can be be happy with what is the > >>> current behaviour on ACPI + and - CONFIG_SCHED_CLUSTER. I haven't got > >>> your opinion yet on that matter. > >> > >> I guess it's clear now that ACPI + CONFIG_SCHED_CLUSTER with ``the level > >> of topology above CPUs` is congruent with LLC` creates trouble to the > >> scheduler. So I don't see why we should replicate this for DT. Let's > >> discuss further tomorrow in person. > > > > I see it differently. If that creates a trouble, fix that and you will not > > have any issues with DT too. > > OK, I think we (arm64) found a way to support a default > CONFIG_SCHED_CLUSTER and fixing the `Juno lstopo` issue with a possible > way to include `Armv9 L2 complexes` support via cacheinfo later. Thanks for all the discussion. Hope we may not have to revisit this topic in such depth until another topology that breaks all our current assumption arrives in the wild which may not be too long. I remember talking with Morten and concluding LLC is sufficient for arm64 couple of years back, but now that can be questionable with Armv9 L2 complex. -- Regards, Sudeep 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 4B813C43334 for ; Tue, 21 Jun 2022 16:01:49 +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:In-Reply-To:MIME-Version:References: 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=X76dde9Kld1Q3yyNYXso3mKLmP0K6hy0C4KE+vLLIvM=; b=2caGoCz0I0dK2u mCkZoyGEAe+KGu5T1+IFKCFpQhFMCcj0IMgR6DxhYEQq8vWeD/b+mrSIQJgsnH8Xx4k63GeEBQqJK 1/fwDIZeu0rnuhqMWp9Z76AiEeJBMFJqCuBsOO9RQ6m0GFF2RO6yPxmeO8sTcIroXDkU756AVP6Ql 0aWCuVysaH7NVSl+OUacHtDKsXfPja2Zxu/GgXWk3r5YGd4outuGNY+7jgW3hwyrABxdgm7pC24XF lGOfStxJ8GrXcrls8je3OhNn8zR0CAnrRVsSv3w0v5QEfvlniNU+pf4TMeY/qNU3/MakbtfZX6m1Z 8yCMYCAdVhnojAYTQZuw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3gJ3-006HXs-32; Tue, 21 Jun 2022 16:00:45 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1o3gIy-006HVP-IC; Tue, 21 Jun 2022 16:00:42 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4ED50165C; Tue, 21 Jun 2022 09:00:36 -0700 (PDT) Received: from bogus (e103737-lin.cambridge.arm.com [10.1.197.49]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AD1E53F66F; Tue, 21 Jun 2022 09:00:34 -0700 (PDT) Date: Tue, 21 Jun 2022 17:00:32 +0100 From: Sudeep Holla To: Dietmar Eggemann Cc: Vincent Guittot , linux-kernel@vger.kernel.org, Atish Patra , Atish Patra , Morten Rasmussen , Sudeep Holla , Qing Wang , linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, Rob Herring Subject: Re: [PATCH v3 15/16] arch_topology: Set cluster identifier in each core/thread from /cpu-map Message-ID: <20220621160032.rtvrtfss55xdirem@bogus> References: <20220525081416.3306043-16-sudeep.holla@arm.com> <947470ba-35fc-3c72-d01b-c0a7337216a2@arm.com> <20220606102159.dduxmvq4m2fm6gks@bogus> <20220610102753.virkx47uyfsojol6@bogus> <20220613111743.3od6a5dyyogad4ay@bogus> <73574a8f-5c72-8f7e-3dc4-42493131681e@arm.com> <20220617111647.62hsqbpl3bk7xb2y@bogus> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220621_090040_736958_60B1BF4A X-CRM114-Status: GOOD ( 62.07 ) 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 T24gTW9uLCBKdW4gMjAsIDIwMjIgYXQgMDM6Mjc6MzNQTSArMDIwMCwgRGlldG1hciBFZ2dlbWFu biB3cm90ZToKPiBPbiAxNy8wNi8yMDIyIDEzOjE2LCBTdWRlZXAgSG9sbGEgd3JvdGU6Cj4gPiBP biBUaHUsIEp1biAxNiwgMjAyMiBhdCAwNTowMjoyOFBNICswMTAwLCBEaWV0bWFyIEVnZ2VtYW5u IHdyb3RlOgo+ID4+IE9uIDEzLzA2LzIwMjIgMTI6MTcsIFN1ZGVlcCBIb2xsYSB3cm90ZToKPiA+ Pj4gT24gTW9uLCBKdW4gMTMsIDIwMjIgYXQgMTE6MTk6MzZBTSArMDIwMCwgRGlldG1hciBFZ2dl bWFubiB3cm90ZToKPiA+Pj4+IE9uIDEwLzA2LzIwMjIgMTI6MjcsIFN1ZGVlcCBIb2xsYSB3cm90 ZToKPiA+Pj4+PiBPbiBGcmksIEp1biAxMCwgMjAyMiBhdCAxMjowODo0NFBNICswMjAwLCBWaW5j ZW50IEd1aXR0b3Qgd3JvdGU6Cj4gPj4+Pj4+IE9uIE1vbiwgNiBKdW4gMjAyMiBhdCAxMjoyMiwg U3VkZWVwIEhvbGxhIDxzdWRlZXAuaG9sbGFAYXJtLmNvbT4gd3JvdGU6Cj4gCj4gWy4uLl0KPiAK PiA+Pj4gV2hhdCBhcmUgeW91IHJlZmVycmluZyBhcyAnZ2x1ZSB0aGVtIHRvZ2V0aGVyJy4gQXMg SSBzYWlkIHRoaXMgc2VyaWVzIGp1c3QKPiA+Pj4gYWRkcmVzcyB0aGUgaGFyZHdhcmUgdG9wb2xv Z3kgYW5kIGlmIHRoZXJlIGlzIGFueSBpbXBhY3Qgb24gc2NoZWQgZG9tYWlucwo+ID4+PiB0aGVu IGl0IGlzIGRvIHdpdGggYWxpZ25tZW50IHdpdGggQUNQSSBhbmQgRFQgcGxhdGZvcm0gYmVoYXZp b3VyLiBJIGFtIG5vdAo+ID4+PiBhZGRpbmcgYW55dGhpbmcgbW9yZSB0byBnbHVlIHRvcG9sb2d5 IGFuZCBpbmZvIG5lZWRlZCBmb3Igc2NoZWQgZG9tYWlucy4KPiA+Pgo+ID4+IFlvdSBjYW4gZml4 ICgxKSB3aXRob3V0ICgyKSBwYXJzaW5nIDEuIGxldmVsIGNsdXN0ZXIgbm9kZXMgYXMKPiA+PiBj bHVzdGVyX3NpYmxpbmdzLgo+ID4+Cj4gPiAKPiA+IFRlY2huaWNhbGx5IHllcywgYnV0IEkgc2Vl IG5vIHBvaW50IGluIGRlbGF5aW5nIGl0IGFzIGl0IGlzIGNvbnNpZGVyZWQgYXMKPiA+IGJyb2tl biB3aXRoIHJlc3BlY3QgdG8gdGhlIG1vbWVudCBBQ1BJIGV4cG9zZWQgdGhlIGNvcnJlY3QgdmFs dWUgYW5kIGF0IHRoZQo+ID4gc2FtZSB0aW1lIHJlc3VsdGVkIGluIGV4cG9zaW5nIGluY29ycmVj dCB2YWx1ZSBpbiBjYXNlIG9mIERULiBJIGFtIHJlZmVycmluZwo+ID4gdG8gdGhlIHNhbWUgY2hh bmdlIHRoYXQgaW50cm9kdWNlZCBTQ0hFRF9DTFVTVEVSLiBUaGUgZGFtYWdlIGlzIGRvbmUgYW5k IGl0Cj4gPiBuZWVkcyByZXBhaXJpbmcgQVNBUC4KPiAKPiBPSywgdGhlbiBsZXRzIGAvc3lzLy4u Li90b3BvbG9neS9jbHVzdGVyX2NwdXNgIHJlZmVyIHRvIHB1cmUKPiB0b3BvbG9neS1iYXNlZCBj bHVzdGVyIGluZm9ybWF0aW9uLiBUaGlzIGNhbiBiZSBEVCBjbHVzdGVyLW5vZGUKPiBpbmZvcm1h dGlvbiBvciBBQ1BJIEwzLXRhZyBpbmZvcm1hdGlvbiBlLmcuIGZvciBLUDkyMC4KPgoKQWdyZWVk LiBBbGwgdGhlIGluZm9ybWF0aW9uIHVuZGVyIC9zeXMvLi4uL3RvcG9sb2d5LyBhcmUgdGhlIGhh cmR3YXJlIHZpZXcKYW5kIG5vdCB0aGUgc2NoZWR1bGVyJ3MgdmlldyBvZiB0aGUgaGFyZHdhcmUg Zm9yIHRoZSBwdXJwb3NlIG9mIGJ1aWxkaW5nCnNjaGVkIGRvbWFpbnMuCgo+ID4+PiBJbmRlZWQu IEJ1dCBJIGRvbid0IGdldCB3aGF0IHlvdSBtZWFuIGJ5IDIgbGV2ZWwgaGVyZS4gQUNQSSBwdXRz IDFzdCBsZXZlbAo+ID4+Cj4gPj4gY3B1X21hcCB7Cj4gPj4gICBzb2NrZXQwIHsKPiA+PiAgICAg Y2x1c3RlcjAgeyAgICA8LS0gMS4gbGV2ZWwgY2x1c3Rlcgo+ID4+ICAgICAgIGNsdXN0ZXIwIHsg IDwtLSAyLiBsZXZlbCBjbHVzdGVyICgzIC0tPikKPiA+IAo+ID4gT2ggSSBoYWQgbWlzdW5kZXJz dG9vZCB0aGlzIGxldmVsIG5vbWVuY2xhdHVyZSwgSSByZWZlciBpdCBhcyBsZWFmIGNsdXN0ZXIK PiA+IG5vZGUgd2hpY2ggaXMgMi4gbGV2ZWwgY2x1c3RlciBpbiB0aGlzIERUIHNuaXBwZXQuCj4g PiAKPiA+PiAgICAgICAgIGNvcmUwIHsKPiA+Pgo+ID4+ICAgICAgICAgfTsKPiA+PiAgICAgICAg IGNvcmUxIHsKPiA+Pgo+ID4+ICAgICAgICAgfTsKPiA+PiAgICAgICBjbHVzdGVyMSB7Cj4gPj4g ICAuLi4KPiA+Pgo+ID4+IEFybXY5IEwyIGNvbXBsZXhlczogZS5nLiBRQyBTTTg0NTA6Cj4gPj4K PiA+PiAgICAgICAuLS0tLS0tLS0tLS0tLS0tLgo+ID4+IENQVSAgIHwwIDEgMiAzIDQgNSA2IDd8 Cj4gPj4gICAgICAgKy0tLS0tLS0tLS0tLS0tLSsKPiA+PiB1YXJjaCB8bCBsIGwgbCBtIG0gbSBi fCAoc28gY2FsbGVkIHRyaS1nZWFyOiBsaXR0bGUsIG1lZGl1bSwgYmlnKQo+ID4+ICAgICAgICst LS0tLS0tLS0tLS0tLS0rCj4gPj4gICBMMiAgfCAgIHwgICB8IHwgfCB8IHwgPC0tIDIuIGxldmVs IGNsdXN0ZXIsIEFybXY5IEwyIGNvbXBsZXhlcyAoPC0tIDMpCj4gPiAKPiA+IEFnYWluIGJlZm9y ZSBJIGFzc3VtZSwgd2hhdCBleGFjdGx5IDwtLTMgaGVyZSBhbmQgaW4gYWJvdmUgc25pcHBldCBt ZWFuID8KPiAKPiBJIHdhbnRlZCB0byBzaG93IHRoYXQgd2UgY291bGQgZW5jb2RlIGAyLiBsZXZl bCBjbHVzdGVyYCBhcyBgQXJtdjkgTDIKPiBjb21wbGV4ZXNgLiBCdXQgc2luY2Ugd2UgYWdyZWVk IChhZnRlciB0aGUgZW1haWwgd2FzIHNlbnQpIG5vdCB0bwo+IHN1cHBvcnQgYG5lc3RlZCBjbHVz dGVyLW5vZGVzYCwgdGhpcyBpZGVhIGRvZXMgbm90IGhvbGQgYW55bW9yZS4KPgoKWWVzIEkgcGxh biB0byB0aHJvdyB3YXJuaW5nIGlmIHdlIGVuY291bnRlciBuZXN0ZWQgY2x1c3RlcnMsIHdpbGwg YmUgcGFydCBvZgpuZXh0IHZlcnNpb24oaHR0cHM6Ly9naXQua2VybmVsLm9yZy9zdWRlZXAuaG9s bGEvYy85NGZhZTEyZDY0YmIpLgoKPiA+PiAgICAgICArLS0tLS0tLS0tLS0tLS0tKwo+ID4+ICAg TDMgIHw8LS0gICAgICAgICAtLT58Cj4gPj4gICAgICAgKy0tLS0tLS0tLS0tLS0tLSsKPiA+PiAg ICAgICB8PC0tIGNsdXN0ZXIgLS0+fAo+ID4gCj4gPiBJIHRoaW5rIHRoaXMgaXMgMiBsZXZlbCBj bHVzdGVyIG9yIG9ubHkgY2x1c3RlciBpbiB0aGlzIHN5c3RlbSB3LnIudCBoYXJkd2FyZS4KPiA+ IFNvIGxldHMgbm90IGNvbmZ1c2Ugd2l0aCBtdWx0aS1sZXZlbCBpZiBub3QgbmVjZXNzYXJ5Lgo+ Cj4gTm8gbmVlZCwgd2Ugc2FpZCBubyBgbmVzdGVkIGNsdXN0ZXItbm9kZWAgc3VwcG9ydCBpbiBE VC4KPgoK8J+RjQoKPiA+PiAgICAgICArLS0tLS0tLS0tLS0tLS0tKwo+ID4+ICAgICAgIHw8LS0g ICBEU1UgICAtLT58Cj4gPj4gICAgICAgJy0tLS0tLS0tLS0tLS0tLScKPiA+Pgo+ID4+IE9ubHkg aWYgd2UgbWFwIChpKSBpbnRvIGNsdXN0ZXJfc2libGluZywgd2UgZ2V0IHRoZSBzYW1lIGhhcmR3 YXJlCj4gPj4gcmVwcmVzZW50YXRpb24gKGZvciB0aGUgdGFzayBzY2hlZHVsZXIpIGZvciBBQ1BJ ICg0KSBhbmQgRFQgKDUpIHN5c3RlbXMuCj4gPj4KPiA+IAo+ID4gV2hhdCBpcyAoaSkgYWJvdmUg Pwo+IAo+IFNvcnJ5LCAoaSkgd2FzIG1lYW50IHRvIGJlIGAzIC0tPmAuCj4KCkFoIG9rCgo+ID4+ ICg0KSBleGFtcGxlczoKPiA+Pgo+ID4+IEt1bnBlbmc5MjAgLSAyNCBDUFVzIHNoYXJpbmcgTExD IChjcHVfY29yZWdyb3VwX21hc2soKSksIDQgQ1BVcyBzaGFyaW5nCj4gPj4gTDMtdGFnIChjcHVf Y2x1c3Rlcmdyb3VwX21hc2soKSkuCj4gPj4KPiA+IAo+ID4gQWdhaW4gZGVjb3VwbGUgY2FjaGUg aW5mbyBhbmQgY2x1c3RlciBpbmZvIGZyb20gaC93LCB5b3UgaGF2ZSBhbGwgdGhlIGluZm8uCj4g PiBZb3UgY2FuIGNvdXBsZSB0aGVtIHRvZ2V0aGVyIGlmIHRoYXQgaGVscHMgd2hlbiB5b3UgZmVl ZCBzY2hlZF9kb21haW5zLgo+Cj4gT0ssIHRoaXMgaXMgd2hhdCB3ZSBmaW5hbGx5IGFncmVlZC4K PgoK8J+RjQoKPiA+PiBYODYgSmFjb2JzdmlsbGUgLSAyNCBDUFVzIHNoYXJpbmcgTExDIChMMyks IDQgQ1BVcyBzaGFyaW5nIEwyCj4gPj4KPiA+PiBBcm12OSBMMiBjb21wbGV4ZXM6IGUuZy4gUUMg U004NDUwIC0gOCBDUFVzIHNoYXJpbmcgTExDIChMMyksIChmb3IgQTUxMAo+ID4+IChsaXR0bGUg Q1BVcykpIDIgQ1BVcyBzaGFyaW5nIEwyCj4gPgo+ID4gWy4uLl0KPiA+IAo+ID4+PiBBbmQgeWVz IGxzdG9wbyBkb2Vzbid0IHJlYWQgY2x1c3RlciBJRHMuIEJ1dCB3ZSBleHBvc2UgdGhlbSBpbiBB Q1BJIHN5c3RlbQo+ID4+PiBhbmQgbm90IG9uIERUIHdoaWNoIHdhcyBteSBtYWluIHBvaW50Lgo+ IAo+IE9LLCBubyBmdXJ0aGVyIGRpc2N1c3Npb24gbmVlZGVkIGhlcmUuIGAvc3lzLy4uLi90b3Bv bG9neS9jbHVzdGVyX2NwdXNgCj4gc2hvd3MgTDIgKExMQykgb24gSnVubywgTDMtdGFnIGFuIEtQ OTIwIG9yIEwyIG9uIFg4NiBKYWNvYnN2aWxsZS4gVGhlCj4gY3B1X3h4eF9tYXNrKClzIG9mIChl LmcuKSBkZWZhdWx0X3RvcG9sb2d5W10gaGF2ZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUKPiBzY2hl ZHVsZXIgc2VlcyB0aGUgY29ycmVjdCBpbmZvcm1hdGlvbiAodGhlIGhpZXJhcmNoeSBvZiBjcHVt YXNrcykuCj4KCkNvcnJlY3QKCj4gPj4gVW5kZXJzdG9vZC4gQnV0IGEgS3VucGVuZzkyMCBgY2x1 c3Rlcl9jcHVzX2xpc3RgIGZpbGUgd291bGQgY29udGFpbgo+ID4+IGxvZ2ljYWxseSBkaWZmZXJl bnQgaW5mb3JtYXRpb24gdGhhbiBhIEp1bm8gYGNsdXN0ZXJfY3B1c19saXN0YCBmaWxlLgo+ID4+ Cj4gPiBBbmQgd2h5IGlzIHRoYXQgPwo+IAo+IElmIHdlIHNlZSBpdCBmcm9tIHRoZSBhbmdsZSBv ZiB0aGUgZGVmaW5pdGlvbiBvZiBTQ0hFRF9DT05GSUdfQ0xVU1RFUgo+IChgLi4uIHRoZSBsZXZl bCBvZiB0b3BvbG9neSBhYm92ZSBDUFVzIC4uLmAgdGhlbiBJIGNhbiBzZWUgdGhhdCBib3RoCj4g ZGVmaW5pdGlvbnMgYXJlIHRoZSBzYW1lLiAoQ1BVUyBzaG91bGQgYmUgcmF0aGVyIGBjb3Jlc2Ag aGVyZSwgSSBndWVzcz8pLgo+IAo+IFsuLi5dCj4KClllcywgSSBoYXZlIHVzZSBjb3JlcyBhbmQg Q1BVcyBpbnRlcmNoYW5nZXMgYXQgc2V2ZXJhbCBwbGFjZXMgc28gZmFyLCB3aWxsCnRyeSB0byBi ZSBtb3JlIHNwZWNpZmljIGluIHRoZSBmdXR1cmUuCgo+ID4+PiBBcyBwb2ludGVkIG91dCBlYXJs aWVyLCBoYXZlIHlvdSBjaGVja2VkIEFDUEkgb24gSnVubyBhbmQgd2l0aCAKPiA+Pj4gQ09ORklH X1NDSEVEX0NMVVNURVIgPyBJZiB0aGUgYmVoYXZpb3VyIHdpdGggbXkgc2VyaWVzIG9uIERUIGFu ZCBBQ1BJCj4gPj4+IGRpZmZlcnMsIHRoZW4gaXQgaXMgYW4gaXNzdWUuIEJ1dCBBRkFJVSwgaXQg ZG9lc24ndCBhbmQgdGhhdCBpcyBteSBtYWluCj4gPj4+IGFyZ3VtZW50LiBZb3UgYXJlIGp1c3Qg YXNzdW1pbmcgd2hhdCB3ZSBoYXZlIG9uIEp1bm8gd2l0aCBEVCBpcyBjb3JyZWN0Cj4gPj4+IHdo aWNoIG1heSBiZSB3LnIudCB0byBzY2hlZHVsZXIgYnV0IGRlZmluaXRlbHkgbm90IHdpdGggcmVz cGVjdCB0byB0aGUKPiA+Pj4gaGFyZHdhcmUgdG9wb2xvZ3kgZXhwb3NlZCB0byB0aGUgdXNlcnMu IFNvIG15IGFpbSBpcyB0byBnZXQgdGhhdCBmaXhlZC4KPiA+Pgo+ID4+IEkgbmV2ZXIgcnVuIEp1 bm8gdy8gQUNQSS4gQXJlIHlvdSBzYXlpbmcgdGhhdAo+ID4+IGZpbmRfYWNwaV9jcHVfdG9wb2xv Z3lfY2x1c3RlcigpIHJldHVybnMgY3B1X3RvcG9sb2d5W2NwdV0uY2x1c3Rlcl9pZCdzCj4gPj4g d2hpY2ggbWF0Y2ggdGhlIGAxLiBsZXZlbCBjbHVzdGVyIG5vZGVzYD8KPiA+Pgo+ID4KPiA+IEFn YWluIEkgYW0gdG90YWxseSBjb25mdXNlZCBhcyB3aHkgdGhpcyBpcyBub3cgMS5sZXZlbCBjbHVz dGVyIHdoZXJlIGFzIGFib3ZlCj4gPiBTRE0gd2FzIDIubGV2ZWwgY2x1c3Rlci4gQm90aCBTb0Nz IGhhdmUgb25seSAxIGxldmVsIG9mIGNsdXN0ZXIuIFdoaWxlIFNETQo+ID4gaGFzIDEgRFNVIGNs dXN0ZXIsIEp1bm8gaGFzIDIgY2x1c3RlcnMuCj4gCj4gTm8gbmVlZCBpbiBhZ3JlZWluZyB3aGF0 IGxldmVsIChjb3VsZCkgc3RhbmQocykgaGVyZSBmb3IuIFdlIHNhaWQgYG5vCj4gbmVzdGVkIGNs dXN0ZXItbm9kZWAuCj4KCvCfkY0KCj4gPj4gVGhlIGZ1bmN0aW9uIGhlYWRlciBvZiBmaW5kX2Fj cGlfY3B1X3RvcG9sb2d5X2NsdXN0ZXIoKSBzYXlzIHRoYXQgYC4uLgo+ID4+IHRoZSBjbHVzdGVy LCBpZiBwcmVzZW50IGlzIHRoZSBsZXZlbCBvZiB0b3BvbG9neSBhYm92ZSBDUFVzLiAuLi5gLgo+ ID4+Cj4gPiAKPiA+IEV4YWN0bHkgYW5kIHRoYXQncyBob3cgc3lzZnMgaXMgYWxzbyBkZWZpbmVk IGFuZCB3ZSBjYW4ndCBnbyBiYWNrIGFuZCBjaGFuZ2UKPiA+IHRoYXQgbm93LiBJIGRvbid0IHNl ZSBhbnkgaXNzdWUgVEJILgo+IAo+IE9LLgo+IAo+ID4+IEZyb20gdGhpcyBwZXJzcGVjdGl2ZSBJ IGNhbiBzZWUgeW91ciBwb2ludC4gQnV0IHRoaXMgaXMgdGhlbiBzdGlsbAo+ID4+IGNsZWFybHkg cG9vcmx5IGRlc2lnbmVkLgo+ID4gCj4gPiBOb3QgcmVhbGx5IGFzIHBlciB0aGUgZGVmaW5pdGlv bi4KPiAKPiBOb3QgZnJvbSB0aGUgdmlld3BvaW50IG9mIHRvcG9sb2d5IGFuZCBjYWNoZWluZm8u IEJ1dCBmcm9tIHRoZSBzY2hlZHVsZXIKPiBhbmQgdGhlIHdob2xlIHRoaW5nIGdldHMgYWN0aXZh dGVkIGJ5IGEgc2NoZWR1bGVyIENPTkZJRyBvcHRpb24uCj4KCkFncmVlZCBhbmQgSSB0b28gdGhp bmsgaXQgbXVzdCBiZSBlbmFibGVkIGJ5IGRlZmF1bHQuCgo+ID4+IEhvdyB3b3VsZCB3ZSBldmVy IHN1cHBvcnQgQ09ORklHX1NDSEVEX0NMVVNURVIKPiA+PiBpbiBEVCB3aGVuIGl0IHJlYWxseSAo cG90ZW50aWFsbHkpIHdvdWxkIGJyaW5nIGEgYmVuZWZpdCAoaS5lLiBpbiB0aGUKPiA+PiBBcm12 OSBMMi1jb21wbGV4IGNhc2UpIGFuZCBub3Qgb25seSBjcmVhdGUgdHJvdWJsZSBmb3IgdGhlIHRh c2sKPiA+PiBzY2hlZHVsZXIgdG8gc2V0dXAgaXRzIGRvbWFpbnMgY29ycmVjdGx5Pwo+ID4gCj4g PiBJbmRlZWQsIHRoYXQgaXMgdGhlIG5leHQgcHJvYmxlbSBvbmNlIHdlIGdldCBhbGwgdGhlc2Ug YWxpZ25lZCBhY3Jvc3MKPiA+IERUIGFuZCBBQ1BJLiBUaGV5IGhhdmUgZGl2ZXJnZWQgYW5kIEkg cHJlZmVyIG5vdCB0byBhbGxvdyB0aGF0IGFueW1vcmUKPiA+IGJ5IGFkZGluZyBtb3JlIGRpdmVy Z2VuY2UgZS5nLiB0byBzdXBwb3J0IEFybXY5IEwyLWNvbXBsZXggY2FzZS4gUGxlYXNlCj4gPiBj b25zaWRlciB0aGF0IG9uIHRvcCBvZiB0aGVzZSwgSSBhbSBub3QgYWRkcmVzc2luZyB0aGF0IGF0 IHRoZSBtb21lbnQuCj4gPiBJbiBmYWN0IEkgYW0gbm90IGFkZHJlc3NpbmcgYW55IHNjaGVkX2Rv bWFpbiB0b3BpY3Mgb3IgaXNzdWVzLiBJIGhhdmUgbWFkZQo+ID4gdGhhdCBjbGVhciDwn5iJLgo+ IAo+IElmIEkgcmVjYWxsIHRoZSBjb250ZW50IG9mIG91ciBkaXNjdXNzaW9uIGNvcnJlY3RseSwg YEFybXY5IEwyCj4gY29tcGxleGVzYCBzdXBwb3J0IGNvdWxkIGNvbWUgZnJvbSBMMiAocHJvYmFi bHkgYExMQyAtIDFgID8pIGRldGVjdGlvbgo+IGZyb20gY2FjaGVpbmZvLiBCdXQgdGhpcyBpcyBu b3QgcGFydCBvZiB0aGlzIHBhdGNoLXNldC4KPgoKQ29ycmVjdCBhbmQgdGhhbmtzIGZvciBtYWtp bmcgdGhhdCBjbGVhciBoZXJlLiBJIGhhdmUgaW50ZW50aW9uYWxseSBub3QKbWVudGlvbmVkIGl0 IHNvIGZhciBhcyBJIGFtIG5vdCBhZGRyZXNzaW5nIGFueXRoaW5nIHNwZWNpZmljIHRvIHN1Y2gg YQp0b3BvbG9neS4KCj4gPj4gQWxzbyBpbiBjYXNlIHdlIHN0aWNrIHRvCj4gPj4gc2V0dGluZyBD T05GSUdfU0NIRURfQ0xVU1RFUj0xIGJ5IGRlZmF1bHQsIENMUyBzaG91bGQgYmUgdGhlIGRlZmF1 bHQgTExDCj4gPj4gc2NoZWQgZG9tYWluIGFuZCBNQyB0aGUgZXhjZXB0aW9uYWwgb25lLiBKdXN0 IHRvIHJlc3BlY3QgdGhlIHdheSBob3cgdGhlCj4gPj4gdGFzayBzY2hlZHVsZXIgcmVtb3ZlcyBu b3QgdXNlZnVsIGRvbWFpbnMgdG9kYXkuCj4gPiAKPiA+IEZpeCB0aGUgY3B1X2NsdXN0ZXJncm91 cF9tYXNrIG9yIGFueSBvdGhlciBjcHVfKmdyb3VwX21hc2sgYXMgcGVyIHlvdXIKPiA+IHRhc3Rl LiBUaGUgdG9wb2xvZ3kgbWFza3MgYXJlIGp1c3QgaW5wdXRzIHRvIHRoZXNlIGFuZCB3aWxsIG5v dCBiZSBjaGFuZ2VkCj4gPiBvciBkaXZlcmdlZCBmb3IgdGhlc2UgcmVhc29ucy4gU29ycnkgaWYg dGhhdCBpcyBub3QgaGVscGZ1bCwgYnV0IHRoYXQgaXMgdGhlCj4gPiByZWFsaXR5IHdpdGggc3lz ZnMgZXhwb3NlZCB0byB0aGUgdXNlci1zcGFjZS4KPiAKPiBBZ3JlZWQuIFdlIGRvbid0IGhhdmUg dG8gcmVseSBvbiB0aGUgdGFzayBzY2hlZHVsZXIgdG8gYnVpbGQgdGhlIHJpZ2h0Cj4gc2NoZWQg ZG9tYWluIGhpZXJhcmNoeSBvdXQgb2YgZXZlcnkgY3B1X3h4eF9tYXNrKCkgZnVuY3Rpb25zLiBX ZSBjYW4KPiB0d2VhayBjcHVfeHh4X21hc2soKSB0byBnZXQgdGhpcyBkb25lLgo+CgpDb3JyZWN0 LCBJIGFtIG5vdCBzYXlpbmcgaXQgaXMgYXMgc2ltcGxlIGFzIHRoYXQsIGJ1dCB0byBrZWVwIGhh cmR3YXJlCnRvcG9sb2d5IGFuZCB0aGUgaW5mbyBmZWQgdG8gc2NoZWR1bGVyIG9yIHRoZSBpbmZv IGFzIHZpZXdlZCBmcm9tCnNjaGVkX2RvbWFpbnMgcGVyc3BlY3RpdmUgZGlmZmVyZW50LiBUaGUg Zm9ybWVyIGNoYW5nZXMgd2l0aCBoYXJkd2FyZSB3aGlsZQp0aGUgbGF0dGVyIGNoYW5nZXMgd2l0 aCB0aGUgdmlldyBvZiBzY2hlZHVsZXIuIEJhc2VkIG9uIHRoZSBsb2dpYyBpdAp1c2VkIHRvIG9w dGltaXNlLCBzY2hlZHVsZXIgY2FuIHRyeSBkaWZmZXJlbnQgdmlldyBvbiB0aGUgc2FtZSBoYXJk d2FyZSBidXQKdGhhdCdzIG5vdCB3aGVyZSB3ZSB3YW50IHRvIGJlLiBXZSB3YW50IHRvIHByb3Zp ZGUgYSBnZW5lcmljIHZpZXcgYmFzZWQgb24KYWxsIHRoZSBoL3cgY3B1IGFuZCBjYWNoZSB0b3Bv bG9neSBpbmZvcm1hdGlvbi4gSXQgbWF5IG5vdCBiZSBhbHdheXMgb3B0aW1hbCwKYnV0IHdlIGNh biB0cnkgdGhlIGJlc3QuCgo+ID4+PiBJZiB5b3UgYXJlIG5vdCBoYXBweSB3aXRoIHRoYXQsIHRo ZW4gaG93IGNhbiBiZSBiZSBoYXBweSB3aXRoIHdoYXQgaXMgdGhlCj4gPj4+IGN1cnJlbnQgYmVo YXZpb3VyIG9uIEFDUEkgKyBhbmQgLSBDT05GSUdfU0NIRURfQ0xVU1RFUi4gSSBoYXZlbid0IGdv dAo+ID4+PiB5b3VyIG9waW5pb24geWV0IG9uIHRoYXQgbWF0dGVyLgo+ID4+Cj4gPj4gSSBndWVz cyBpdCdzIGNsZWFyIG5vdyB0aGF0IEFDUEkgKyBDT05GSUdfU0NIRURfQ0xVU1RFUiB3aXRoIGBg dGhlIGxldmVsCj4gPj4gb2YgdG9wb2xvZ3kgYWJvdmUgQ1BVc2AgaXMgY29uZ3J1ZW50IHdpdGgg TExDYCBjcmVhdGVzIHRyb3VibGUgdG8gdGhlCj4gPj4gc2NoZWR1bGVyLiBTbyBJIGRvbid0IHNl ZSB3aHkgd2Ugc2hvdWxkIHJlcGxpY2F0ZSB0aGlzIGZvciBEVC4gTGV0J3MKPiA+PiBkaXNjdXNz IGZ1cnRoZXIgdG9tb3Jyb3cgaW4gcGVyc29uLgo+ID4gCj4gPiBJIHNlZSBpdCBkaWZmZXJlbnRs eS4gSWYgdGhhdCBjcmVhdGVzIGEgdHJvdWJsZSwgZml4IHRoYXQgYW5kIHlvdSB3aWxsIG5vdAo+ ID4gaGF2ZSBhbnkgaXNzdWVzIHdpdGggRFQgdG9vLgo+IAo+IE9LLCBJIHRoaW5rIHdlIChhcm02 NCkgZm91bmQgYSB3YXkgdG8gc3VwcG9ydCBhIGRlZmF1bHQKPiBDT05GSUdfU0NIRURfQ0xVU1RF UiBhbmQgZml4aW5nIHRoZSBgSnVubyBsc3RvcG9gIGlzc3VlIHdpdGggYSBwb3NzaWJsZQo+IHdh eSB0byBpbmNsdWRlIGBBcm12OSBMMiBjb21wbGV4ZXNgIHN1cHBvcnQgdmlhIGNhY2hlaW5mbyBs YXRlci4KClRoYW5rcyBmb3IgYWxsIHRoZSBkaXNjdXNzaW9uLiBIb3BlIHdlIG1heSBub3QgaGF2 ZSB0byByZXZpc2l0IHRoaXMgdG9waWMKaW4gc3VjaCBkZXB0aCB1bnRpbCBhbm90aGVyIHRvcG9s b2d5IHRoYXQgYnJlYWtzIGFsbCBvdXIgY3VycmVudCBhc3N1bXB0aW9uCmFycml2ZXMgaW4gdGhl IHdpbGQgd2hpY2ggbWF5IG5vdCBiZSB0b28gbG9uZy4KCkkgcmVtZW1iZXIgdGFsa2luZyB3aXRo IE1vcnRlbiBhbmQgY29uY2x1ZGluZyBMTEMgaXMgc3VmZmljaWVudCBmb3IgYXJtNjQKY291cGxl IG9mIHllYXJzIGJhY2ssIGJ1dCBub3cgdGhhdCBjYW4gYmUgcXVlc3Rpb25hYmxlIHdpdGggQXJt djkgTDIKY29tcGxleC4KCi0tIApSZWdhcmRzLApTdWRlZXAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0 CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK