From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: Re: [PATCH v4 4/5] drm/amdgpu: use bulk moves for efficient VM LRU handling (v4) Date: Wed, 22 Aug 2018 15:29:33 +0800 Message-ID: <20180822072931.GD28364@hr-amur2> References: <1534500481-15123-1-git-send-email-ray.huang@amd.com> <1534500481-15123-5-git-send-email-ray.huang@amd.com> <20180820060505.GA9468@hr-amur2> <1bab5ffd-a33d-581b-992f-402192ed6756@gmail.com> <20180821134305.GA13834@hr-amur2> <20180822033101.GB13834@hr-amur2> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180822033101.GB13834@hr-amur2> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Christian =?utf-8?B?S++/vW5pZw==?= Cc: "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBBdWcgMjIsIDIwMTggYXQgMTE6MzE6MDJBTSArMDgwMCwgSHVhbmcgUnVpIHdyb3Rl Ogo+IE9uIFR1ZSwgQXVnIDIxLCAyMDE4IGF0IDAzOjU0OjI4UE0gKzAyMDAsIENocmlzdGlhbiBL w7ZuaWcgd3JvdGU6Cj4gPiBBbSAyMS4wOC4yMDE4IHVtIDE1OjQzIHNjaHJpZWIgSHVhbmcgUnVp Ogo+ID4gPk9uIE1vbiwgQXVnIDIwLCAyMDE4IGF0IDA5OjE3OjEyUE0gKzA4MDAsIENocmlzdGlh biBLw7ZuaWcgd3JvdGU6Cj4gPiA+PkFtIDIwLjA4LjIwMTggdW0gMDg6MDUgc2NocmllYiBIdWFu ZyBSdWk6Cj4gPiA+Pj5PbiBGcmksIEF1ZyAxNywgMjAxOCBhdCAwNjozODoxNlBNICswODAwLCBL b2VuaWcsIENocmlzdGlhbiB3cm90ZToKPiA+ID4+Pj5BbSAxNy4wOC4yMDE4IHVtIDEyOjA4IHNj aHJpZWIgSHVhbmcgUnVpOgo+ID4gPj4+Pj5JIGNvbnRpbnVlIHRvIHdvcmsgZm9yIGJ1bGsgbW92 aW5nIHRoYXQgYmFzZWQgb24gdGhlIHByb3Bvc2FsIGJ5IENocmlzdGlhbi4KPiA+ID4+Pj4+Cj4g PiA+Pj4+PkJhY2tncm91bmQ6Cj4gPiA+Pj4+PmFtZGdwdSBkcml2ZXIgd2lsbCBtb3ZlIGFsbCBQ RC9QVCBhbmQgUGVyVk0gQk9zIGludG8gaWRsZSBsaXN0LiBUaGVuIG1vdmUgYWxsIG9mCj4gPiA+ Pj4+PnRoZW0gb24gdGhlIGVuZCBvZiBMUlUgbGlzdCBvbmUgYnkgb25lLiBUaHVzLCB0aGF0IGNh dXNlIHNvIG1hbnkgQk9zIG1vdmVkIHRvCj4gPiA+Pj4+PnRoZSBlbmQgb2YgdGhlIExSVSwgYW5k IGltcGFjdCBwZXJmb3JtYW5jZSBzZXJpb3VzbHkuCj4gPiA+Pj4+Pgo+ID4gPj4+Pj5UaGVuIENo cmlzdGlhbiBwcm92aWRlZCBhIHdvcmthcm91bmQgdG8gbm90IG1vdmUgUEQvUFQgQk9zIG9uIExS VSB3aXRoIGJlbG93Cj4gPiA+Pj4+PnBhdGNoOgo+ID4gPj4+Pj4iZHJtL2FtZGdwdTogYmFuZCBh aWQgdmFsaWRhdGluZyBWTSBQVHMiCj4gPiA+Pj4+PkNvbW1pdCAwYmJmMzIwMjZjZjViYTQxZTk5 MjJiMzBlMjZlMWJlZDFlY2QzOGFlCj4gPiA+Pj4+Pgo+ID4gPj4+Pj5Ib3dldmVyLCB0aGUgZmlu YWwgc29sdXRpb24gc2hvdWxkIGJ1bGsgbW92ZSBhbGwgUEQvUFQgYW5kIFBlclZNIEJPcyBvbiB0 aGUgTFJVCj4gPiA+Pj4+Pmluc3RlYWQgb2Ygb25lIGJ5IG9uZS4KPiA+ID4+Pj4+Cj4gPiA+Pj4+ PldoZW5ldmVyIGFtZGdwdV92bV92YWxpZGF0ZV9wdF9ib3MoKSBpcyBjYWxsZWQgYW5kIHdlIGhh dmUgQk9zIHdoaWNoIG5lZWQgdG8gYmUKPiA+ID4+Pj4+dmFsaWRhdGVkIHdlIG1vdmUgYWxsIEJP cyB0b2dldGhlciB0byB0aGUgZW5kIG9mIHRoZSBMUlUgd2l0aG91dCBkcm9wcGluZyB0aGUKPiA+ ID4+Pj4+bG9jayBmb3IgdGhlIExSVS4KPiA+ID4+Pj4+Cj4gPiA+Pj4+PldoaWxlIGRvaW5nIHNv IHdlIG5vdGUgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoaXMgYmxvY2sgaW4gdGhlIExSVSBs aXN0Lgo+ID4gPj4+Pj4KPiA+ID4+Pj4+Tm93IHdoZW4gYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0X2Jv cygpIGlzIGNhbGxlZCBhbmQgd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBkbywKPiA+ID4+Pj4+ d2UgZG9uJ3QgbW92ZSBldmVyeSBCTyBvbmUgYnkgb25lLCBidXQgaW5zdGVhZCBjdXQgdGhlIExS VSBsaXN0IGludG8gcGllY2VzIHNvCj4gPiA+Pj4+PnRoYXQgd2UgYnVsayBtb3ZlIGV2ZXJ5dGhp bmcgdG8gdGhlIGVuZCBpbiBqdXN0IG9uZSBvcGVyYXRpb24uCj4gPiA+Pj4+Pgo+ID4gPj4+Pj5U ZXN0IGRhdGE6Cj4gPiA+Pj4+PistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+Pj4+ PnwgICAgICAgICAgICAgIHxUaGUgVGFsb3MgICAgICAgIHxDbHBlYWsoT0NMKXxCdXNTcGVlZFJl YWRiYWNrKE9DTCkgICAgICAgICAgICAgICAgICB8Cj4gPiA+Pj4+PnwgICAgICAgICAgICAgIHxQ cmluY2lwbGUoVnVsa2FuKXwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8Cj4gPiA+Pj4+PistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+ Pj4+PnwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwwLjMxOSBt cygxaykgMC4zMTQgbXMoMkspIDAuMzA4IG1zKDRLKSB8Cj4gPiA+Pj4+PnwgT3JpZ2luYWwgICAg IHwgIDE0Ny43IEZQUyAgICAgIHwgIDc2Ljg2IHVzIHwwLjMwNyBtcyg4SykgMC4zMTAgbXMoMTZL KSAgICAgICAgICAgICB8Cj4gPiA+Pj4+PistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4g PiA+Pj4+PnwgT3JpZ25pYWwgKyBXQXwgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwwLjI1 NCBtcygxSykgMC4yNDEgbXMoMkspICAgICAgICAgICAgICB8Cj4gPiA+Pj4+PnwoZG9uJ3QgbW92 ZSAgIHwgIDE2Mi4xIEZQUyAgICAgIHwgIDQyLjE1IHVzIHwwLjIzMCBtcyg0SykgMC4yMjMgbXMo OEspIDAuMjA0IG1zKDE2Syl8Cj4gPiA+Pj4+PnxQVCBCT3Mgb24gTFJVKXwgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 Cj4gPiA+Pj4+PistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+Pj4+PnwgQnVsayBt b3ZlICAgIHwgIDE2My4xIEZQUyAgICAgIHwgIDQwLjUyIHVzIHwwLjI0NCBtcygxSykgMC4yNTIg bXMoMkspIDAuMjEzIG1zKDRLKSB8Cj4gPiA+Pj4+PnwgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwwLjIxNCBtcyg4SykgMC4yMjUgbXMoMTZLKSAgICAgICAgICAg ICB8Cj4gPiA+Pj4+PistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPiA+Pj4+Pgo+ID4g Pj4+Pj5BZnRlciB0ZXN0IHRoZW0gd2l0aCBhYm92ZSB0aHJlZSBiZW5jaG1hcmtzIGluY2x1ZGUg dnVsa2FuIGFuZCBvcGVuY2wuIFdlIGNhbgo+ID4gPj4+Pj5zZWUgdGhlIHZpc2libGUgaW1wcm92 ZW1lbnQgdGhhbiBvcmlnaW5hbCwgYW5kIGV2ZW4gYmV0dGVyIHRoYW4gb3JpZ2luYWwgd2l0aAo+ ID4gPj4+Pj53b3JrYXJvdW5kLgo+ID4gPj4+Pj4KPiA+ID4+Pj4+djI6IG1vdmUgYWxsIEJPcyBp bmNsdWRlIGlkbGUsIHJlbG9jYXRlZCwgYW5kIG1vdmVkIGxpc3QgdG8gdGhlIGVuZCBvZiBMUlUg YW5kCj4gPiA+Pj4+PnB1dCB0aGVtIHRvZ2V0aGVyLgo+ID4gPj4+Pj52MzogcmVtb3ZlIHVudXNl ZCBwYXJhbWV0ZXIgYW5kIHVzZSBsaXN0X2Zvcl9lYWNoX2VudHJ5IGluc3RlYWQgb2YgdGhlIG9u ZSB3aXRoCj4gPiA+Pj4+PnNhdmUgZW50cnkuCj4gPiA+Pj4+PnY0OiBtb3ZlIHRoZSBhbWRncHVf dm1fbW92ZV90b19scnVfdGFpbCBhZnRlciBjb21tYW5kIHN1Ym1pc3Npb24sIGF0IHRoYXQgdGlt ZSwKPiA+ID4+Pj4+YWxsIGJvIHdpbGwgYmUgYmFjayBvbiBpZGxlIGxpc3QuCj4gPiA+Pj4+Pgo+ ID4gPj4+Pj5TaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmln QGFtZC5jb20+Cj4gPiA+Pj4+PlNpZ25lZC1vZmYtYnk6IEh1YW5nIFJ1aSA8cmF5Lmh1YW5nQGFt ZC5jb20+Cj4gPiA+Pj4+PlRlc3RlZC1ieTogTWlrZSBMb3RoaWFuIDxtaWtlQGZpcmVidXJuLmNv LnVrPgo+ID4gPj4+Pj5UZXN0ZWQtYnk6IERpZXRlciBOw7x0emVsIDxEaWV0ZXJAbnVldHplbC1o aC5kZT4KPiA+ID4+Pj4+QWNrZWQtYnk6IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5j b20+Cj4gPiA+Pj4+Pi0tLQo+ID4gPj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2NzLmMgfCAxMSArKysrKysKPiA+ID4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92bS5jIHwgNzEgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0t LQo+ID4gPj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmggfCAx MSArKysrKy0KPiA+ID4+Pj4+ICAgIDMgZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwg MTggZGVsZXRpb25zKC0pCj4gPiA+Pj4+Pgo+ID4gPj4+Pj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfY3MuYwo+ID4gPj4+Pj5pbmRleCA1MDJiOTRmLi45ZmJkZjAyIDEwMDY0NAo+ID4g Pj4+Pj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+ID4gPj4+ Pj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYwo+ID4gPj4+Pj5A QCAtMTI2MCw2ICsxMjYwLDE2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdChzdHJ1Y3Qg YW1kZ3B1X2NzX3BhcnNlciAqcCwKPiA+ID4+Pj4+ICAgIAlyZXR1cm4gMDsKPiA+ID4+Pj4+ICAg IH0KPiA+ID4+Pj4+K3N0YXRpYyB2b2lkIGFtZGdwdV9jc192bV9tb3ZlX29uX2xydShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKPiA+ID4+Pj4+KwkJCQkgICAgIHN0cnVjdCBhbWRncHVfY3Nf cGFyc2VyICpwKQo+ID4gPj4+Pj4rewo+ID4gPj4+Pj4rCXN0cnVjdCBhbWRncHVfZnByaXYgKmZw cml2ID0gcC0+ZmlscC0+ZHJpdmVyX3ByaXY7Cj4gPiA+Pj4+PisJc3RydWN0IGFtZGdwdV92bSAq dm0gPSAmZnByaXYtPnZtOwo+ID4gPj4+Pj4rCj4gPiA+Pj4+PisJaWYgKHZtLT52YWxpZGF0ZWQp Cj4gPiA+Pj4+VGhhdCBjaGVjayBiZWxvbmdzIGluc2lkZSBhbWRncHVfdm1fbW92ZV90b19scnVf dGFpbCgpLgo+ID4gPj4+Pgo+ID4gPj4+Pj4rCQlhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbChh ZGV2LCB2bSk7Cj4gPiA+Pj4+Pit9Cj4gPiA+Pj4+PisKPiA+ID4+Pj4+ICAgIGludCBhbWRncHVf Y3NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9m aWxlICpmaWxwKQo+ID4gPj4+Pj4gICAgewo+ID4gPj4+Pj4gICAgCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ID4+Pj4+QEAgLTEzMTAsNiArMTMyMCw3 IEBAIGludCBhbWRncHVfY3NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwgc3RydWN0IGRybV9maWxlICpmaWxwKQo+ID4gPj4+Pj4gICAgCXIgPSBhbWRncHVfY3Nfc3Vi bWl0KCZwYXJzZXIsIGNzKTsKPiA+ID4+Pj4+KwlhbWRncHVfY3Nfdm1fbW92ZV9vbl9scnUoYWRl diwgJnBhcnNlcik7Cj4gPiA+Pj4+PiAgICBvdXQ6Cj4gPiA+Pj4+PiAgICAJYW1kZ3B1X2NzX3Bh cnNlcl9maW5pKCZwYXJzZXIsIHIsIHJlc2VydmVkX2J1ZmZlcnMpOwo+ID4gPj4+Pj4gICAgCXJl dHVybiByOwo+ID4gPj4+Pj5kaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+ID4g Pj4+Pj5pbmRleCA5Yzg0NzcwLi4wMzdjZmJjIDEwMDY0NAo+ID4gPj4+Pj4tLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+ID4gPj4+Pj4rKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+ID4gPj4+Pj5AQCAtMjY4LDYgKzI2OCw1MyBA QCB2b2lkIGFtZGdwdV92bV9nZXRfcGRfYm8oc3RydWN0IGFtZGdwdV92bSAqdm0sCj4gPiA+Pj4+ PiAgICB9Cj4gPiA+Pj4+PiAgICAvKioKPiA+ID4+Pj4+KyAqIGFtZGdwdV92bV9tb3ZlX3RvX2xy dV90YWlsX2J5X2xpc3QgLSBtb3ZlIG9uZSBsaXN0IG9mIEJPcyB0byBlbmQgb2YgTFJVCj4gPiA+ Pj4+PisgKgo+ID4gPj4+Pj4rICogQHZtOiB2bSBwcm92aWRpbmcgdGhlIEJPcwo+ID4gPj4+Pj4r ICogQGxpc3Q6IHRoZSBsaXN0IHRoYXQgc3RvcmVkIEJPcwo+ID4gPj4+Pj4rICoKPiA+ID4+Pj4+ KyAqIE1vdmUgb25lIGxpc3Qgb2YgQk9zIHRvIHRoZSBlbmQgb2YgTFJVIGFuZCB1cGRhdGUgdGhl IHBvc2l0aW9ucy4KPiA+ID4+Pj4+KyAqLwo+ID4gPj4+Pj4rc3RhdGljIHZvaWQKPiA+ID4+Pj4+ K2FtZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsX2J5X2xpc3Qoc3RydWN0IGFtZGdwdV92bSAqdm0s IHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCj4gPiA+Pj4+SSBkb24ndCBzZWUgbXVjaCBvZiBhIHBv aW50IGhhdmluZyBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciB0aGlzIGFueSBtb3JlLgo+ID4gPj4+ Pgo+ID4gPj4+Pj4rewo+ID4gPj4+Pj4rCXN0cnVjdCBhbWRncHVfdm1fYm9fYmFzZSAqYm9fYmFz ZTsKPiA+ID4+Pj4+Kwo+ID4gPj4+Pj4rCWxpc3RfZm9yX2VhY2hfZW50cnkoYm9fYmFzZSwgbGlz dCwgdm1fc3RhdHVzKSB7Cj4gPiA+Pj4+PisJCXN0cnVjdCBhbWRncHVfYm8gKmJvID0gYm9fYmFz ZS0+Ym87Cj4gPiA+Pj4+PisKPiA+ID4+Pj4+KwkJaWYgKCFiby0+cGFyZW50KQo+ID4gPj4+Pj4r CQkJY29udGludWU7Cj4gPiA+Pj4+PisKPiA+ID4+Pj4+KwkJdHRtX2JvX21vdmVfdG9fbHJ1X3Rh aWwoJmJvLT50Ym8sICZ2bS0+bHJ1X2J1bGtfbW92ZSk7Cj4gPiA+Pj4+PisJCWlmIChiby0+c2hh ZG93KQo+ID4gPj4+Pj4rCQkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoJmJvLT5zaGFkb3ctPnRi bywKPiA+ID4+Pj4+KwkJCQkJCSZ2bS0+bHJ1X2J1bGtfbW92ZSk7Cj4gPiA+Pj4+PisJfQo+ID4g Pj4+Pj4rfQo+ID4gPj4+Pj4rCj4gPiA+Pj4+PisvKioKPiA+ID4+Pj4+KyAqIGFtZGdwdV92bV9t b3ZlX3RvX2xydV90YWlsIC0gbW92ZSBhbGwgQk9zIHRvIHRoZSBlbmQgb2YgTFJVCj4gPiA+Pj4+ PisgKgo+ID4gPj4+Pj4rICogQGFkZXY6IGFtZGdwdSBkZXZpY2UgcG9pbnRlcgo+ID4gPj4+Pj4r ICogQHZtOiB2bSBwcm92aWRpbmcgdGhlIEJPcwo+ID4gPj4+Pj4rICoKPiA+ID4+Pj4+KyAqIE1v dmUgYWxsIEJPcyB0byB0aGUgZW5kIG9mIExSVSBhbmQgcmVtZW1iZXIgdGhlaXIgcG9zaXRpb25z IHRvIHB1dCB0aGVtCj4gPiA+Pj4+PisgKiB0b2dldGhlci4KPiA+ID4+Pj4+KyAqLwo+ID4gPj4+ Pj4rdm9pZCBhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwKPiA+ID4+Pj4+KwkJCQlzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSkKPiA+ID4+Pj4+K3sKPiA+ ID4+Pj4+KwlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9IGFkZXYtPm1tYW4uYmRldi5nbG9i Owo+ID4gPj4+Pj4rCj4gPiA+Pj4+PisJbWVtc2V0KCZ2bS0+bHJ1X2J1bGtfbW92ZSwgMCwgc2l6 ZW9mKHZtLT5scnVfYnVsa19tb3ZlKSk7Cj4gPiA+Pj4+PisKPiA+ID4+Pj4+KwlzcGluX2xvY2so Jmdsb2ItPmxydV9sb2NrKTsKPiA+ID4+Pj4+KwlhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbF9i eV9saXN0KHZtLCAmdm0tPmlkbGUpOwo+ID4gPj4+Pj4rCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVf bG9jayk7Cj4gPiA+Pj4+Pit9Cj4gPiA+Pj4+PisKPiA+ID4+Pj4+Ky8qKgo+ID4gPj4+Pj4gICAg ICogYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0X2JvcyAtIHZhbGlkYXRlIHRoZSBwYWdlIHRhYmxlIEJP cwo+ID4gPj4+Pj4gICAgICoKPiA+ID4+Pj4+ICAgICAqIEBhZGV2OiBhbWRncHUgZGV2aWNlIHBv aW50ZXIKPiA+ID4+Pj4+QEAgLTI4OCw2ICszMzUsNyBAQCBpbnQgYW1kZ3B1X3ZtX3ZhbGlkYXRl X3B0X2JvcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0s Cj4gPiA+Pj4+PiAgICAJc3RydWN0IGFtZGdwdV92bV9ib19iYXNlICpib19iYXNlLCAqdG1wOwo+ ID4gPj4+Pj4gICAgCWludCByID0gMDsKPiA+ID4+Pj4+Kwl2bS0+dmFsaWRhdGVkID0gZmFsc2U7 Cj4gPiA+Pj4+VGhhdCB3b24ndCB3b3JrIGxpa2UgdGhpcy4gSXQgaXMgcGVyZmVjdGx5IHBvc3Np YmxlIHRoYXQgQ1MgaXMgYWJvcnRlZAo+ID4gPj4+PmJlY2F1c2Ugb2YgYSBzaWduYWwgYW5kIGFt ZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsKCkgbmV2ZXIgY2FsbGVkLgo+ID4gPj4+Pgo+ID4gPj4+ Pkkgc3VnZ2VzdCB0byBkbyAidm0tPnZhbGlkYXRlZCB8PSAhbGlzdF9lbXB0eSgmdm0tPmV2aWN0 ZWQpOyIgaGVyZSBhbmQKPiA+ID4+Pj50aGVuIHNldCBpdCB0byBmYWxzZSBhZ2FpbiBpbiBhbWRn cHVfdm1fbW92ZV90b19scnVfdGFpbCgpLgo+ID4gPj4+Pgo+ID4gPj4+PkFuZCBtYXliZSB3ZSBu ZWVkIGEgYmV0dGVyIG5hbWUgdGhhbiAidmFsaWRhdGVkIiwgbWF5YmUgImJ1bGtfbW92ZWFibGUi Cj4gPiA+Pj4+b3Igc29tZXRoaW5nIGxpa2UgdGhhdC4KPiA+ID4+Pj4KPiA+ID4+PkFjdHVhbGx5 LCAidmFsaWRhdGVkIiBpcyBvcHBvc2l0ZSB0byAiYnVsa19tb3ZlYWJsZSIuCj4gPiA+Pj5TbyBo b3cgYWJvdXQgdXNlICJ2bS0+YnVsa19tb3ZlYWJsZSA9IGxpc3RfZW1wdHkoJnZtLT5ldmljdGVk KTsiIGhlcmUKPiA+ID4+VGhhdCBzdGlsbCB3b24ndCB3b3JrIGNvcnJlY3QuIFNlZSB0aGUgdmFs aWRhdGlvbiBjYW4gYmUgaW50ZXJydXB0ZWQuCj4gPiA+Pgo+ID4gPj5TbyB3ZSBuZWVkIHNvbWV0 aGluZyBsaWtlICJ2bS0+YnVsa19tb3ZlYWJsZSAmPQo+ID4gPj5saXN0X2VtcHR5KCZ2bS0+ZXZp Y3RlZCk7IiBoZXJlLgo+ID4gPlRoYW5rcy4gSSBmb3VuZCBpZiB3ZSB1c2Ugdm0tPmJ1bGtfbW92 ZWFibGUsIGl0IHdpbGwgaGF2ZSBhIGNvcnJ1cHRpb24gb2YgbGlzdC4KPiA+ID4KPiA+ID5bIDI3 NjMuODM0MjI4XSAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0KPiA+ID5bIDI3 NjMuODM5MjIxXSBsaXN0X2RlbCBjb3JydXB0aW9uLiBwcmV2LT5uZXh0IHNob3VsZCBiZSBmZmZm OTEzN2RhZTAyOGY4LCBidXQgd2FzIGZmZmZhNTliODIwMDNhZTAKPiA+ID5bIDI3NjMuODQ4MzMw XSBXQVJOSU5HOiBDUFU6IDEgUElEOiAyODEgYXQgbGliL2xpc3RfZGVidWcuYzo1MyBfX2xpc3Rf ZGVsX2VudHJ5X3ZhbGlkKzB4N2MvMHhhMAo+ID4gPi4uLgo+ID4gPlsgMjc2NC4wNTMyNTddIENh bGwgVHJhY2U6Cj4gPiA+WyAyNzY0LjA1NTc0OF0gIHR0bV9ib19kZWxfZnJvbV9scnUrMHg3Ny8w eGMwIFt0dG1dCj4gPiA+WyAyNzY0LjA2MDQzN10gIHR0bV9ib19yZWxlYXNlKzB4MjNhLzB4MmMw IFt0dG1dCj4gPiA+WyAyNzY0LjA2NDkyNF0gIGFtZGdwdV9ib19kZXN0cm95KzB4OTMvMHgxNDAg W2FtZGdwdV0KPiA+ID5bIDI3NjQuMDY5NzY5XSAgdHRtX2JvX3JlbGVhc2VfbGlzdCsweDExMy8w eDE3MCBbdHRtXQo+ID4gPlsgMjc2NC4wNzQ2OTVdICBhbWRncHVfYm9fZGVzdHJveSsweDkzLzB4 MTQwIFthbWRncHVdCj4gPiA+WyAyNzY0LjA3OTU0NF0gIHR0bV9ib19yZWxlYXNlX2xpc3QrMHgx MTMvMHgxNzAgW3R0bV0KPiA+ID4KPiA+ID5Ib3dldmVyLCBpZiB1c2Ugdm0tPmJ1bGtfbm90X21v dmVhYmxlIChsaWtlIHZtLT52YWxpZGF0ZWQpLCB0aGUgaXNzdWUgaXMgZ29uZS4KPiA+ID5JIGRp ZG4ndCBjb25maXJtIHRoZSByZWFzb24geWV0Lgo+ID4gCj4gPiBNYWtlIHN1cmUgdGhhdCB5b3Ug ZG9uJ3QgdHJ5IHRvIG1vdmUgdGhlIHJvb3QgUEQgYXMgd2VsbC4gRS5nLiB0ZXN0Cj4gPiBmb3Ig Ym8tPnBhcmVudCBhbmQgc2tpcCBpZiBpdCBpcyBOVUxMLgo+ID4gCj4gCj4gWWVzLCBJIGhhdmUg c2tpcHBlZCB0aGUgcm9vdCBQRCwgYnV0IHRoZSBpc3N1ZSBpcyBzdGlsbCBleGlzdGVkLgo+IAo+ IGxpc3RfZm9yX2VhY2hfZW50cnkoYm9fYmFzZSwgJnZtLT5pZGxlLCB2bV9zdGF0dXMpIHsKPiAg ICAgICAgIHN0cnVjdCBhbWRncHVfYm8gKmJvID0gYm9fYmFzZS0+Ym87Cj4gCj4gICAgICAgICBp ZiAoIWJvLT5wYXJlbnQpCj4gICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+IAo+ICAgICAgICAg dHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoJmJvLT50Ym8sICZ2bS0+bHJ1X2J1bGtfbW92ZSk7Cj4g ICAgICAgICBpZiAoYm8tPnNoYWRvdykKPiAgICAgICAgICAgICAgICAgdHRtX2JvX21vdmVfdG9f bHJ1X3RhaWwoJmJvLT5zaGFkb3ctPnRibywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnZtLT5scnVfYnVsa19tb3ZlKTsKPiB9Cj4gCj4gTGV0IG1lIGNvbnRpbnVl IHRvIG5hcnJvdyBkb3duIHRoaXMgaXNzdWUuCj4gCgpJIGZvdW5kIHRoZSBjYXVzZSBvZiB0aGlz IGNvcnJ1cHRpb24uClRoZSBpbml0IHZhbHVlIG9mIHZtLT5idWxrX21vdmVhYmxlIGlzIGFjdHVh bGx5IGZhbHNlLgpUaGVuIGFmdGVyIHZtLT5idWxrX21vdmVhYmxlICY9IGxpc3RfZW1wdHkoJnZt LT5ldmljdGVkKSwgdGhlIGJ1bGtfbW92ZWFibGUKaXMgc3RpbGwgZmFsc2UgZXZlbiB0aGUgZXZp Y3RlZCBsaXN0IGlzIGVtcHR5IGF0IHRoYXQgdGltZS4gVGhhdCdzIG5vdApleHBlY3RlZC4KClNv IHdlIGp1c3Qgc2V0IHZtLT5idWxrX21vdmVhYmxlIGFzIHRydWUgYXQgYW1kZ3B1X3ZtX2luaXQo KSBkdXJpbmcgdm0KaW5pdCwgdGhlIGlzc3VlIGlzIGZpeGVkLgoKVGhhbmtzLApSYXkKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5n IGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==