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 0D052C48BC3 for ; Mon, 19 Feb 2024 10:17:29 +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:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=GyC+YVPEPQQ0RBvjo+eaZUmzY9SsfyI5FcqMXs9dRqE=; b=zkLxzM2T2RGjPt GQGOEikn8W6n8FhqkmktFmvvpx9VDvqtoaElLPmUvZjldALrltB2KFh6q8qsYhGigidGytVxQrFQd HmOKnICfXaFxGDkUbFX4q3fTVl6rfOLpRSjcCmMj0UKfDT+oenAOGrXeTcXWak364tr9S/Rnptj6j lOWJ70f0/Gb52iy92mB8kHRmDYZM6EDBcQkmHL13mX/5zqV1XOW5VOwHQHdAKR9e7uAhP5KfG/a+v fwIcus7B4qrT3qUzaClAO0xm5Er8Oy3eo2EPk1lFNQPKKi9ihV17sRkev7BtTqVY0nJ2nCcs3dZt2 Ms1DwUicf/6NzYNf9+PQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rc0hy-0000000A0Hx-3J8o; Mon, 19 Feb 2024 10:17:10 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rc0hv-0000000A0GC-3ya5 for linux-arm-kernel@lists.infradead.org; Mon, 19 Feb 2024 10:17:09 +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 3B8331007; Mon, 19 Feb 2024 02:17:42 -0800 (PST) Received: from [192.168.1.100] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 34D783F762; Mon, 19 Feb 2024 02:16:54 -0800 (PST) Message-ID: Date: Mon, 19 Feb 2024 10:16:51 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH v3 3/8] perf arm-spe/cs-etm: Directly iterate CPU maps To: Ian Rogers , Namhyung Kim Cc: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Suzuki K Poulose , Mike Leach , John Garry , Will Deacon , Thomas Gleixner , Darren Hart , Davidlohr Bueso , =?UTF-8?Q?Andr=c3=a9_Almeida?= , Kan Liang , K Prateek Nayak , Sean Christopherson , Paolo Bonzini , Kajol Jain , Athira Rajeev , Andrew Jones , Alexandre Ghiti , Atish Patra , "Steinar H. Gunderson" , Yang Jihong , Yang Li , Changbin Du , Sandipan Das , Ravi Bangoria , Paran Lee , Nick Desaulniers , Huacai Chen , Yanteng Si , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, bpf@vger.kernel.org, Leo Yan References: <20240202234057.2085863-1-irogers@google.com> <20240202234057.2085863-4-irogers@google.com> Content-Language: en-US From: James Clark In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240219_021708_122883_85A3FBDF X-CRM114-Status: GOOD ( 32.59 ) 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 CgpPbiAxNy8wMi8yMDI0IDAxOjMzLCBJYW4gUm9nZXJzIHdyb3RlOgo+IE9uIEZyaSwgRmViIDE2 LCAyMDI0IGF0IDU6MDLigK9QTSBOYW1oeXVuZyBLaW0gPG5hbWh5dW5nQGtlcm5lbC5vcmc+IHdy b3RlOgo+Pgo+PiBPbiBGcmksIEZlYiAyLCAyMDI0IGF0IDM6NDHigK9QTSBJYW4gUm9nZXJzIDxp cm9nZXJzQGdvb2dsZS5jb20+IHdyb3RlOgo+Pj4KPj4+IFJhdGhlciB0aGFuIGl0ZXJhdGUgYWxs IENQVXMgYW5kIHNlZSBpZiB0aGV5IGFyZSBpbiBDUFUgbWFwcywgZGlyZWN0bHkKPj4+IGl0ZXJh dGUgdGhlIENQVSBtYXAuIFNpbWlsYXJseSBtYWtlIHVzZSBvZiB0aGUgaW50ZXJzZWN0IGZ1bmN0 aW9uCj4+PiB0YWtpbmcgY2FyZSBmb3Igd2hlbiAiYW55IiBDUFUgaXMgc3BlY2lmaWVkLiBTd2l0 Y2gKPj4+IHBlcmZfY3B1X21hcF9faGFzX2FueV9jcHVfb3JfaXNfZW1wdHkgdG8gbW9yZSBhcHBy b3ByaWF0ZQo+Pj4gYWx0ZXJuYXRpdmVzLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IElhbiBSb2dl cnMgPGlyb2dlcnNAZ29vZ2xlLmNvbT4KPj4+IC0tLQo+Pj4gIHRvb2xzL3BlcmYvYXJjaC9hcm0v dXRpbC9jcy1ldG0uYyAgICB8IDExNCArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPj4+ICB0 b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC9hcm0tc3BlLmMgfCAgIDQgKy0KPj4+ICAyIGZpbGVz IGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYg LS1naXQgYS90b29scy9wZXJmL2FyY2gvYXJtL3V0aWwvY3MtZXRtLmMgYi90b29scy9wZXJmL2Fy Y2gvYXJtL3V0aWwvY3MtZXRtLmMKPj4+IGluZGV4IDc3ZTY2NjNjMTcwMy4uMDdiZTMyZDk5ODA1 IDEwMDY0NAo+Pj4gLS0tIGEvdG9vbHMvcGVyZi9hcmNoL2FybS91dGlsL2NzLWV0bS5jCj4+PiAr KysgYi90b29scy9wZXJmL2FyY2gvYXJtL3V0aWwvY3MtZXRtLmMKPj4+IEBAIC0xOTcsMzggKzE5 NywzNyBAQCBzdGF0aWMgaW50IGNzX2V0bV92YWxpZGF0ZV90aW1lc3RhbXAoc3RydWN0IGF1eHRy YWNlX3JlY29yZCAqaXRyLAo+Pj4gIHN0YXRpYyBpbnQgY3NfZXRtX3ZhbGlkYXRlX2NvbmZpZyhz dHJ1Y3QgYXV4dHJhY2VfcmVjb3JkICppdHIsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGV2c2VsICpldnNlbCkKPj4+ICB7Cj4+PiAtICAgICAgIGludCBpLCBl cnIgPSAtRUlOVkFMOwo+Pj4gKyAgICAgICBpbnQgaWR4LCBlcnIgPSAwOwo+Pj4gICAgICAgICBz dHJ1Y3QgcGVyZl9jcHVfbWFwICpldmVudF9jcHVzID0gZXZzZWwtPmV2bGlzdC0+Y29yZS51c2Vy X3JlcXVlc3RlZF9jcHVzOwo+Pj4gLSAgICAgICBzdHJ1Y3QgcGVyZl9jcHVfbWFwICpvbmxpbmVf Y3B1cyA9IHBlcmZfY3B1X21hcF9fbmV3X29ubGluZV9jcHVzKCk7Cj4+PiAtCj4+PiAtICAgICAg IC8qIFNldCBvcHRpb24gb2YgZWFjaCBDUFUgd2UgaGF2ZSAqLwo+Pj4gLSAgICAgICBmb3IgKGkg PSAwOyBpIDwgY3B1X19tYXhfY3B1KCkuY3B1OyBpKyspIHsKPj4+IC0gICAgICAgICAgICAgICBz dHJ1Y3QgcGVyZl9jcHUgY3B1ID0geyAuY3B1ID0gaSwgfTsKPj4+ICsgICAgICAgc3RydWN0IHBl cmZfY3B1X21hcCAqaW50ZXJzZWN0X2NwdXM7Cj4+PiArICAgICAgIHN0cnVjdCBwZXJmX2NwdSBj cHU7Cj4+Pgo+Pj4gLSAgICAgICAgICAgICAgIC8qCj4+PiAtICAgICAgICAgICAgICAgICogSW4g cGVyLWNwdSBjYXNlLCBkbyB0aGUgdmFsaWRhdGlvbiBmb3IgQ1BVcyB0byB3b3JrIHdpdGguCj4+ PiAtICAgICAgICAgICAgICAgICogSW4gcGVyLXRocmVhZCBjYXNlLCB0aGUgQ1BVIG1hcCBpcyBl bXB0eS4gIFNpbmNlIHRoZSB0cmFjZWQKPj4+IC0gICAgICAgICAgICAgICAgKiBwcm9ncmFtIGNh biBydW4gb24gYW55IENQVXMgaW4gdGhpcyBjYXNlLCB0aHVzIGRvbid0IHNraXAKPj4+IC0gICAg ICAgICAgICAgICAgKiB2YWxpZGF0aW9uLgo+Pj4gLSAgICAgICAgICAgICAgICAqLwo+Pj4gLSAg ICAgICAgICAgICAgIGlmICghcGVyZl9jcHVfbWFwX19oYXNfYW55X2NwdV9vcl9pc19lbXB0eShl dmVudF9jcHVzKSAmJgo+Pj4gLSAgICAgICAgICAgICAgICAgICAhcGVyZl9jcHVfbWFwX19oYXMo ZXZlbnRfY3B1cywgY3B1KSkKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ Pj4gKyAgICAgICAvKgo+Pj4gKyAgICAgICAgKiBTZXQgb3B0aW9uIG9mIGVhY2ggQ1BVIHdlIGhh dmUuIEluIHBlci1jcHUgY2FzZSwgZG8gdGhlIHZhbGlkYXRpb24KPj4+ICsgICAgICAgICogZm9y IENQVXMgdG8gd29yayB3aXRoLiBJbiBwZXItdGhyZWFkIGNhc2UsIHRoZSBDUFUgbWFwIGhhcyB0 aGUgImFueSIKPj4+ICsgICAgICAgICogQ1BVIHZhbHVlLiBTaW5jZSB0aGUgdHJhY2VkIHByb2dy YW0gY2FuIHJ1biBvbiBhbnkgQ1BVcyBpbiB0aGlzIGNhc2UsCj4+PiArICAgICAgICAqIHRodXMg ZG9uJ3Qgc2tpcCB2YWxpZGF0aW9uLgo+Pj4gKyAgICAgICAgKi8KPj4+ICsgICAgICAgaWYgKCFw ZXJmX2NwdV9tYXBfX2hhc19hbnlfY3B1KGV2ZW50X2NwdXMpKSB7Cj4+PiArICAgICAgICAgICAg ICAgc3RydWN0IHBlcmZfY3B1X21hcCAqb25saW5lX2NwdXMgPSBwZXJmX2NwdV9tYXBfX25ld19v bmxpbmVfY3B1cygpOwo+Pj4KPj4+IC0gICAgICAgICAgICAgICBpZiAoIXBlcmZfY3B1X21hcF9f aGFzKG9ubGluZV9jcHVzLCBjcHUpKQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgY29udGlu dWU7Cj4+PiArICAgICAgICAgICAgICAgaW50ZXJzZWN0X2NwdXMgPSBwZXJmX2NwdV9tYXBfX2lu dGVyc2VjdChldmVudF9jcHVzLCBvbmxpbmVfY3B1cyk7Cj4+PiArICAgICAgICAgICAgICAgcGVy Zl9jcHVfbWFwX19wdXQob25saW5lX2NwdXMpOwo+Pj4gKyAgICAgICB9IGVsc2Ugewo+Pj4gKyAg ICAgICAgICAgICAgIGludGVyc2VjdF9jcHVzID0gcGVyZl9jcHVfbWFwX19uZXdfb25saW5lX2Nw dXMoKTsKPj4+ICsgICAgICAgfQo+Pgo+PiBXb3VsZCBpdCBiZSBvayBpZiBhbnkgb2YgdGhlc2Ug b3BlcmF0aW9ucyBmYWlsPyAgSSBiZWxpZXZlIHRoZQo+PiBjcHUgbWFwIGZ1bmN0aW9ucyB3b3Jr IHdlbGwgd2l0aCBOVUxMIGFscmVhZHkuCj4gCj4gSWYgdGhlIGFsbG9jYXRpb24gZmFpbHMgdGhl biB0aGUgbG9vcCBiZWxvdyB3b24ndCBpdGVyYXRlICh0aGUgbWFwCj4gd2lsbCBiZSBlbXB0eSku IFRoZSBtYXAgaXMgcmVsZWFzZWQgYW5kIG5vdCB1c2VkIGVsc2V3aGVyZSBpbiB0aGUKPiBjb2Rl LiBBbiBhbGxvY2F0aW9uIGZhaWx1cmUgaGVyZSB3b24ndCBjYXVzZSB0aGUgY29kZSB0byBjcmFz aCwgYnV0Cj4gdGhlcmUgYXJlIG90aGVyIHBsYWNlcyB3aGVyZSB0aGUgY29kZSBhc3N1bWVzIHdo YXQgdGhlIHByb3BlcnRpZXMgb2YKPiBoYXZpbmcgZG9uZSB0aGlzIGZ1bmN0aW9uIGFyZSBhbmQg dGhleSB3b24ndCBiZSB3b3JraW5nIGFzIGludGVuZGVkLgo+IEl0J3Mgbm90IHVuY29tbW9uIHRv IHNlZSBFTk9NRU0gdG8ganVzdCBiZSBhYm9ydCBmb3IgdGhpcyByZWFzb24uCj4gCj4gVGhhbmtz LAo+IElhbgo+IAo+PiBUaGFua3MsCj4+IE5hbWh5dW5nCj4+CgpSZXZpZXdlZC1ieTogSmFtZXMg Q2xhcmsgPGphbWVzLmNsYXJrQGFybS5jb20+CgpBYm91dCB0aGUgb3V0IG9mIG1lbW9yeSBjYXNl LCBJIGRvbid0IHJlYWxseSBoYXZlIG11Y2ggcHJlZmVyZW5jZSBhYm91dAp0aGF0LiBJIGRvdWJ0 IG11Y2ggb2YgdGhlIGNvZGUgaXMgdGVzdGVkIG9yIHJlc2lsaWFudCB0byBpdCBhbmQgdGhlCmJl aGF2aW91ciBpcyBwcm9iYWJseSBhbHJlYWR5IHVucHJlZGljdGFibGUuCgo+Pj4KPj4+IC0gICAg ICAgICAgICAgICBlcnIgPSBjc19ldG1fdmFsaWRhdGVfY29udGV4dF9pZChpdHIsIGV2c2VsLCBp KTsKPj4+ICsgICAgICAgcGVyZl9jcHVfbWFwX19mb3JfZWFjaF9jcHVfc2tpcF9hbnkoY3B1LCBp ZHgsIGludGVyc2VjdF9jcHVzKSB7Cj4+PiArICAgICAgICAgICAgICAgZXJyID0gY3NfZXRtX3Zh bGlkYXRlX2NvbnRleHRfaWQoaXRyLCBldnNlbCwgY3B1LmNwdSk7Cj4+PiAgICAgICAgICAgICAg ICAgaWYgKGVycikKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+Pj4gLSAg ICAgICAgICAgICAgIGVyciA9IGNzX2V0bV92YWxpZGF0ZV90aW1lc3RhbXAoaXRyLCBldnNlbCwg aSk7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPj4+ICsKPj4+ICsgICAgICAg ICAgICAgICBlcnIgPSBjc19ldG1fdmFsaWRhdGVfdGltZXN0YW1wKGl0ciwgZXZzZWwsIGNwdS5j cHUpOwo+Pj4gICAgICAgICAgICAgICAgIGlmIChlcnIpCj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICBnb3RvIG91dDsKPj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4gICAg ICAgICB9Cj4+Pgo+Pj4gLSAgICAgICBlcnIgPSAwOwo+Pj4gLW91dDoKPj4+IC0gICAgICAgcGVy Zl9jcHVfbWFwX19wdXQob25saW5lX2NwdXMpOwo+Pj4gKyAgICAgICBwZXJmX2NwdV9tYXBfX3B1 dChpbnRlcnNlY3RfY3B1cyk7Cj4+PiAgICAgICAgIHJldHVybiBlcnI7Cj4+PiAgfQo+Pj4KPj4+ IEBAIC00MzUsNyArNDM0LDcgQEAgc3RhdGljIGludCBjc19ldG1fcmVjb3JkaW5nX29wdGlvbnMo c3RydWN0IGF1eHRyYWNlX3JlY29yZCAqaXRyLAo+Pj4gICAgICAgICAgKiBBbHNvIHRoZSBjYXNl IG9mIHBlci1jcHUgbW1hcHMsIG5lZWQgdGhlIGNvbnRleHRJRCBpbiBvcmRlciB0byBiZSBub3Rp ZmllZAo+Pj4gICAgICAgICAgKiB3aGVuIGEgY29udGV4dCBzd2l0Y2ggaGFwcGVuZWQuCj4+PiAg ICAgICAgICAqLwo+Pj4gLSAgICAgICBpZiAoIXBlcmZfY3B1X21hcF9faGFzX2FueV9jcHVfb3Jf aXNfZW1wdHkoY3B1cykpIHsKPj4+ICsgICAgICAgaWYgKCFwZXJmX2NwdV9tYXBfX2lzX2FueV9j cHVfb3JfaXNfZW1wdHkoY3B1cykpIHsKPj4+ICAgICAgICAgICAgICAgICBldnNlbF9fc2V0X2Nv bmZpZ19pZl91bnNldChjc19ldG1fcG11LCBjc19ldG1fZXZzZWwsCj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVzdGFtcCIsIDEpOwo+Pj4gICAgICAg ICAgICAgICAgIGV2c2VsX19zZXRfY29uZmlnX2lmX3Vuc2V0KGNzX2V0bV9wbXUsIGNzX2V0bV9l dnNlbCwKPj4+IEBAIC00NjEsNyArNDYwLDcgQEAgc3RhdGljIGludCBjc19ldG1fcmVjb3JkaW5n X29wdGlvbnMoc3RydWN0IGF1eHRyYWNlX3JlY29yZCAqaXRyLAo+Pj4gICAgICAgICBldnNlbC0+ Y29yZS5hdHRyLnNhbXBsZV9wZXJpb2QgPSAxOwo+Pj4KPj4+ICAgICAgICAgLyogSW4gcGVyLWNw dSBjYXNlLCBhbHdheXMgbmVlZCB0aGUgdGltZSBvZiBtbWFwIGV2ZW50cyBldGMgKi8KPj4+IC0g ICAgICAgaWYgKCFwZXJmX2NwdV9tYXBfX2hhc19hbnlfY3B1X29yX2lzX2VtcHR5KGNwdXMpKQo+ Pj4gKyAgICAgICBpZiAoIXBlcmZfY3B1X21hcF9faXNfYW55X2NwdV9vcl9pc19lbXB0eShjcHVz KSkKPj4+ICAgICAgICAgICAgICAgICBldnNlbF9fc2V0X3NhbXBsZV9iaXQoZXZzZWwsIFRJTUUp Owo+Pj4KPj4+ICAgICAgICAgZXJyID0gY3NfZXRtX3ZhbGlkYXRlX2NvbmZpZyhpdHIsIGNzX2V0 bV9ldnNlbCk7Cj4+PiBAQCAtNTMzLDQ1ICs1MzIsMzEgQEAgc3RhdGljIHNpemVfdAo+Pj4gIGNz X2V0bV9pbmZvX3ByaXZfc2l6ZShzdHJ1Y3QgYXV4dHJhY2VfcmVjb3JkICppdHIgX19tYXliZV91 bnVzZWQsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGV2bGlzdCAqZXZsaXN0IF9f bWF5YmVfdW51c2VkKQo+Pj4gIHsKPj4+IC0gICAgICAgaW50IGk7Cj4+PiArICAgICAgIGludCBp ZHg7Cj4+PiAgICAgICAgIGludCBldG12MyA9IDAsIGV0bXY0ID0gMCwgZXRlID0gMDsKPj4+ICAg ICAgICAgc3RydWN0IHBlcmZfY3B1X21hcCAqZXZlbnRfY3B1cyA9IGV2bGlzdC0+Y29yZS51c2Vy X3JlcXVlc3RlZF9jcHVzOwo+Pj4gLSAgICAgICBzdHJ1Y3QgcGVyZl9jcHVfbWFwICpvbmxpbmVf Y3B1cyA9IHBlcmZfY3B1X21hcF9fbmV3X29ubGluZV9jcHVzKCk7Cj4+PiAtCj4+PiAtICAgICAg IC8qIGNwdSBtYXAgaXMgbm90IGVtcHR5LCB3ZSBoYXZlIHNwZWNpZmljIENQVXMgdG8gd29yayB3 aXRoICovCj4+PiAtICAgICAgIGlmICghcGVyZl9jcHVfbWFwX19oYXNfYW55X2NwdV9vcl9pc19l bXB0eShldmVudF9jcHVzKSkgewo+Pj4gLSAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBj cHVfX21heF9jcHUoKS5jcHU7IGkrKykgewo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHBlcmZfY3B1IGNwdSA9IHsgLmNwdSA9IGksIH07Cj4+PiArICAgICAgIHN0cnVjdCBwZXJm X2NwdV9tYXAgKmludGVyc2VjdF9jcHVzOwo+Pj4gKyAgICAgICBzdHJ1Y3QgcGVyZl9jcHUgY3B1 Owo+Pj4KPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmICghcGVyZl9jcHVfbWFwX19oYXMo ZXZlbnRfY3B1cywgY3B1KSB8fAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICFwZXJm X2NwdV9tYXBfX2hhcyhvbmxpbmVfY3B1cywgY3B1KSkKPj4+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7Cj4+PiArICAgICAgIGlmICghcGVyZl9jcHVfbWFwX19oYXNf YW55X2NwdShldmVudF9jcHVzKSkgewo+Pj4gKyAgICAgICAgICAgICAgIC8qIGNwdSBtYXAgaXMg bm90ICJhbnkiIENQVSAsIHdlIGhhdmUgc3BlY2lmaWMgQ1BVcyB0byB3b3JrIHdpdGggKi8KPj4+ ICsgICAgICAgICAgICAgICBzdHJ1Y3QgcGVyZl9jcHVfbWFwICpvbmxpbmVfY3B1cyA9IHBlcmZf Y3B1X21hcF9fbmV3X29ubGluZV9jcHVzKCk7Cj4+Pgo+Pj4gLSAgICAgICAgICAgICAgICAgICAg ICAgaWYgKGNzX2V0bV9pc19ldGUoaXRyLCBpKSkKPj4+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZXRlKys7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjc19l dG1faXNfZXRtdjQoaXRyLCBpKSkKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZXRtdjQrKzsKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGVsc2UKPj4+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXRtdjMrKzsKPj4+IC0gICAgICAgICAgICAgICB9Cj4+PiAr ICAgICAgICAgICAgICAgaW50ZXJzZWN0X2NwdXMgPSBwZXJmX2NwdV9tYXBfX2ludGVyc2VjdChl dmVudF9jcHVzLCBvbmxpbmVfY3B1cyk7Cj4+PiArICAgICAgICAgICAgICAgcGVyZl9jcHVfbWFw X19wdXQob25saW5lX2NwdXMpOwo+Pj4gICAgICAgICB9IGVsc2Ugewo+Pj4gLSAgICAgICAgICAg ICAgIC8qIGdldCBjb25maWd1cmF0aW9uIGZvciBhbGwgQ1BVcyBpbiB0aGUgc3lzdGVtICovCj4+ PiAtICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGNwdV9fbWF4X2NwdSgpLmNwdTsgaSsr KSB7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGVyZl9jcHUgY3B1ID0geyAu Y3B1ID0gaSwgfTsKPj4+IC0KPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmICghcGVyZl9j cHVfbWFwX19oYXMob25saW5lX2NwdXMsIGNwdSkpCj4+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlOwo+Pj4gLQo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgaWYg KGNzX2V0bV9pc19ldGUoaXRyLCBpKSkKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZXRlKys7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjc19ldG1faXNf ZXRtdjQoaXRyLCBpKSkKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRtdjQr KzsKPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGVsc2UKPj4+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZXRtdjMrKzsKPj4+IC0gICAgICAgICAgICAgICB9Cj4+PiArICAgICAg ICAgICAgICAgLyogRXZlbnQgY2FuIGJlICJhbnkiIENQVSBzbyBjb3VudCBhbGwgb25saW5lIENQ VXMuICovCj4+PiArICAgICAgICAgICAgICAgaW50ZXJzZWN0X2NwdXMgPSBwZXJmX2NwdV9tYXBf X25ld19vbmxpbmVfY3B1cygpOwo+Pj4gICAgICAgICB9Cj4+PiAtCj4+PiAtICAgICAgIHBlcmZf Y3B1X21hcF9fcHV0KG9ubGluZV9jcHVzKTsKPj4+ICsgICAgICAgcGVyZl9jcHVfbWFwX19mb3Jf ZWFjaF9jcHVfc2tpcF9hbnkoY3B1LCBpZHgsIGludGVyc2VjdF9jcHVzKSB7Cj4+PiArICAgICAg ICAgICAgICAgaWYgKGNzX2V0bV9pc19ldGUoaXRyLCBjcHUuY3B1KSkKPj4+ICsgICAgICAgICAg ICAgICAgICAgICAgIGV0ZSsrOwo+Pj4gKyAgICAgICAgICAgICAgIGVsc2UgaWYgKGNzX2V0bV9p c19ldG12NChpdHIsIGNwdS5jcHUpKQo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgZXRtdjQr KzsKPj4+ICsgICAgICAgICAgICAgICBlbHNlCj4+PiArICAgICAgICAgICAgICAgICAgICAgICBl dG12MysrOwo+Pj4gKyAgICAgICB9Cj4+PiArICAgICAgIHBlcmZfY3B1X21hcF9fcHV0KGludGVy c2VjdF9jcHVzKTsKPj4+Cj4+PiAgICAgICAgIHJldHVybiAoQ1NfRVRNX0hFQURFUl9TSVpFICsK Pj4+ICAgICAgICAgICAgICAgIChldGUgICAqIENTX0VURV9QUklWX1NJWkUpICsKPj4+IEBAIC04 MTMsMTYgKzc5OCwxNSBAQCBzdGF0aWMgaW50IGNzX2V0bV9pbmZvX2ZpbGwoc3RydWN0IGF1eHRy YWNlX3JlY29yZCAqaXRyLAo+Pj4gICAgICAgICBpZiAoIXNlc3Npb24tPmV2bGlzdC0+Y29yZS5u cl9tbWFwcykKPj4+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+Cj4+PiAtICAg ICAgIC8qIElmIHRoZSBjcHVfbWFwIGlzIGVtcHR5IGFsbCBvbmxpbmUgQ1BVcyBhcmUgaW52b2x2 ZWQgKi8KPj4+IC0gICAgICAgaWYgKHBlcmZfY3B1X21hcF9faGFzX2FueV9jcHVfb3JfaXNfZW1w dHkoZXZlbnRfY3B1cykpIHsKPj4+ICsgICAgICAgLyogSWYgdGhlIGNwdV9tYXAgaGFzIHRoZSAi YW55IiBDUFUgYWxsIG9ubGluZSBDUFVzIGFyZSBpbnZvbHZlZCAqLwo+Pj4gKyAgICAgICBpZiAo cGVyZl9jcHVfbWFwX19oYXNfYW55X2NwdShldmVudF9jcHVzKSkgewo+Pj4gICAgICAgICAgICAg ICAgIGNwdV9tYXAgPSBvbmxpbmVfY3B1czsKPj4+ICAgICAgICAgfSBlbHNlIHsKPj4+ICAgICAg ICAgICAgICAgICAvKiBNYWtlIHN1cmUgYWxsIHNwZWNpZmllZCBDUFVzIGFyZSBvbmxpbmUgKi8K Pj4+IC0gICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcGVyZl9jcHVfbWFwX19ucihldmVu dF9jcHVzKTsgaSsrKSB7Cj4+PiAtICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGVyZl9j cHUgY3B1ID0geyAuY3B1ID0gaSwgfTsKPj4+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgcGVyZl9j cHUgY3B1Owo+Pj4KPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmIChwZXJmX2NwdV9tYXBf X2hhcyhldmVudF9jcHVzLCBjcHUpICYmCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg IXBlcmZfY3B1X21hcF9faGFzKG9ubGluZV9jcHVzLCBjcHUpKQo+Pj4gKyAgICAgICAgICAgICAg IHBlcmZfY3B1X21hcF9fZm9yX2VhY2hfY3B1KGNwdSwgaSwgZXZlbnRfY3B1cykgewo+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgaWYgKCFwZXJmX2NwdV9tYXBfX2hhcyhvbmxpbmVfY3B1cywg Y3B1KSkKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 Cj4+PiAgICAgICAgICAgICAgICAgfQo+Pj4KPj4+IGRpZmYgLS1naXQgYS90b29scy9wZXJmL2Fy Y2gvYXJtNjQvdXRpbC9hcm0tc3BlLmMgYi90b29scy9wZXJmL2FyY2gvYXJtNjQvdXRpbC9hcm0t c3BlLmMKPj4+IGluZGV4IDUxY2NiZmQzZDI0Ni4uMGI1MmU2N2VkYjNiIDEwMDY0NAo+Pj4gLS0t IGEvdG9vbHMvcGVyZi9hcmNoL2FybTY0L3V0aWwvYXJtLXNwZS5jCj4+PiArKysgYi90b29scy9w ZXJmL2FyY2gvYXJtNjQvdXRpbC9hcm0tc3BlLmMKPj4+IEBAIC0yMzIsNyArMjMyLDcgQEAgc3Rh dGljIGludCBhcm1fc3BlX3JlY29yZGluZ19vcHRpb25zKHN0cnVjdCBhdXh0cmFjZV9yZWNvcmQg Kml0ciwKPj4+ICAgICAgICAgICogSW4gdGhlIGNhc2Ugb2YgcGVyLWNwdSBtbWFwcywgc2FtcGxl IENQVSBmb3IgQVVYIGV2ZW50Owo+Pj4gICAgICAgICAgKiBhbHNvIGVuYWJsZSB0aGUgdGltZXN0 YW1wIHRyYWNpbmcgZm9yIHNhbXBsZXMgY29ycmVsYXRpb24uCj4+PiAgICAgICAgICAqLwo+Pj4g LSAgICAgICBpZiAoIXBlcmZfY3B1X21hcF9faGFzX2FueV9jcHVfb3JfaXNfZW1wdHkoY3B1cykp IHsKPj4+ICsgICAgICAgaWYgKCFwZXJmX2NwdV9tYXBfX2lzX2FueV9jcHVfb3JfaXNfZW1wdHko Y3B1cykpIHsKPj4+ICAgICAgICAgICAgICAgICBldnNlbF9fc2V0X3NhbXBsZV9iaXQoYXJtX3Nw ZV9ldnNlbCwgQ1BVKTsKPj4+ICAgICAgICAgICAgICAgICBldnNlbF9fc2V0X2NvbmZpZ19pZl91 bnNldChhcm1fc3BlX3BtdSwgYXJtX3NwZV9ldnNlbCwKPj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAidHNfZW5hYmxlIiwgMSk7Cj4+PiBAQCAtMjY1LDcgKzI2 NSw3IEBAIHN0YXRpYyBpbnQgYXJtX3NwZV9yZWNvcmRpbmdfb3B0aW9ucyhzdHJ1Y3QgYXV4dHJh Y2VfcmVjb3JkICppdHIsCj4+PiAgICAgICAgIHRyYWNraW5nX2V2c2VsLT5jb3JlLmF0dHIuc2Ft cGxlX3BlcmlvZCA9IDE7Cj4+Pgo+Pj4gICAgICAgICAvKiBJbiBwZXItY3B1IGNhc2UsIGFsd2F5 cyBuZWVkIHRoZSB0aW1lIG9mIG1tYXAgZXZlbnRzIGV0YyAqLwo+Pj4gLSAgICAgICBpZiAoIXBl cmZfY3B1X21hcF9faGFzX2FueV9jcHVfb3JfaXNfZW1wdHkoY3B1cykpIHsKPj4+ICsgICAgICAg aWYgKCFwZXJmX2NwdV9tYXBfX2lzX2FueV9jcHVfb3JfaXNfZW1wdHkoY3B1cykpIHsKPj4+ICAg ICAgICAgICAgICAgICBldnNlbF9fc2V0X3NhbXBsZV9iaXQodHJhY2tpbmdfZXZzZWwsIFRJTUUp Owo+Pj4gICAgICAgICAgICAgICAgIGV2c2VsX19zZXRfc2FtcGxlX2JpdCh0cmFja2luZ19ldnNl bCwgQ1BVKTsKPj4+Cj4+PiAtLQo+Pj4gMi40My4wLjU5NC5nZDljZjRlMjI3ZC1nb29nCj4+PgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=