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 11:31:02 +0800 Message-ID: <20180822033101.GB13834@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Christian =?iso-8859-1?Q?K=F6nig?= Cc: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBBdWcgMjEsIDIwMTggYXQgMDM6NTQ6MjhQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiBBbSAyMS4wOC4yMDE4IHVtIDE1OjQzIHNjaHJpZWIgSHVhbmcgUnVpOgo+ID5P biBNb24sIEF1ZyAyMCwgMjAxOCBhdCAwOToxNzoxMlBNICswODAwLCBDaHJpc3RpYW4gS8O2bmln IHdyb3RlOgo+ID4+QW0gMjAuMDguMjAxOCB1bSAwODowNSBzY2hyaWViIEh1YW5nIFJ1aToKPiA+ Pj5PbiBGcmksIEF1ZyAxNywgMjAxOCBhdCAwNjozODoxNlBNICswODAwLCBLb2VuaWcsIENocmlz dGlhbiB3cm90ZToKPiA+Pj4+QW0gMTcuMDguMjAxOCB1bSAxMjowOCBzY2hyaWViIEh1YW5nIFJ1 aToKPiA+Pj4+PkkgY29udGludWUgdG8gd29yayBmb3IgYnVsayBtb3ZpbmcgdGhhdCBiYXNlZCBv biB0aGUgcHJvcG9zYWwgYnkgQ2hyaXN0aWFuLgo+ID4+Pj4+Cj4gPj4+Pj5CYWNrZ3JvdW5kOgo+ ID4+Pj4+YW1kZ3B1IGRyaXZlciB3aWxsIG1vdmUgYWxsIFBEL1BUIGFuZCBQZXJWTSBCT3MgaW50 byBpZGxlIGxpc3QuIFRoZW4gbW92ZSBhbGwgb2YKPiA+Pj4+PnRoZW0gb24gdGhlIGVuZCBvZiBM UlUgbGlzdCBvbmUgYnkgb25lLiBUaHVzLCB0aGF0IGNhdXNlIHNvIG1hbnkgQk9zIG1vdmVkIHRv Cj4gPj4+Pj50aGUgZW5kIG9mIHRoZSBMUlUsIGFuZCBpbXBhY3QgcGVyZm9ybWFuY2Ugc2VyaW91 c2x5Lgo+ID4+Pj4+Cj4gPj4+Pj5UaGVuIENocmlzdGlhbiBwcm92aWRlZCBhIHdvcmthcm91bmQg dG8gbm90IG1vdmUgUEQvUFQgQk9zIG9uIExSVSB3aXRoIGJlbG93Cj4gPj4+Pj5wYXRjaDoKPiA+ Pj4+PiJkcm0vYW1kZ3B1OiBiYW5kIGFpZCB2YWxpZGF0aW5nIFZNIFBUcyIKPiA+Pj4+PkNvbW1p dCAwYmJmMzIwMjZjZjViYTQxZTk5MjJiMzBlMjZlMWJlZDFlY2QzOGFlCj4gPj4+Pj4KPiA+Pj4+ Pkhvd2V2ZXIsIHRoZSBmaW5hbCBzb2x1dGlvbiBzaG91bGQgYnVsayBtb3ZlIGFsbCBQRC9QVCBh bmQgUGVyVk0gQk9zIG9uIHRoZSBMUlUKPiA+Pj4+Pmluc3RlYWQgb2Ygb25lIGJ5IG9uZS4KPiA+ Pj4+Pgo+ID4+Pj4+V2hlbmV2ZXIgYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0X2JvcygpIGlzIGNhbGxl ZCBhbmQgd2UgaGF2ZSBCT3Mgd2hpY2ggbmVlZCB0byBiZQo+ID4+Pj4+dmFsaWRhdGVkIHdlIG1v dmUgYWxsIEJPcyB0b2dldGhlciB0byB0aGUgZW5kIG9mIHRoZSBMUlUgd2l0aG91dCBkcm9wcGlu ZyB0aGUKPiA+Pj4+PmxvY2sgZm9yIHRoZSBMUlUuCj4gPj4+Pj4KPiA+Pj4+PldoaWxlIGRvaW5n IHNvIHdlIG5vdGUgdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIHRoaXMgYmxvY2sgaW4gdGhlIExS VSBsaXN0Lgo+ID4+Pj4+Cj4gPj4+Pj5Ob3cgd2hlbiBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9z KCkgaXMgY2FsbGVkIGFuZCB3ZSBkb24ndCBoYXZlIGFueXRoaW5nIHRvIGRvLAo+ID4+Pj4+d2Ug ZG9uJ3QgbW92ZSBldmVyeSBCTyBvbmUgYnkgb25lLCBidXQgaW5zdGVhZCBjdXQgdGhlIExSVSBs aXN0IGludG8gcGllY2VzIHNvCj4gPj4+Pj50aGF0IHdlIGJ1bGsgbW92ZSBldmVyeXRoaW5nIHRv IHRoZSBlbmQgaW4ganVzdCBvbmUgb3BlcmF0aW9uLgo+ID4+Pj4+Cj4gPj4+Pj5UZXN0IGRhdGE6 Cj4gPj4+Pj4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ID4+Pj4+fCAgICAgICAgICAg ICAgfFRoZSBUYWxvcyAgICAgICAgfENscGVhayhPQ0wpfEJ1c1NwZWVkUmVhZGJhY2soT0NMKSAg ICAgICAgICAgICAgICAgIHwKPiA+Pj4+PnwgICAgICAgICAgICAgIHxQcmluY2lwbGUoVnVsa2Fu KXwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4g Pj4+Pj4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ID4+Pj4+fCAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfDAuMzE5IG1zKDFrKSAwLjMxNCBtcygySykg MC4zMDggbXMoNEspIHwKPiA+Pj4+PnwgT3JpZ2luYWwgICAgIHwgIDE0Ny43IEZQUyAgICAgIHwg IDc2Ljg2IHVzIHwwLjMwNyBtcyg4SykgMC4zMTAgbXMoMTZLKSAgICAgICAgICAgICB8Cj4gPj4+ Pj4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ID4+Pj4+fCBPcmlnbmlhbCArIFdBfCAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgfDAuMjU0IG1zKDFLKSAwLjI0MSBtcygySykgICAg ICAgICAgICAgIHwKPiA+Pj4+PnwoZG9uJ3QgbW92ZSAgIHwgIDE2Mi4xIEZQUyAgICAgIHwgIDQy LjE1IHVzIHwwLjIzMCBtcyg0SykgMC4yMjMgbXMoOEspIDAuMjA0IG1zKDE2Syl8Cj4gPj4+Pj58 UFQgQk9zIG9uIExSVSl8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ID4+Pj4+Ky0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsKPiA+Pj4+PnwgQnVsayBtb3ZlICAgIHwgIDE2My4xIEZQUyAgICAgIHwgIDQwLjUy IHVzIHwwLjI0NCBtcygxSykgMC4yNTIgbXMoMkspIDAuMjEzIG1zKDRLKSB8Cj4gPj4+Pj58ICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8MC4yMTQgbXMoOEspIDAu MjI1IG1zKDE2SykgICAgICAgICAgICAgfAo+ID4+Pj4+Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKPiA+Pj4+Pgo+ID4+Pj4+QWZ0ZXIgdGVzdCB0aGVtIHdpdGggYWJvdmUgdGhyZWUgYmVu Y2htYXJrcyBpbmNsdWRlIHZ1bGthbiBhbmQgb3BlbmNsLiBXZSBjYW4KPiA+Pj4+PnNlZSB0aGUg dmlzaWJsZSBpbXByb3ZlbWVudCB0aGFuIG9yaWdpbmFsLCBhbmQgZXZlbiBiZXR0ZXIgdGhhbiBv cmlnaW5hbCB3aXRoCj4gPj4+Pj53b3JrYXJvdW5kLgo+ID4+Pj4+Cj4gPj4+Pj52MjogbW92ZSBh bGwgQk9zIGluY2x1ZGUgaWRsZSwgcmVsb2NhdGVkLCBhbmQgbW92ZWQgbGlzdCB0byB0aGUgZW5k IG9mIExSVSBhbmQKPiA+Pj4+PnB1dCB0aGVtIHRvZ2V0aGVyLgo+ID4+Pj4+djM6IHJlbW92ZSB1 bnVzZWQgcGFyYW1ldGVyIGFuZCB1c2UgbGlzdF9mb3JfZWFjaF9lbnRyeSBpbnN0ZWFkIG9mIHRo ZSBvbmUgd2l0aAo+ID4+Pj4+c2F2ZSBlbnRyeS4KPiA+Pj4+PnY0OiBtb3ZlIHRoZSBhbWRncHVf dm1fbW92ZV90b19scnVfdGFpbCBhZnRlciBjb21tYW5kIHN1Ym1pc3Npb24sIGF0IHRoYXQgdGlt ZSwKPiA+Pj4+PmFsbCBibyB3aWxsIGJlIGJhY2sgb24gaWRsZSBsaXN0Lgo+ID4+Pj4+Cj4gPj4+ Pj5TaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5j b20+Cj4gPj4+Pj5TaWduZWQtb2ZmLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPgo+ ID4+Pj4+VGVzdGVkLWJ5OiBNaWtlIExvdGhpYW4gPG1pa2VAZmlyZWJ1cm4uY28udWs+Cj4gPj4+ Pj5UZXN0ZWQtYnk6IERpZXRlciBOw7x0emVsIDxEaWV0ZXJAbnVldHplbC1oaC5kZT4KPiA+Pj4+ PkFja2VkLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgo+ID4+Pj4+LS0t Cj4gPj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgfCAxMSAr KysrKysKPiA+Pj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyB8 IDcxICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiA+Pj4+PiAgICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCB8IDExICsrKysrLQo+ID4+Pj4+ICAgIDMg ZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4gPj4+Pj4K PiA+Pj4+PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3Mu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4gPj4+Pj5pbmRleCA1 MDJiOTRmLi45ZmJkZjAyIDEwMDY0NAo+ID4+Pj4+LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2NzLmMKPiA+Pj4+PisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9jcy5jCj4gPj4+Pj5AQCAtMTI2MCw2ICsxMjYwLDE2IEBAIHN0YXRpYyBpbnQgYW1k Z3B1X2NzX3N1Ym1pdChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwKPiA+Pj4+PiAgICAJcmV0 dXJuIDA7Cj4gPj4+Pj4gICAgfQo+ID4+Pj4+K3N0YXRpYyB2b2lkIGFtZGdwdV9jc192bV9tb3Zl X29uX2xydShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiA+Pj4+PisJCQkJICAgICBzdHJ1 Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCkKPiA+Pj4+Pit7Cj4gPj4+Pj4rCXN0cnVjdCBhbWRncHVf ZnByaXYgKmZwcml2ID0gcC0+ZmlscC0+ZHJpdmVyX3ByaXY7Cj4gPj4+Pj4rCXN0cnVjdCBhbWRn cHVfdm0gKnZtID0gJmZwcml2LT52bTsKPiA+Pj4+PisKPiA+Pj4+PisJaWYgKHZtLT52YWxpZGF0 ZWQpCj4gPj4+PlRoYXQgY2hlY2sgYmVsb25ncyBpbnNpZGUgYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1 X3RhaWwoKS4KPiA+Pj4+Cj4gPj4+Pj4rCQlhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbChhZGV2 LCB2bSk7Cj4gPj4+Pj4rfQo+ID4+Pj4+Kwo+ID4+Pj4+ICAgIGludCBhbWRncHVfY3NfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxw KQo+ID4+Pj4+ICAgIHsKPiA+Pj4+PiAgICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBk ZXYtPmRldl9wcml2YXRlOwo+ID4+Pj4+QEAgLTEzMTAsNiArMTMyMCw3IEBAIGludCBhbWRncHVf Y3NfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9m aWxlICpmaWxwKQo+ID4+Pj4+ICAgIAlyID0gYW1kZ3B1X2NzX3N1Ym1pdCgmcGFyc2VyLCBjcyk7 Cj4gPj4+Pj4rCWFtZGdwdV9jc192bV9tb3ZlX29uX2xydShhZGV2LCAmcGFyc2VyKTsKPiA+Pj4+ PiAgICBvdXQ6Cj4gPj4+Pj4gICAgCWFtZGdwdV9jc19wYXJzZXJfZmluaSgmcGFyc2VyLCByLCBy ZXNlcnZlZF9idWZmZXJzKTsKPiA+Pj4+PiAgICAJcmV0dXJuIHI7Cj4gPj4+Pj5kaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+ID4+Pj4+aW5kZXggOWM4NDc3MC4uMDM3Y2ZiYyAx MDA2NDQKPiA+Pj4+Pi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5j Cj4gPj4+Pj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+ID4+ Pj4+QEAgLTI2OCw2ICsyNjgsNTMgQEAgdm9pZCBhbWRncHVfdm1fZ2V0X3BkX2JvKHN0cnVjdCBh bWRncHVfdm0gKnZtLAo+ID4+Pj4+ICAgIH0KPiA+Pj4+PiAgICAvKioKPiA+Pj4+PisgKiBhbWRn cHVfdm1fbW92ZV90b19scnVfdGFpbF9ieV9saXN0IC0gbW92ZSBvbmUgbGlzdCBvZiBCT3MgdG8g ZW5kIG9mIExSVQo+ID4+Pj4+KyAqCj4gPj4+Pj4rICogQHZtOiB2bSBwcm92aWRpbmcgdGhlIEJP cwo+ID4+Pj4+KyAqIEBsaXN0OiB0aGUgbGlzdCB0aGF0IHN0b3JlZCBCT3MKPiA+Pj4+PisgKgo+ ID4+Pj4+KyAqIE1vdmUgb25lIGxpc3Qgb2YgQk9zIHRvIHRoZSBlbmQgb2YgTFJVIGFuZCB1cGRh dGUgdGhlIHBvc2l0aW9ucy4KPiA+Pj4+PisgKi8KPiA+Pj4+PitzdGF0aWMgdm9pZAo+ID4+Pj4+ K2FtZGdwdV92bV9tb3ZlX3RvX2xydV90YWlsX2J5X2xpc3Qoc3RydWN0IGFtZGdwdV92bSAqdm0s IHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCj4gPj4+PkkgZG9uJ3Qgc2VlIG11Y2ggb2YgYSBwb2lu dCBoYXZpbmcgYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgdGhpcyBhbnkgbW9yZS4KPiA+Pj4+Cj4g Pj4+Pj4rewo+ID4+Pj4+KwlzdHJ1Y3QgYW1kZ3B1X3ZtX2JvX2Jhc2UgKmJvX2Jhc2U7Cj4gPj4+ Pj4rCj4gPj4+Pj4rCWxpc3RfZm9yX2VhY2hfZW50cnkoYm9fYmFzZSwgbGlzdCwgdm1fc3RhdHVz KSB7Cj4gPj4+Pj4rCQlzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IGJvX2Jhc2UtPmJvOwo+ID4+Pj4+ Kwo+ID4+Pj4+KwkJaWYgKCFiby0+cGFyZW50KQo+ID4+Pj4+KwkJCWNvbnRpbnVlOwo+ID4+Pj4+ Kwo+ID4+Pj4+KwkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoJmJvLT50Ym8sICZ2bS0+bHJ1X2J1 bGtfbW92ZSk7Cj4gPj4+Pj4rCQlpZiAoYm8tPnNoYWRvdykKPiA+Pj4+PisJCQl0dG1fYm9fbW92 ZV90b19scnVfdGFpbCgmYm8tPnNoYWRvdy0+dGJvLAo+ID4+Pj4+KwkJCQkJCSZ2bS0+bHJ1X2J1 bGtfbW92ZSk7Cj4gPj4+Pj4rCX0KPiA+Pj4+Pit9Cj4gPj4+Pj4rCj4gPj4+Pj4rLyoqCj4gPj4+ Pj4rICogYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwgLSBtb3ZlIGFsbCBCT3MgdG8gdGhlIGVu ZCBvZiBMUlUKPiA+Pj4+PisgKgo+ID4+Pj4+KyAqIEBhZGV2OiBhbWRncHUgZGV2aWNlIHBvaW50 ZXIKPiA+Pj4+PisgKiBAdm06IHZtIHByb3ZpZGluZyB0aGUgQk9zCj4gPj4+Pj4rICoKPiA+Pj4+ PisgKiBNb3ZlIGFsbCBCT3MgdG8gdGhlIGVuZCBvZiBMUlUgYW5kIHJlbWVtYmVyIHRoZWlyIHBv c2l0aW9ucyB0byBwdXQgdGhlbQo+ID4+Pj4+KyAqIHRvZ2V0aGVyLgo+ID4+Pj4+KyAqLwo+ID4+ Pj4+K3ZvaWQgYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCj4gPj4+Pj4rCQkJCXN0cnVjdCBhbWRncHVfdm0gKnZtKQo+ID4+Pj4+K3sKPiA+Pj4+ PisJc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPSBhZGV2LT5tbWFuLmJkZXYuZ2xvYjsKPiA+ Pj4+PisKPiA+Pj4+PisJbWVtc2V0KCZ2bS0+bHJ1X2J1bGtfbW92ZSwgMCwgc2l6ZW9mKHZtLT5s cnVfYnVsa19tb3ZlKSk7Cj4gPj4+Pj4rCj4gPj4+Pj4rCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xv Y2spOwo+ID4+Pj4+KwlhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbF9ieV9saXN0KHZtLCAmdm0t PmlkbGUpOwo+ID4+Pj4+KwlzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwo+ID4+Pj4+K30K PiA+Pj4+PisKPiA+Pj4+PisvKioKPiA+Pj4+PiAgICAgKiBhbWRncHVfdm1fdmFsaWRhdGVfcHRf Ym9zIC0gdmFsaWRhdGUgdGhlIHBhZ2UgdGFibGUgQk9zCj4gPj4+Pj4gICAgICoKPiA+Pj4+PiAg ICAgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2ludGVyCj4gPj4+Pj5AQCAtMjg4LDYgKzMzNSw3 IEBAIGludCBhbWRncHVfdm1fdmFsaWRhdGVfcHRfYm9zKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPiA+Pj4+PiAgICAJc3RydWN0IGFtZGdwdV92bV9i b19iYXNlICpib19iYXNlLCAqdG1wOwo+ID4+Pj4+ICAgIAlpbnQgciA9IDA7Cj4gPj4+Pj4rCXZt LT52YWxpZGF0ZWQgPSBmYWxzZTsKPiA+Pj4+VGhhdCB3b24ndCB3b3JrIGxpa2UgdGhpcy4gSXQg aXMgcGVyZmVjdGx5IHBvc3NpYmxlIHRoYXQgQ1MgaXMgYWJvcnRlZAo+ID4+Pj5iZWNhdXNlIG9m IGEgc2lnbmFsIGFuZCBhbWRncHVfdm1fbW92ZV90b19scnVfdGFpbCgpIG5ldmVyIGNhbGxlZC4K PiA+Pj4+Cj4gPj4+Pkkgc3VnZ2VzdCB0byBkbyAidm0tPnZhbGlkYXRlZCB8PSAhbGlzdF9lbXB0 eSgmdm0tPmV2aWN0ZWQpOyIgaGVyZSBhbmQKPiA+Pj4+dGhlbiBzZXQgaXQgdG8gZmFsc2UgYWdh aW4gaW4gYW1kZ3B1X3ZtX21vdmVfdG9fbHJ1X3RhaWwoKS4KPiA+Pj4+Cj4gPj4+PkFuZCBtYXli ZSB3ZSBuZWVkIGEgYmV0dGVyIG5hbWUgdGhhbiAidmFsaWRhdGVkIiwgbWF5YmUgImJ1bGtfbW92 ZWFibGUiCj4gPj4+Pm9yIHNvbWV0aGluZyBsaWtlIHRoYXQuCj4gPj4+Pgo+ID4+PkFjdHVhbGx5 LCAidmFsaWRhdGVkIiBpcyBvcHBvc2l0ZSB0byAiYnVsa19tb3ZlYWJsZSIuCj4gPj4+U28gaG93 IGFib3V0IHVzZSAidm0tPmJ1bGtfbW92ZWFibGUgPSBsaXN0X2VtcHR5KCZ2bS0+ZXZpY3RlZCk7 IiBoZXJlCj4gPj5UaGF0IHN0aWxsIHdvbid0IHdvcmsgY29ycmVjdC4gU2VlIHRoZSB2YWxpZGF0 aW9uIGNhbiBiZSBpbnRlcnJ1cHRlZC4KPiA+Pgo+ID4+U28gd2UgbmVlZCBzb21ldGhpbmcgbGlr ZSAidm0tPmJ1bGtfbW92ZWFibGUgJj0KPiA+Pmxpc3RfZW1wdHkoJnZtLT5ldmljdGVkKTsiIGhl cmUuCj4gPlRoYW5rcy4gSSBmb3VuZCBpZiB3ZSB1c2Ugdm0tPmJ1bGtfbW92ZWFibGUsIGl0IHdp bGwgaGF2ZSBhIGNvcnJ1cHRpb24gb2YgbGlzdC4KPiA+Cj4gPlsgMjc2My44MzQyMjhdIC0tLS0t LS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0tLS0tLQo+ID5bIDI3NjMuODM5MjIxXSBsaXN0X2Rl bCBjb3JydXB0aW9uLiBwcmV2LT5uZXh0IHNob3VsZCBiZSBmZmZmOTEzN2RhZTAyOGY4LCBidXQg d2FzIGZmZmZhNTliODIwMDNhZTAKPiA+WyAyNzYzLjg0ODMzMF0gV0FSTklORzogQ1BVOiAxIFBJ RDogMjgxIGF0IGxpYi9saXN0X2RlYnVnLmM6NTMgX19saXN0X2RlbF9lbnRyeV92YWxpZCsweDdj LzB4YTAKPiA+Li4uCj4gPlsgMjc2NC4wNTMyNTddIENhbGwgVHJhY2U6Cj4gPlsgMjc2NC4wNTU3 NDhdICB0dG1fYm9fZGVsX2Zyb21fbHJ1KzB4NzcvMHhjMCBbdHRtXQo+ID5bIDI3NjQuMDYwNDM3 XSAgdHRtX2JvX3JlbGVhc2UrMHgyM2EvMHgyYzAgW3R0bV0KPiA+WyAyNzY0LjA2NDkyNF0gIGFt ZGdwdV9ib19kZXN0cm95KzB4OTMvMHgxNDAgW2FtZGdwdV0KPiA+WyAyNzY0LjA2OTc2OV0gIHR0 bV9ib19yZWxlYXNlX2xpc3QrMHgxMTMvMHgxNzAgW3R0bV0KPiA+WyAyNzY0LjA3NDY5NV0gIGFt ZGdwdV9ib19kZXN0cm95KzB4OTMvMHgxNDAgW2FtZGdwdV0KPiA+WyAyNzY0LjA3OTU0NF0gIHR0 bV9ib19yZWxlYXNlX2xpc3QrMHgxMTMvMHgxNzAgW3R0bV0KPiA+Cj4gPkhvd2V2ZXIsIGlmIHVz ZSB2bS0+YnVsa19ub3RfbW92ZWFibGUgKGxpa2Ugdm0tPnZhbGlkYXRlZCksIHRoZSBpc3N1ZSBp cyBnb25lLgo+ID5JIGRpZG4ndCBjb25maXJtIHRoZSByZWFzb24geWV0Lgo+IAo+IE1ha2Ugc3Vy ZSB0aGF0IHlvdSBkb24ndCB0cnkgdG8gbW92ZSB0aGUgcm9vdCBQRCBhcyB3ZWxsLiBFLmcuIHRl c3QKPiBmb3IgYm8tPnBhcmVudCBhbmQgc2tpcCBpZiBpdCBpcyBOVUxMLgo+IAoKWWVzLCBJIGhh dmUgc2tpcHBlZCB0aGUgcm9vdCBQRCwgYnV0IHRoZSBpc3N1ZSBpcyBzdGlsbCBleGlzdGVkLgoK bGlzdF9mb3JfZWFjaF9lbnRyeShib19iYXNlLCAmdm0tPmlkbGUsIHZtX3N0YXR1cykgewogICAg ICAgIHN0cnVjdCBhbWRncHVfYm8gKmJvID0gYm9fYmFzZS0+Ym87CgogICAgICAgIGlmICghYm8t PnBhcmVudCkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICB0dG1fYm9fbW92ZV90 b19scnVfdGFpbCgmYm8tPnRibywgJnZtLT5scnVfYnVsa19tb3ZlKTsKICAgICAgICBpZiAoYm8t PnNoYWRvdykKICAgICAgICAgICAgICAgIHR0bV9ib19tb3ZlX3RvX2xydV90YWlsKCZiby0+c2hh ZG93LT50Ym8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdm0tPmxy dV9idWxrX21vdmUpOwp9CgpMZXQgbWUgY29udGludWUgdG8gbmFycm93IGRvd24gdGhpcyBpc3N1 ZS4KClRoYW5rcywKUmF5Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=