Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1825487ybt; Mon, 15 Jun 2020 10:19:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwCo7Hf+CgtH6A1srxoGcoyqHxoZV3Jeaia7+UTVGt8JK53kY4FsUemF5CeQL6cqk7/FX2S X-Received: by 2002:a17:906:e4b:: with SMTP id q11mr26265858eji.302.1592241556544; Mon, 15 Jun 2020 10:19:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592241556; cv=none; d=google.com; s=arc-20160816; b=eK5ex8nxVfVDTsHQrPdCVE97LYGWW/HOFCKQ36EVG4YgR/z0nfHxkw9qmiDJAOP86M aCuc6z70MpCDAU5O8hMCpZLh4gTvAKhd/6fi+UbBnbL5bE34qsVrPeGQmjsgERNkr6WS +oKeYgFHImQIBz0UrORcoJL0Stplbhb5Dy1lvlj91kv5d6osO+WWX5qGB1g18pgC2mlW 4tlnKHaIfvO9ExF0Ed+mcPKVmAOz4URK20hgoWdyoaneiuolUJFY+kWo9IdrHnMXHfNp EdnuJXntHQY8vq6RQ3vaXFmnwabA1ttfyWndFWSiQ5fgMylVNtC6ZgRirAZJXGWF++5n 1m2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:ironport-sdr :dkim-signature; bh=quCeI4aRqm5FzMDQgdTf387xIKZfOD6u5kcvle7ursQ=; b=gSt4cDrpItuCtQewSadUSY4Tr/d7q6qmOT2KM3StaIh6o7pYmxxY/dRz5qmFdNRyMx HgkUukv97ocebcjrKvuSEgpOMi5MPlPjHUv3z7Oujq1pr/KBiGjr1/H4XiS3+KEcU4iu g3EiZJE3hsMvxzL7PWYZ75qRaoS/ncsvOqhrTmaCi6y2QX0MVMgw0/Bfgr629Ca0fh8p zdhJ84j3TmAHGTcDdu2xX/b5VDJstkFRUXgYnK1lXU9hFoYwSQdr3dfaeh2d1cmlssRU Doziv80hGC+Ai/DLnSLsy6r7vCTJMk3vz4imvDLawKhh54HddOO8X7ALhkPm36qi+dje HeYw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b="Cseq9O/c"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d20si9080775edr.177.2020.06.15.10.18.53; Mon, 15 Jun 2020 10:19:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b="Cseq9O/c"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731201AbgFORMq (ORCPT + 99 others); Mon, 15 Jun 2020 13:12:46 -0400 Received: from smtp-fw-9102.amazon.com ([207.171.184.29]:1991 "EHLO smtp-fw-9102.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728585AbgFORMp (ORCPT ); Mon, 15 Jun 2020 13:12:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1592241163; x=1623777163; h=subject:to:cc:references:from:message-id:date: mime-version:in-reply-to:content-transfer-encoding; bh=quCeI4aRqm5FzMDQgdTf387xIKZfOD6u5kcvle7ursQ=; b=Cseq9O/coZySSjH5L1H96DZY2+EgANC/7W4Yh/jFNHfJfNhzPWTmezK2 uKXRJ5zICBEciXMtuVx1ID3CRTGoVmdhMSn/IFHCsIuXGA8lIk3IEqFSC hS5P97FvbMnD0imCns3xRglf9AKRozvV8eMP58Y/BHfCVKrJljEGPu4TK g=; IronPort-SDR: 87iM2mYfBiC8h5AVtnAfwZFB9b4JvIyEMKKpSvVDFiDHj7O2cbzmcLvO8tEKzene2QDraUJXFY 9EUuuFF7lYfg== X-IronPort-AV: E=Sophos;i="5.73,515,1583193600"; d="scan'208";a="52409324" Received: from sea32-co-svc-lb4-vlan3.sea.corp.amazon.com (HELO email-inbound-relay-2a-f14f4a47.us-west-2.amazon.com) ([10.47.23.38]) by smtp-border-fw-out-9102.sea19.amazon.com with ESMTP; 15 Jun 2020 17:12:40 +0000 Received: from EX13MTAUWB001.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan2.pdx.amazon.com [10.170.41.162]) by email-inbound-relay-2a-f14f4a47.us-west-2.amazon.com (Postfix) with ESMTPS id DCA60A18D5; Mon, 15 Jun 2020 17:12:38 +0000 (UTC) Received: from EX13D01UWB001.ant.amazon.com (10.43.161.75) by EX13MTAUWB001.ant.amazon.com (10.43.161.207) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 15 Jun 2020 17:12:34 +0000 Received: from EX13MTAUWB001.ant.amazon.com (10.43.161.207) by EX13d01UWB001.ant.amazon.com (10.43.161.75) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 15 Jun 2020 17:12:33 +0000 Received: from u908889d5e8f057.ant.amazon.com (10.95.67.235) by mail-relay.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Mon, 15 Jun 2020 17:12:25 +0000 Subject: Re: [PATCH v16 02/14] mm: Introduce Data Access MONitor (DAMON) To: SeongJae Park , CC: SeongJae Park , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , References: <20200615161927.12637-1-sjpark@amazon.com> <20200615161927.12637-3-sjpark@amazon.com> From: Message-ID: <85bd3c13-c835-8bee-4243-d80ffd09eaab@amazon.com> Date: Mon, 15 Jun 2020 19:12:23 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <20200615161927.12637-3-sjpark@amazon.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gNi8xNS8yMCA2OjE5IFBNLCBTZW9uZ0phZSBQYXJrIHdyb3RlOgo+IEZyb206IFNlb25nSmFl IFBhcmsgPHNqcGFya0BhbWF6b24uZGU+Cj4gCj4gVGhpcyBjb21taXQgaW50cm9kdWNlcyBhIGtl cm5lbCBtb2R1bGUgbmFtZWQgREFNT04uICBOb3RlIHRoYXQgdGhpcwo+IGNvbW1pdCBpcyBpbXBs ZW1lbnRpbmcgb25seSB0aGUgc3R1YiBmb3IgdGhlIG1vZHVsZSBsb2FkL3VubG9hZCwgYmFzaWMK PiBkYXRhIHN0cnVjdHVyZXMsIGFuZCBzaW1wbGUgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyBvZiB0 aGUgc3RydWN0dXJlcyB0bwo+IGtlZXAgdGhlIHNpemUgb2YgY29tbWl0IHNtYWxsLiAgVGhlIGNv cmUgbWVjaGFuaXNtcyBvZiBEQU1PTiB3aWxsIGJlCj4gaW1wbGVtZW50ZWQgb25lIGJ5IG9uZSBi eSBmb2xsb3dpbmcgY29tbWl0cy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBTZW9uZ0phZSBQYXJrIDxz anBhcmtAYW1hem9uLmRlPgo+IFJldmlld2VkLWJ5OiBMZW9uYXJkIEZvZXJzdGVyIDxmb2Vyc2xl b0BhbWF6b24uZGU+Cj4gLS0tCgpSZXZpZXdlZC1ieTogVmFyYWQgR2F1dGFtIDx2cmRAYW1hem9u LmRlPgoKPiAgaW5jbHVkZS9saW51eC9kYW1vbi5oIHwgIDYzICsrKysrKysrKysrKysrCj4gIG1t L0tjb25maWcgICAgICAgICAgICB8ICAxMiArKysKPiAgbW0vTWFrZWZpbGUgICAgICAgICAgIHwg ICAxICsKPiAgbW0vZGFtb24uYyAgICAgICAgICAgIHwgMTg4ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDI2NCBpbnNlcnRpb25z KCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L2RhbW9uLmgKPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IG1tL2RhbW9uLmMKPiAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9k YW1vbi5oIGIvaW5jbHVkZS9saW51eC9kYW1vbi5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBp bmRleCAwMDAwMDAwMDAwMDAuLmM4ZjhjMWM0MWE0NQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9p bmNsdWRlL2xpbnV4L2RhbW9uLmgKPiBAQCAtMCwwICsxLDYzIEBACj4gKy8qIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCj4gKy8qCj4gKyAqIERBTU9OIGFwaQo+ICsgKgo+ICsg KiBDb3B5cmlnaHQgMjAxOS0yMDIwIEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMu Cj4gKyAqCj4gKyAqIEF1dGhvcjogU2VvbmdKYWUgUGFyayA8c2pwYXJrQGFtYXpvbi5kZT4KPiAr ICovCj4gKwo+ICsjaWZuZGVmIF9EQU1PTl9IXwo+ICsjZGVmaW5lIF9EQU1PTl9IXwo+ICsKPiAr I2luY2x1ZGUgPGxpbnV4L3JhbmRvbS5oPgo+ICsjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiAr Cj4gKy8qKgo+ICsgKiBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAtIFJlcHJlc2VudHMgYW4gYWRk cmVzcyByZWdpb24gb2YgW0BzdGFydCwgQGVuZCkuCj4gKyAqIEBzdGFydDoJU3RhcnQgYWRkcmVz cyBvZiB0aGUgcmVnaW9uIChpbmNsdXNpdmUpLgo+ICsgKiBAZW5kOglFbmQgYWRkcmVzcyBvZiB0 aGUgcmVnaW9uIChleGNsdXNpdmUpLgo+ICsgKi8KPiArc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2Ug ewo+ICsJdW5zaWduZWQgbG9uZyBzdGFydDsKPiArCXVuc2lnbmVkIGxvbmcgZW5kOwo+ICt9Owo+ ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkYW1vbl9yZWdpb24gLSBSZXByZXNlbnRzIGEgbW9uaXRv cmluZyB0YXJnZXQgcmVnaW9uLgo+ICsgKiBAYXI6CQkJVGhlIGFkZHJlc3MgcmFuZ2Ugb2YgdGhl IHJlZ2lvbi4KPiArICogQHNhbXBsaW5nX2FkZHI6CUFkZHJlc3Mgb2YgdGhlIHNhbXBsZSBmb3Ig dGhlIG5leHQgYWNjZXNzIGNoZWNrLgo+ICsgKiBAbnJfYWNjZXNzZXM6CUFjY2VzcyBmcmVxdWVu Y3kgb2YgdGhpcyByZWdpb24uCj4gKyAqIEBsaXN0OgkJTGlzdCBoZWFkIGZvciBzaWJsaW5ncy4K PiArICovCj4gK3N0cnVjdCBkYW1vbl9yZWdpb24gewo+ICsJc3RydWN0IGRhbW9uX2FkZHJfcmFu Z2UgYXI7Cj4gKwl1bnNpZ25lZCBsb25nIHNhbXBsaW5nX2FkZHI7Cj4gKwl1bnNpZ25lZCBpbnQg bnJfYWNjZXNzZXM7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cj4gK307Cj4gKwo+ICsvKioK PiArICogc3RydWN0IGRhbW9uX3Rhc2sgLSBSZXByZXNlbnRzIGEgbW9uaXRvcmluZyB0YXJnZXQg dGFzay4KPiArICogQHBpZDoJCVByb2Nlc3MgaWQgb2YgdGhlIHRhc2suCj4gKyAqIEByZWdpb25z X2xpc3Q6CUhlYWQgb2YgdGhlIG1vbml0b3JpbmcgdGFyZ2V0IHJlZ2lvbnMgb2YgdGhpcyB0YXNr Lgo+ICsgKiBAbGlzdDoJCUxpc3QgaGVhZCBmb3Igc2libGluZ3MuCj4gKyAqCj4gKyAqIElmIHRo ZSBtb25pdG9yaW5nIHRhcmdldCBhZGRyZXNzIHNwYWNlIGlzIHRhc2sgaW5kZXBlbmRlbnQgKGUu Zy4sIHBoeXNpY2FsCj4gKyAqIG1lbW9yeSBhZGRyZXNzIHNwYWNlIG1vbml0b3JpbmcpLCBAcGlk IHNob3VsZCBiZSAnLTEnLgo+ICsgKi8KPiArc3RydWN0IGRhbW9uX3Rhc2sgewo+ICsJaW50IHBp ZDsKPiArCXN0cnVjdCBsaXN0X2hlYWQgcmVnaW9uc19saXN0Owo+ICsJc3RydWN0IGxpc3RfaGVh ZCBsaXN0Owo+ICt9Owo+ICsKPiArLyoqCj4gKyAqIHN0cnVjdCBkYW1vbl9jdHggLSBSZXByZXNl bnRzIGEgY29udGV4dCBmb3IgZWFjaCBtb25pdG9yaW5nLgo+ICsgKiBAdGFza3NfbGlzdDoJCUhl YWQgb2YgbW9uaXRvcmluZyB0YXJnZXQgdGFza3MgKCZkYW1vbl90YXNrKSBsaXN0Lgo+ICsgKi8K PiArc3RydWN0IGRhbW9uX2N0eCB7Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHRhc2tzX2xpc3Q7CS8q ICdkYW1vbl90YXNrJyBvYmplY3RzICovCj4gK307Cj4gKwo+ICsjZW5kaWYKPiBkaWZmIC0tZ2l0 IGEvbW0vS2NvbmZpZyBiL21tL0tjb25maWcKPiBpbmRleCBjMWFjYzM0YzFjMzUuLmVjZWEwODg5 ZWEzNSAxMDA2NDQKPiAtLS0gYS9tbS9LY29uZmlnCj4gKysrIGIvbW0vS2NvbmZpZwo+IEBAIC04 NjcsNCArODY3LDE2IEBAIGNvbmZpZyBBUkNIX0hBU19IVUdFUEQKPiAgY29uZmlnIE1BUFBJTkdf RElSVFlfSEVMUEVSUwo+ICAgICAgICAgIGJvb2wKPiAgCj4gK2NvbmZpZyBEQU1PTgo+ICsJdHJp c3RhdGUgIkRhdGEgQWNjZXNzIE1vbml0b3IiCj4gKwlkZXBlbmRzIG9uIE1NVQo+ICsJaGVscAo+ ICsJICBQcm92aWRlcyBkYXRhIGFjY2VzcyBtb25pdG9yaW5nLgo+ICsKPiArCSAgREFNT04gaXMg YSBrZXJuZWwgbW9kdWxlIHRoYXQgYWxsb3dzIHVzZXJzIHRvIG1vbml0b3IgdGhlIGFjdHVhbAo+ ICsJICBtZW1vcnkgYWNjZXNzIHBhdHRlcm4gb2Ygc3BlY2lmaWMgdXNlci1zcGFjZSBwcm9jZXNz ZXMuICBJdCBhaW1zIHRvCj4gKwkgIGJlIDEpIGFjY3VyYXRlIGVub3VnaCB0byBiZSB1c2VmdWwg Zm9yIHBlcmZvcm1hbmNlLWNlbnRyaWMgZG9tYWlucywKPiArCSAgYW5kIDIpIHN1ZmZpY2llbnRs eSBsaWdodC13ZWlnaHQgc28gdGhhdCBpdCBjYW4gYmUgYXBwbGllZCBvbmxpbmUuCj4gKwkgIElm IHVuc3VyZSwgc2F5IE4uCj4gKwo+ICBlbmRtZW51Cj4gZGlmZiAtLWdpdCBhL21tL01ha2VmaWxl IGIvbW0vTWFrZWZpbGUKPiBpbmRleCBmY2NkMzc1NmIyNWYuLjIzMGU1NDViNmUwNyAxMDA2NDQK PiAtLS0gYS9tbS9NYWtlZmlsZQo+ICsrKyBiL21tL01ha2VmaWxlCj4gQEAgLTExMiwzICsxMTIs NCBAQCBvYmotJChDT05GSUdfTUVNRkRfQ1JFQVRFKSArPSBtZW1mZC5vCj4gIG9iai0kKENPTkZJ R19NQVBQSU5HX0RJUlRZX0hFTFBFUlMpICs9IG1hcHBpbmdfZGlydHlfaGVscGVycy5vCj4gIG9i ai0kKENPTkZJR19QVERVTVBfQ09SRSkgKz0gcHRkdW1wLm8KPiAgb2JqLSQoQ09ORklHX1BBR0Vf UkVQT1JUSU5HKSArPSBwYWdlX3JlcG9ydGluZy5vCj4gK29iai0kKENPTkZJR19EQU1PTikgKz0g ZGFtb24ubwo+IGRpZmYgLS1naXQgYS9tbS9kYW1vbi5jIGIvbW0vZGFtb24uYwo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yYmYzNWJkYzA0NzAKPiAtLS0gL2Rl di9udWxsCj4gKysrIGIvbW0vZGFtb24uYwo+IEBAIC0wLDAgKzEsMTg4IEBACj4gKy8vIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gKy8qCj4gKyAqIERhdGEgQWNjZXNzIE1vbml0 b3IKPiArICoKPiArICogQ29weXJpZ2h0IDIwMTktMjAyMCBBbWF6b24uY29tLCBJbmMuIG9yIGl0 cyBhZmZpbGlhdGVzLgo+ICsgKgo+ICsgKiBBdXRob3I6IFNlb25nSmFlIFBhcmsgPHNqcGFya0Bh bWF6b24uZGU+Cj4gKyAqCj4gKyAqIFRoaXMgZmlsZSBpcyBjb25zdHJ1Y3RlZCBpbiBiZWxvdyBw YXJ0cy4KPiArICoKPiArICogLSBGdW5jdGlvbnMgYW5kIG1hY3JvcyBmb3IgREFNT04gZGF0YSBz dHJ1Y3R1cmVzCj4gKyAqIC0gRnVuY3Rpb25zIGZvciB0aGUgbW9kdWxlIGxvYWRpbmcvdW5sb2Fk aW5nCj4gKyAqCj4gKyAqIFRoZSBjb3JlIHBhcnRzIGFyZSBub3QgaW1wbGVtZW50ZWQgeWV0Lgo+ ICsgKi8KPiArCj4gKyNkZWZpbmUgcHJfZm10KGZtdCkgImRhbW9uOiAiIGZtdAo+ICsKPiArI2lu Y2x1ZGUgPGxpbnV4L2RhbW9uLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9tbS5oPgo+ICsjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gKwo+ICsvKgo+ ICsgKiBGdW5jdGlvbnMgYW5kIG1hY3JvcyBmb3IgREFNT04gZGF0YSBzdHJ1Y3R1cmVzCj4gKyAq Lwo+ICsKPiArI2RlZmluZSBkYW1vbl9nZXRfdGFza19zdHJ1Y3QodCkgXAo+ICsJKGdldF9waWRf dGFzayhmaW5kX3ZwaWQodC0+cGlkKSwgUElEVFlQRV9QSUQpKQo+ICsKPiArI2RlZmluZSBkYW1v bl9uZXh0X3JlZ2lvbihyKSBcCj4gKwkoY29udGFpbmVyX29mKHItPmxpc3QubmV4dCwgc3RydWN0 IGRhbW9uX3JlZ2lvbiwgbGlzdCkpCj4gKwo+ICsjZGVmaW5lIGRhbW9uX3ByZXZfcmVnaW9uKHIp IFwKPiArCShjb250YWluZXJfb2Yoci0+bGlzdC5wcmV2LCBzdHJ1Y3QgZGFtb25fcmVnaW9uLCBs aXN0KSkKPiArCj4gKyNkZWZpbmUgZGFtb25fZm9yX2VhY2hfcmVnaW9uKHIsIHQpIFwKPiArCWxp c3RfZm9yX2VhY2hfZW50cnkociwgJnQtPnJlZ2lvbnNfbGlzdCwgbGlzdCkKPiArCj4gKyNkZWZp bmUgZGFtb25fZm9yX2VhY2hfcmVnaW9uX3NhZmUociwgbmV4dCwgdCkgXAo+ICsJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKHIsIG5leHQsICZ0LT5yZWdpb25zX2xpc3QsIGxpc3QpCj4gKwo+ICsj ZGVmaW5lIGRhbW9uX2Zvcl9lYWNoX3Rhc2sodCwgY3R4KSBcCj4gKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHQsICYoY3R4KS0+dGFza3NfbGlzdCwgbGlzdCkKPiArCj4gKyNkZWZpbmUgZGFtb25fZm9y X2VhY2hfdGFza19zYWZlKHQsIG5leHQsIGN0eCkgXAo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeV9z YWZlKHQsIG5leHQsICYoY3R4KS0+dGFza3NfbGlzdCwgbGlzdCkKPiArCj4gKy8qIEdldCBhIHJh bmRvbSBudW1iZXIgaW4gW2wsIHIpICovCj4gKyNkZWZpbmUgZGFtb25fcmFuZChsLCByKSAobCAr IHByYW5kb21fdTMyKCkgJSAociAtIGwpKQo+ICsKPiArLyoKPiArICogQ29uc3RydWN0IGEgZGFt b25fcmVnaW9uIHN0cnVjdAo+ICsgKgo+ICsgKiBSZXR1cm5zIHRoZSBwb2ludGVyIHRvIHRoZSBu ZXcgc3RydWN0IGlmIHN1Y2Nlc3MsIG9yIE5VTEwgb3RoZXJ3aXNlCj4gKyAqLwo+ICtzdGF0aWMg c3RydWN0IGRhbW9uX3JlZ2lvbiAqZGFtb25fbmV3X3JlZ2lvbihzdHJ1Y3QgZGFtb25fY3R4ICpj dHgsCj4gKwkJCQl1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCkKPiArewo+ ICsJc3RydWN0IGRhbW9uX3JlZ2lvbiAqcmVnaW9uOwo+ICsKPiArCXJlZ2lvbiA9IGttYWxsb2Mo c2l6ZW9mKCpyZWdpb24pLCBHRlBfS0VSTkVMKTsKPiArCWlmICghcmVnaW9uKQo+ICsJCXJldHVy biBOVUxMOwo+ICsKPiArCXJlZ2lvbi0+YXIuc3RhcnQgPSBzdGFydDsKPiArCXJlZ2lvbi0+YXIu ZW5kID0gZW5kOwo+ICsJcmVnaW9uLT5ucl9hY2Nlc3NlcyA9IDA7Cj4gKwlJTklUX0xJU1RfSEVB RCgmcmVnaW9uLT5saXN0KTsKPiArCj4gKwlyZXR1cm4gcmVnaW9uOwo+ICt9Cj4gKwo+ICsvKgo+ ICsgKiBBZGQgYSByZWdpb24gYmV0d2VlbiB0d28gb3RoZXIgcmVnaW9ucwo+ICsgKi8KPiArc3Rh dGljIGlubGluZSB2b2lkIGRhbW9uX2luc2VydF9yZWdpb24oc3RydWN0IGRhbW9uX3JlZ2lvbiAq ciwKPiArCQlzdHJ1Y3QgZGFtb25fcmVnaW9uICpwcmV2LCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpu ZXh0KQo+ICt7Cj4gKwlfX2xpc3RfYWRkKCZyLT5saXN0LCAmcHJldi0+bGlzdCwgJm5leHQtPmxp c3QpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkYW1vbl9hZGRfcmVnaW9uKHN0cnVjdCBkYW1v bl9yZWdpb24gKnIsIHN0cnVjdCBkYW1vbl90YXNrICp0KQo+ICt7Cj4gKwlsaXN0X2FkZF90YWls KCZyLT5saXN0LCAmdC0+cmVnaW9uc19saXN0KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZGFt b25fZGVsX3JlZ2lvbihzdHJ1Y3QgZGFtb25fcmVnaW9uICpyKQo+ICt7Cj4gKwlsaXN0X2RlbCgm ci0+bGlzdCk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRhbW9uX2ZyZWVfcmVnaW9uKHN0cnVj dCBkYW1vbl9yZWdpb24gKnIpCj4gK3sKPiArCWtmcmVlKHIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBkYW1vbl9kZXN0cm95X3JlZ2lvbihzdHJ1Y3QgZGFtb25fcmVnaW9uICpyKQo+ICt7Cj4g KwlkYW1vbl9kZWxfcmVnaW9uKHIpOwo+ICsJZGFtb25fZnJlZV9yZWdpb24ocik7Cj4gK30KPiAr Cj4gKy8qCj4gKyAqIENvbnN0cnVjdCBhIGRhbW9uX3Rhc2sgc3RydWN0Cj4gKyAqCj4gKyAqIFJl dHVybnMgdGhlIHBvaW50ZXIgdG8gdGhlIG5ldyBzdHJ1Y3QgaWYgc3VjY2Vzcywgb3IgTlVMTCBv dGhlcndpc2UKPiArICovCj4gK3N0YXRpYyBzdHJ1Y3QgZGFtb25fdGFzayAqZGFtb25fbmV3X3Rh c2soaW50IHBpZCkKPiArewo+ICsJc3RydWN0IGRhbW9uX3Rhc2sgKnQ7Cj4gKwo+ICsJdCA9IGtt YWxsb2Moc2l6ZW9mKCp0KSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIXQpCj4gKwkJcmV0dXJuIE5V TEw7Cj4gKwo+ICsJdC0+cGlkID0gcGlkOwo+ICsJSU5JVF9MSVNUX0hFQUQoJnQtPnJlZ2lvbnNf bGlzdCk7Cj4gKwo+ICsJcmV0dXJuIHQ7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRhbW9uX2Fk ZF90YXNrKHN0cnVjdCBkYW1vbl9jdHggKmN0eCwgc3RydWN0IGRhbW9uX3Rhc2sgKnQpCj4gK3sK PiArCWxpc3RfYWRkX3RhaWwoJnQtPmxpc3QsICZjdHgtPnRhc2tzX2xpc3QpOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgdm9pZCBkYW1vbl9kZWxfdGFzayhzdHJ1Y3QgZGFtb25fdGFzayAqdCkKPiArewo+ ICsJbGlzdF9kZWwoJnQtPmxpc3QpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkYW1vbl9mcmVl X3Rhc2soc3RydWN0IGRhbW9uX3Rhc2sgKnQpCj4gK3sKPiArCXN0cnVjdCBkYW1vbl9yZWdpb24g KnIsICpuZXh0Owo+ICsKPiArCWRhbW9uX2Zvcl9lYWNoX3JlZ2lvbl9zYWZlKHIsIG5leHQsIHQp Cj4gKwkJZGFtb25fZnJlZV9yZWdpb24ocik7Cj4gKwlrZnJlZSh0KTsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgZGFtb25fZGVzdHJveV90YXNrKHN0cnVjdCBkYW1vbl90YXNrICp0KQo+ICt7Cj4g KwlkYW1vbl9kZWxfdGFzayh0KTsKPiArCWRhbW9uX2ZyZWVfdGFzayh0KTsKPiArfQo+ICsKPiAr c3RhdGljIHVuc2lnbmVkIGludCBucl9kYW1vbl90YXNrcyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgp Cj4gK3sKPiArCXN0cnVjdCBkYW1vbl90YXNrICp0Owo+ICsJdW5zaWduZWQgaW50IG5yX3Rhc2tz ID0gMDsKPiArCj4gKwlkYW1vbl9mb3JfZWFjaF90YXNrKHQsIGN0eCkKPiArCQlucl90YXNrcysr Owo+ICsKPiArCXJldHVybiBucl90YXNrczsKPiArfQo+ICsKPiArc3RhdGljIHVuc2lnbmVkIGlu dCBucl9kYW1vbl9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXNrICp0KQo+ICt7Cj4gKwlzdHJ1Y3Qg ZGFtb25fcmVnaW9uICpyOwo+ICsJdW5zaWduZWQgaW50IG5yX3JlZ2lvbnMgPSAwOwo+ICsKPiAr CWRhbW9uX2Zvcl9lYWNoX3JlZ2lvbihyLCB0KQo+ICsJCW5yX3JlZ2lvbnMrKzsKPiArCj4gKwly ZXR1cm4gbnJfcmVnaW9uczsKPiArfQo+ICsKPiArLyoKPiArICogRnVuY3Rpb25zIGZvciB0aGUg bW9kdWxlIGxvYWRpbmcvdW5sb2FkaW5nCj4gKyAqLwo+ICsKPiArc3RhdGljIGludCBfX2luaXQg ZGFtb25faW5pdCh2b2lkKQo+ICt7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgX19leGl0IGRhbW9uX2V4aXQodm9pZCkKPiArewo+ICt9Cj4gKwo+ICttb2R1bGVfaW5pdChk YW1vbl9pbml0KTsKPiArbW9kdWxlX2V4aXQoZGFtb25fZXhpdCk7Cj4gKwo+ICtNT0RVTEVfTElD RU5TRSgiR1BMIik7Cj4gK01PRFVMRV9BVVRIT1IoIlNlb25nSmFlIFBhcmsgPHNqcGFya0BhbWF6 b24uZGU+Iik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigiREFNT046IERhdGEgQWNjZXNzIE1PTml0 b3IiKTsKPiAKCgoKCkFtYXpvbiBEZXZlbG9wbWVudCBDZW50ZXIgR2VybWFueSBHbWJICktyYXVz ZW5zdHIuIDM4CjEwMTE3IEJlcmxpbgpHZXNjaGFlZnRzZnVlaHJ1bmc6IENocmlzdGlhbiBTY2hs YWVnZXIsIEpvbmF0aGFuIFdlaXNzCkVpbmdldHJhZ2VuIGFtIEFtdHNnZXJpY2h0IENoYXJsb3R0 ZW5idXJnIHVudGVyIEhSQiAxNDkxNzMgQgpTaXR6OiBCZXJsaW4KVXN0LUlEOiBERSAyODkgMjM3 IDg3OQoKCg==