From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bas Nieuwenhuizen Subject: Re: [PATCH libdrm] amdgpu: add a faster BO list API Date: Wed, 16 Jan 2019 16:15:19 +0100 Message-ID: References: <20190107193104.4361-1-maraeo@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= Cc: amd-gfx mailing list T24gV2VkLCBKYW4gMTYsIDIwMTkgYXQgMzozOCBQTSBNYXJlayBPbMWhw6FrIDxtYXJhZW9AZ21h aWwuY29tPiB3cm90ZToKPgo+Cj4KPiBPbiBXZWQsIEphbiAxNiwgMjAxOSwgNzo0NiBBTSBCYXMg TmlldXdlbmh1aXplbiA8YmFzQGJhc25pZXV3ZW5odWl6ZW4ubmwgd3JvdGU6Cj4+Cj4+IFNvIHJh bmRvbSBxdWVzdGlvbnM6Cj4+Cj4+IDEpIEluIHRoaXMgZGlzY3Vzc2lvbiBpdCB3YXMgbWVudGlv bmVkIHRoYXQgc29tZSBWdWxrYW4gZHJpdmVycyBzdGlsbAo+PiB1c2UgdGhlIGJvX2xpc3QgaW50 ZXJmYWNlLiBJIHRoaW5rIHRoYXQgaW1wbGllcyByYWR2IGFzIEkgdGhpbmsgd2UncmUKPj4gc3Rp bGwgdXNpbmcgYm9fbGlzdC4gSXMgdGhlcmUgYW55IG90aGVyIEFQSSB3ZSBzaG91bGQgYmUgdXNp bmc/IChBbHNvLAo+PiB3aXRoIFZLX0VYVF9kZXNjcmlwdG9yX2luZGV4aW5nIEkgc3VzcGVjdCB3 ZSdsbCBiZSBtb3ZpbmcgbW9yZSB0b3dhcmRzCj4+IGEgZ2xvYmFsIGJvIGxpc3QgaW5zdGVhZCBv ZiBhIGNtZCBidWZmZXIgb25lLCBhcyB3ZSBjYW5ub3Qga25vdyBhbGwKPj4gdGhlIEJPcyByZWZl cmVuY2VkIGFueW1vcmUsIGJ1dCBub3Qgc3VyZSB3aGF0IGVuZCBzdGF0ZSBoZXJlIHdpbGwgYmUp Lgo+Pgo+PiAyKSBUaGUgb3RoZXIgYWx0ZXJuYXRpdmUgbWVudGlvbmVkIHdhcyBhZGRpbmcgdGhl IGJ1ZmZlcnMgZGlyZWN0bHkKPj4gaW50byB0aGUgc3VibWl0IGlvY3RsLiBJcyB0aGlzIHRoZSBk ZXNpcmVkIGVuZCBzdGF0ZSAodGhvdWdoIGFzIGFib3ZlCj4+IEknbSBub3Qgc3VyZSBob3cgdGhh dCB3b3JrcyBmb3IgdnVsa2FuKT8gSWYgeWVzLCB3aGF0IGlzIHRoZSB0aW1lbGluZQo+PiBmb3Ig dGhpcyB0aGF0IHdlIG5lZWQgc29tZXRoaW5nIGluIHRoZSBpbnRlcmltPwo+Cj4KPiBSYWRlb25z aSBhbHJlYWR5IHVzZXMgdGhpcy4KPgo+Pgo+PiAzKSBEaWQgd2UgbWVhc3VyZSBhbnkgcGVyZm9y bWFuY2UgYmVuZWZpdD8KPj4KPj4gSW4gZ2VuZXJhbCBJJ2QgbGlrZSB0byB0byBhY2sgdGhlIHJh dyBibyBsaXN0IGNyZWF0aW9uIGZ1bmN0aW9uIGFzCj4+IHRoaXMgaW50ZXJmYWNlIHNlZW1zIGVh c2llciB0byB1c2UuIFRoZSB0d28gYXJyYXlzIHRoaW5nIGhhcyBhbHdheXMKPj4gYmVlbiBraW5k IG9mIGEgcGFpbiB3aGVuIHdlIHdhbnQgdG8gdXNlIGUuZy4gYnVpbHRpbiBzb3J0IGZ1bmN0aW9u cyB0bwo+PiBtYWtlIHN1cmUgd2UgaGF2ZSBubyBkdXBsaWNhdGUgQk9zLCBidXQgaGF2ZSBzb21l IGNvbW1lbnRzIGJlbG93Lgo+Cj4KPiBUaGUgcmVhc29uIGFtZGdwdSB3YXMgc2xvd2VyIHRoYW4g cmFkZW9uIHdhcyBiZWNhdXNlIG9mIHRoaXMgaW5lZmZpY2llbnQgYm8gbGlzdCBpbnRlcmZhY2Uu Cj4KPj4KPj4gT24gTW9uLCBKYW4gNywgMjAxOSBhdCA4OjMxIFBNIE1hcmVrIE9sxaHDoWsgPG1h cmFlb0BnbWFpbC5jb20+IHdyb3RlOgo+PiA+Cj4+ID4gRnJvbTogTWFyZWsgT2zFocOhayA8bWFy ZWsub2xzYWtAYW1kLmNvbT4KPj4gPgo+PiA+IC0tLQo+PiA+ICBhbWRncHUvYW1kZ3B1LXN5bWJv bC1jaGVjayB8ICAzICsrCj4+ID4gIGFtZGdwdS9hbWRncHUuaCAgICAgICAgICAgIHwgNTYgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPj4gPiAgYW1kZ3B1L2FtZGdwdV9i by5jICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysKPj4gPiAgYW1kZ3B1L2Ft ZGdwdV9jcy5jICAgICAgICAgfCAyNSArKysrKysrKysrKysrKysrKwo+PiA+ICA0IGZpbGVzIGNo YW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+ID4KPj4gPiBkaWZmIC0t Z2l0IGEvYW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sgYi9hbWRncHUvYW1kZ3B1LXN5bWJvbC1j aGVjawo+PiA+IGluZGV4IDZmNWUwZjk1Li45NmE0NGI0MCAxMDA3NTUKPj4gPiAtLS0gYS9hbWRn cHUvYW1kZ3B1LXN5bWJvbC1jaGVjawo+PiA+ICsrKyBiL2FtZGdwdS9hbWRncHUtc3ltYm9sLWNo ZWNrCj4+ID4gQEAgLTEyLDIwICsxMiwyMiBAQCBfZWRhdGEKPj4gPiAgX2VuZAo+PiA+ICBfZmlu aQo+PiA+ICBfaW5pdAo+PiA+ICBhbWRncHVfYm9fYWxsb2MKPj4gPiAgYW1kZ3B1X2JvX2NwdV9t YXAKPj4gPiAgYW1kZ3B1X2JvX2NwdV91bm1hcAo+PiA+ICBhbWRncHVfYm9fZXhwb3J0Cj4+ID4g IGFtZGdwdV9ib19mcmVlCj4+ID4gIGFtZGdwdV9ib19pbXBvcnQKPj4gPiAgYW1kZ3B1X2JvX2lu Y19yZWYKPj4gPiArYW1kZ3B1X2JvX2xpc3RfY3JlYXRlX3Jhdwo+PiA+ICthbWRncHVfYm9fbGlz dF9kZXN0cm95X3Jhdwo+PiA+ICBhbWRncHVfYm9fbGlzdF9jcmVhdGUKPj4gPiAgYW1kZ3B1X2Jv X2xpc3RfZGVzdHJveQo+PiA+ICBhbWRncHVfYm9fbGlzdF91cGRhdGUKPj4gPiAgYW1kZ3B1X2Jv X3F1ZXJ5X2luZm8KPj4gPiAgYW1kZ3B1X2JvX3NldF9tZXRhZGF0YQo+PiA+ICBhbWRncHVfYm9f dmFfb3AKPj4gPiAgYW1kZ3B1X2JvX3ZhX29wX3Jhdwo+PiA+ICBhbWRncHVfYm9fd2FpdF9mb3Jf aWRsZQo+PiA+ICBhbWRncHVfY3JlYXRlX2JvX2Zyb21fdXNlcl9tZW0KPj4gPiAgYW1kZ3B1X2Nz X2NodW5rX2ZlbmNlX2luZm9fdG9fZGF0YQo+PiA+IEBAIC00MCwyMCArNDIsMjEgQEAgYW1kZ3B1 X2NzX2Rlc3Ryb3lfc2VtYXBob3JlCj4+ID4gIGFtZGdwdV9jc19kZXN0cm95X3N5bmNvYmoKPj4g PiAgYW1kZ3B1X2NzX2V4cG9ydF9zeW5jb2JqCj4+ID4gIGFtZGdwdV9jc19mZW5jZV90b19oYW5k bGUKPj4gPiAgYW1kZ3B1X2NzX2ltcG9ydF9zeW5jb2JqCj4+ID4gIGFtZGdwdV9jc19xdWVyeV9m ZW5jZV9zdGF0dXMKPj4gPiAgYW1kZ3B1X2NzX3F1ZXJ5X3Jlc2V0X3N0YXRlCj4+ID4gIGFtZGdw dV9xdWVyeV9zd19pbmZvCj4+ID4gIGFtZGdwdV9jc19zaWduYWxfc2VtYXBob3JlCj4+ID4gIGFt ZGdwdV9jc19zdWJtaXQKPj4gPiAgYW1kZ3B1X2NzX3N1Ym1pdF9yYXcKPj4gPiArYW1kZ3B1X2Nz X3N1Ym1pdF9yYXcyCj4+ID4gIGFtZGdwdV9jc19zeW5jb2JqX2V4cG9ydF9zeW5jX2ZpbGUKPj4g PiAgYW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZQo+PiA+ICBhbWRncHVfY3Nfc3lu Y29ial9yZXNldAo+PiA+ICBhbWRncHVfY3Nfc3luY29ial9zaWduYWwKPj4gPiAgYW1kZ3B1X2Nz X3N5bmNvYmpfd2FpdAo+PiA+ICBhbWRncHVfY3Nfd2FpdF9mZW5jZXMKPj4gPiAgYW1kZ3B1X2Nz X3dhaXRfc2VtYXBob3JlCj4+ID4gIGFtZGdwdV9kZXZpY2VfZGVpbml0aWFsaXplCj4+ID4gIGFt ZGdwdV9kZXZpY2VfaW5pdGlhbGl6ZQo+PiA+ICBhbWRncHVfZmluZF9ib19ieV9jcHVfbWFwcGlu Zwo+PiA+IGRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1LmggYi9hbWRncHUvYW1kZ3B1LmgKPj4g PiBpbmRleCBkYzUxNjU5YS4uNWI4MDAwMzMgMTAwNjQ0Cj4+ID4gLS0tIGEvYW1kZ3B1L2FtZGdw dS5oCj4+ID4gKysrIGIvYW1kZ3B1L2FtZGdwdS5oCj4+ID4gQEAgLTM1LDIwICszNSwyMSBAQAo+ PiA+ICAjZGVmaW5lIF9BTURHUFVfSF8KPj4gPgo+PiA+ICAjaW5jbHVkZSA8c3RkaW50Lmg+Cj4+ ID4gICNpbmNsdWRlIDxzdGRib29sLmg+Cj4+ID4KPj4gPiAgI2lmZGVmIF9fY3BsdXNwbHVzCj4+ ID4gIGV4dGVybiAiQyIgewo+PiA+ICAjZW5kaWYKPj4gPgo+PiA+ICBzdHJ1Y3QgZHJtX2FtZGdw dV9pbmZvX2h3X2lwOwo+PiA+ICtzdHJ1Y3QgZHJtX2FtZGdwdV9ib19saXN0X2VudHJ5Owo+PiA+ Cj4+ID4gIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwo+PiA+ICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gRGVmaW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8K Pj4gPiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCj4+ID4KPj4gPiAgLyoqCj4+ID4gICAqIERlZmlu ZSBtYXguIG51bWJlciBvZiBDb21tYW5kIEJ1ZmZlcnMgKElCKSB3aGljaCBjb3VsZCBiZSBzZW50 IHRvIHRoZSBzaW5nbGUKPj4gPiAgICogaGFyZHdhcmUgSVAgdG8gYWNjb21tb2RhdGUgQ0UvREUg cmVxdWlyZW1lbnRzCj4+ID4gICAqCj4+ID4gICAqIFxzYSBhbWRncHVfY3NfaWJfaW5mbwo+PiA+ IEBAIC03NjcsMzQgKzc2OCw2NSBAQCBpbnQgYW1kZ3B1X2JvX2NwdV91bm1hcChhbWRncHVfYm9f aGFuZGxlIGJ1Zl9oYW5kbGUpOwo+PiA+ICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBh bmQgbm8gR1BVIGFjY2VzcyBpcyBzY2hlZHVsZWQuCj4+ID4gICAqICAgICAgICAgICAgICAgICAg ICAgICAgICAxIEdQVSBhY2Nlc3MgaXMgaW4gZmx5IG9yIHNjaGVkdWxlZAo+PiA+ICAgKgo+PiA+ ICAgKiBccmV0dXJuICAgMCAtIG9uIHN1Y2Nlc3MKPj4gPiAgICogICAgICAgICAgPDAgLSBOZWdh dGl2ZSBQT1NJWCBFcnJvciBjb2RlCj4+ID4gICAqLwo+PiA+ICBpbnQgYW1kZ3B1X2JvX3dhaXRf Zm9yX2lkbGUoYW1kZ3B1X2JvX2hhbmRsZSBidWZfaGFuZGxlLAo+PiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50NjRfdCB0aW1lb3V0X25zLAo+PiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sICpidWZmZXJfYnVzeSk7Cj4+ID4KPj4gPiArLyoqCj4+ID4gKyAqIENy ZWF0ZXMgYSBCTyBsaXN0IGhhbmRsZSBmb3IgY29tbWFuZCBzdWJtaXNzaW9uLgo+PiA+ICsgKgo+ PiA+ICsgKiBccGFyYW0gICBkZXYgICAgICAgICAgICAgICAgICAgICAgICAtIFxjIFtpbl0gRGV2 aWNlIGhhbmRsZS4KPj4gPiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlZSAj YW1kZ3B1X2RldmljZV9pbml0aWFsaXplKCkKPj4gPiArICogXHBhcmFtICAgbnVtYmVyX29mX2J1 ZmZlcnMgIC0gXGMgW2luXSBOdW1iZXIgb2YgQk9zIGluIHRoZSBsaXN0Cj4+ID4gKyAqIFxwYXJh bSAgIGJ1ZmZlcnMgICAgICAgICAgICAtIFxjIFtpbl0gTGlzdCBvZiBCTyBoYW5kbGVzCj4+ID4g KyAqIFxwYXJhbSAgIHJlc3VsdCAgICAgICAgICAgICAtIFxjIFtvdXRdIENyZWF0ZWQgQk8gbGlz dCBoYW5kbGUKPj4gPiArICoKPj4gPiArICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xuCj4+ID4g KyAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29kZQo+PiA+ICsgKgo+PiA+ ICsgKiBcc2EgYW1kZ3B1X2JvX2xpc3RfZGVzdHJveV9yYXcoKQo+PiA+ICsqLwo+PiA+ICtpbnQg YW1kZ3B1X2JvX2xpc3RfY3JlYXRlX3JhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnVtYmVyX29mX2J1ZmZlcnMs Cj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9hbWRncHVfYm9f bGlzdF9lbnRyeSAqYnVmZmVycywKPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCAqcmVzdWx0KTsKPj4KPj4gU28gQUZBSVUgIGRybV9hbWRncHVfYm9fbGlzdF9lbnRy eSB0YWtlcyBhIHJhdyBibyBoYW5kbGUgd2hpbGUgd2UKPj4gbmV2ZXIgZ2V0IGEgcmF3IGJvIGhh bmRsZSBmcm9tIGxpYmRybV9hbWRncHUuIEhvdyBhcmUgd2Ugc3VwcG9zZWQgdG8KPj4gZmlsbCBp dCBpbj8KPgo+Cj4gVGhpcyBmdW5jdGlvbiByZXR1cm5zIGl0LgoKVGhpcyBmdW5jdGlvbiByZXR1 cm5zIGEgYm9fbGlzdCBoYW5kbGUgcmlnaHQ/IEknbSB0YWxraW5nIGFib3V0IHRoZSBCTwpoYW5k bGVzIGluIGBidWZmZXJzYCwgd2hlcmUgZG8gd2UgZ2V0IHRoZW0/Cgo+Cj4+Cj4+IFdoYXQgZG8g d2Ugd2luIGJ5IGhhdmluZyB0aGUgcmF3IGhhbmRsZSBmb3IgdGhlIGJvX2xpc3Q/IElmIHdlIHdv dWxkCj4+IG5vdCByZXR1cm4gdGhlIHJhdyBoYW5kbGUgd2Ugd291bGQgbm90IG5lZWQgdGhlIHN1 Ym1pdF9yYXcyLgo+Cj4KPiBPbmUgbGVzcyBtYWxsb2MgY2FsbCBhbmQgcG9pbnRlciBpbmRpcmVj dGlvbi4KPgo+IE1hcmVrCj4KPj4KPj4gPiArCj4+ID4gKy8qKgo+PiA+ICsgKiBEZXN0cm95cyBh IEJPIGxpc3QgaGFuZGxlLgo+PiA+ICsgKgo+PiA+ICsgKiBccGFyYW0gICBib19saXN0ICAgIC0g XGMgW2luXSBCTyBsaXN0IGhhbmRsZS4KPj4gPiArICoKPj4gPiArICogXHJldHVybiAgIDAgb24g c3VjY2Vzc1xuCj4+ID4gKyAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29k ZQo+PiA+ICsgKgo+PiA+ICsgKiBcc2EgYW1kZ3B1X2JvX2xpc3RfY3JlYXRlX3JhdygpLCBhbWRn cHVfY3Nfc3VibWl0X3JhdzIoKQo+PiA+ICsqLwo+PiA+ICtpbnQgYW1kZ3B1X2JvX2xpc3RfZGVz dHJveV9yYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LCB1aW50MzJfdCBib19saXN0KTsKPj4g PiArCj4+ID4gIC8qKgo+PiA+ICAgKiBDcmVhdGVzIGEgQk8gbGlzdCBoYW5kbGUgZm9yIGNvbW1h bmQgc3VibWlzc2lvbi4KPj4gPiAgICoKPj4gPiAgICogXHBhcmFtICAgZGV2ICAgICAgICAgICAg ICAgICAgICAgICAgLSBcYyBbaW5dIERldmljZSBoYW5kbGUuCj4+ID4gICAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTZWUgI2FtZGdwdV9kZXZpY2VfaW5pdGlhbGl6ZSgpCj4+ID4g ICAqIFxwYXJhbSAgIG51bWJlcl9vZl9yZXNvdXJjZXMgICAgICAgIC0gXGMgW2luXSBOdW1iZXIg b2YgQk9zIGluIHRoZSBsaXN0Cj4+ID4gICAqIFxwYXJhbSAgIHJlc291cmNlcyAgICAgICAgICAt IFxjIFtpbl0gTGlzdCBvZiBCTyBoYW5kbGVzCj4+ID4gICAqIFxwYXJhbSAgIHJlc291cmNlX3By aW9zICAgICAtIFxjIFtpbl0gT3B0aW9uYWwgcHJpb3JpdHkgZm9yIGVhY2ggaGFuZGxlCj4+ID4g ICAqIFxwYXJhbSAgIHJlc3VsdCAgICAgICAgICAgICAtIFxjIFtvdXRdIENyZWF0ZWQgQk8gbGlz dCBoYW5kbGUKPj4gPiAgICoKPj4gPiAgICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xuCj4+ID4g ICAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29kZQo+PiA+ICAgKgo+PiA+ IC0gKiBcc2EgYW1kZ3B1X2JvX2xpc3RfZGVzdHJveSgpCj4+ID4gKyAqIFxzYSBhbWRncHVfYm9f bGlzdF9kZXN0cm95KCksIGFtZGdwdV9jc19zdWJtaXRfcmF3MigpCj4+ID4gICovCj4+ID4gIGlu dCBhbWRncHVfYm9fbGlzdF9jcmVhdGUoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+PiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnVtYmVyX29mX3Jlc291cmNlcywKPj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9ib19oYW5kbGUgKnJlc291cmNlcywK Pj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKnJlc291cmNlX3ByaW9zLAo+ PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X2JvX2xpc3RfaGFuZGxlICpyZXN1 bHQpOwo+PiA+Cj4+ID4gIC8qKgo+PiA+ICAgKiBEZXN0cm95cyBhIEJPIGxpc3QgaGFuZGxlLgo+ PiA+ICAgKgo+PiA+IEBAIC0xNTgwLDIwICsxNjEyLDQyIEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2Nz X2NodW5rOwo+PiA+ICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kZXA7Cj4+ID4gIHN0cnVj dCBkcm1fYW1kZ3B1X2NzX2NodW5rX2RhdGE7Cj4+ID4KPj4gPiAgaW50IGFtZGdwdV9jc19zdWJt aXRfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsCj4+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgIGFtZGdwdV9ib19saXN0X2hhbmRsZSBib19saXN0X2hhbmRsZSwKPj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IG51bV9jaHVua3MsCj4+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rICpjaHVua3MsCj4+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpzZXFfbm8pOwo+PiA+Cj4+ID4gKy8qKgo+PiA+ ICsgKiBTdWJtaXQgcmF3IGNvbW1hbmQgc3VibWlzc2lvbiB0byB0aGUga2VybmVsIHdpdGggYSBy YXcgQk8gbGlzdCBoYW5kbGUuCj4+ID4gKyAqCj4+ID4gKyAqIFxwYXJhbSAgIGRldiAgICAgICAg ICAgICAgIC0gXGMgW2luXSBkZXZpY2UgaGFuZGxlCj4+ID4gKyAqIFxwYXJhbSAgIGNvbnRleHQg ICAgLSBcYyBbaW5dIGNvbnRleHQgaGFuZGxlIGZvciBjb250ZXh0IGlkCj4+ID4gKyAqIFxwYXJh bSAgIGJvX2xpc3RfaGFuZGxlIC0gXGMgW2luXSByYXcgYm8gbGlzdCBoYW5kbGUgKDAgZm9yIG5v bmUpCj4+ID4gKyAqIFxwYXJhbSAgIG51bV9jaHVua3MgLSBcYyBbaW5dIG51bWJlciBvZiBDUyBj aHVua3MgdG8gc3VibWl0Cj4+ID4gKyAqIFxwYXJhbSAgIGNodW5rcyAgICAgLSBcYyBbaW5dIGFy cmF5IG9mIENTIGNodW5rcwo+PiA+ICsgKiBccGFyYW0gICBzZXFfbm8gICAgIC0gXGMgW291dF0g b3V0cHV0IHNlcXVlbmNlIG51bWJlciBmb3Igc3VibWlzc2lvbi4KPj4gPiArICoKPj4gPiArICog XHJldHVybiAgIDAgb24gc3VjY2Vzc1xuCj4+ID4gKyAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUg UE9TSVggRXJyb3IgY29kZQo+PiA+ICsgKgo+PiA+ICsgKiBcc2EgYW1kZ3B1X2JvX2xpc3RfY3Jl YXRlX3JhdygpLCBhbWRncHVfYm9fbGlzdF9kZXN0cm95X3JhdygpCj4+ID4gKyAqLwo+PiA+ICtp bnQgYW1kZ3B1X2NzX3N1Ym1pdF9yYXcyKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9jb250ZXh0X2hhbmRsZSBjb250ZXh0LAo+ PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgYm9fbGlzdF9oYW5kbGUsCj4+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtX2NodW5rcywKPj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rICpjaHVua3MsCj4+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCAqc2VxX25vKTsKPj4gPiArCj4+ ID4gIHZvaWQgYW1kZ3B1X2NzX2NodW5rX2ZlbmNlX3RvX2RlcChzdHJ1Y3QgYW1kZ3B1X2NzX2Zl bmNlICpmZW5jZSwKPj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGRybV9hbWRncHVfY3NfY2h1bmtfZGVwICpkZXApOwo+PiA+ICB2b2lkIGFtZGdwdV9jc19jaHVu a19mZW5jZV9pbmZvX3RvX2RhdGEoc3RydWN0IGFtZGdwdV9jc19mZW5jZV9pbmZvICpmZW5jZV9p bmZvLAo+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZHJtX2FtZGdwdV9jc19jaHVua19kYXRhICpkYXRhKTsKPj4gPgo+PiA+ICAvKioKPj4gPiAgICog UmVzZXJ2ZSBWTUlECj4+ID4gICAqIFxwYXJhbSAgIGNvbnRleHQgLSBcYyBbaW5dICBHUFUgQ29u dGV4dAo+PiA+ICAgKiBccGFyYW0gICBmbGFncyAtIFxjIFtpbl0gIFRCRAo+PiA+ICAgKgo+PiA+ IGRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1X2JvLmMgYi9hbWRncHUvYW1kZ3B1X2JvLmMKPj4g PiBpbmRleCBjMGY0MmU4MS4uMjFiYzczYWEgMTAwNjQ0Cj4+ID4gLS0tIGEvYW1kZ3B1L2FtZGdw dV9iby5jCj4+ID4gKysrIGIvYW1kZ3B1L2FtZGdwdV9iby5jCj4+ID4gQEAgLTYxMSwyMCArNjEx LDU2IEBAIGRybV9wdWJsaWMgaW50IGFtZGdwdV9jcmVhdGVfYm9fZnJvbV91c2VyX21lbShhbWRn cHVfZGV2aWNlX2hhbmRsZSBkZXYsCj4+ID4gICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJmRl di0+Ym9fdGFibGVfbXV0ZXgpOwo+PiA+ICAgICAgICAgciA9IGhhbmRsZV90YWJsZV9pbnNlcnQo JmRldi0+Ym9faGFuZGxlcywgKCpidWZfaGFuZGxlKS0+aGFuZGxlLAo+PiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKmJ1Zl9oYW5kbGUpOwo+PiA+ICAgICAgICAgcHRocmVhZF9t dXRleF91bmxvY2soJmRldi0+Ym9fdGFibGVfbXV0ZXgpOwo+PiA+ICAgICAgICAgaWYgKHIpCj4+ ID4gICAgICAgICAgICAgICAgIGFtZGdwdV9ib19mcmVlKCpidWZfaGFuZGxlKTsKPj4gPiAgb3V0 Ogo+PiA+ICAgICAgICAgcmV0dXJuIHI7Cj4+ID4gIH0KPj4gPgo+PiA+ICtkcm1fcHVibGljIGlu dCBhbWRncHVfYm9fbGlzdF9jcmVhdGVfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKPj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG51bWJl cl9vZl9idWZmZXJzLAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9hbWRncHVfYm9fbGlzdF9lbnRyeSAqYnVmZmVycywKPj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpyZXN1bHQpCj4+ID4g K3sKPj4gPiArICAgICAgIHVuaW9uIGRybV9hbWRncHVfYm9fbGlzdCBhcmdzOwo+PiA+ICsgICAg ICAgaW50IHI7Cj4+ID4gKwo+PiA+ICsgICAgICAgbWVtc2V0KCZhcmdzLCAwLCBzaXplb2YoYXJn cykpOwo+PiA+ICsgICAgICAgYXJncy5pbi5vcGVyYXRpb24gPSBBTURHUFVfQk9fTElTVF9PUF9D UkVBVEU7Cj4+ID4gKyAgICAgICBhcmdzLmluLmJvX251bWJlciA9IG51bWJlcl9vZl9idWZmZXJz Owo+PiA+ICsgICAgICAgYXJncy5pbi5ib19pbmZvX3NpemUgPSBzaXplb2Yoc3RydWN0IGRybV9h bWRncHVfYm9fbGlzdF9lbnRyeSk7Cj4+ID4gKyAgICAgICBhcmdzLmluLmJvX2luZm9fcHRyID0g KHVpbnQ2NF90KSh1aW50cHRyX3QpYnVmZmVyczsKPj4gPiArCj4+ID4gKyAgICAgICByID0gZHJt Q29tbWFuZFdyaXRlUmVhZChkZXYtPmZkLCBEUk1fQU1ER1BVX0JPX0xJU1QsCj4+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJncywgc2l6ZW9mKGFyZ3MpKTsKPj4gPiArICAg ICAgIGlmIChyKQo+PiA+ICsgICAgICAgICAgICAgICByZXR1cm4gcjsKPj4gPiArCj4+ID4gKyAg ICAgICAqcmVzdWx0ID0gYXJncy5vdXQubGlzdF9oYW5kbGU7Cj4+ID4gKyAgICAgICByZXR1cm4g MDsKPj4gPiArfQo+PiA+ICsKPj4gPiArZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2JvX2xpc3RfZGVz dHJveV9yYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAo+PiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGJvX2xpc3QpCj4+ID4gK3sKPj4gPiAr ICAgICAgIHVuaW9uIGRybV9hbWRncHVfYm9fbGlzdCBhcmdzOwo+PiA+ICsKPj4gPiArICAgICAg IG1lbXNldCgmYXJncywgMCwgc2l6ZW9mKGFyZ3MpKTsKPj4gPiArICAgICAgIGFyZ3MuaW4ub3Bl cmF0aW9uID0gQU1ER1BVX0JPX0xJU1RfT1BfREVTVFJPWTsKPj4gPiArICAgICAgIGFyZ3MuaW4u bGlzdF9oYW5kbGUgPSBib19saXN0Owo+PiA+ICsKPj4gPiArICAgICAgIHJldHVybiBkcm1Db21t YW5kV3JpdGVSZWFkKGRldi0+ZmQsIERSTV9BTURHUFVfQk9fTElTVCwKPj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZhcmdzLCBzaXplb2YoYXJncykpOwo+PiA+ICt9Cj4+ ID4gKwo+PiA+ICBkcm1fcHVibGljIGludCBhbWRncHVfYm9fbGlzdF9jcmVhdGUoYW1kZ3B1X2Rl dmljZV9oYW5kbGUgZGV2LAo+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCBudW1iZXJfb2ZfcmVzb3VyY2VzLAo+PiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhbWRncHVfYm9faGFuZGxlICpyZXNvdXJjZXMsCj4+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgKnJlc291cmNlX3ByaW9zLAo+ PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfYm9fbGlzdF9o YW5kbGUgKnJlc3VsdCkKPj4gPiAgewo+PiA+ICAgICAgICAgc3RydWN0IGRybV9hbWRncHVfYm9f bGlzdF9lbnRyeSAqbGlzdDsKPj4gPiAgICAgICAgIHVuaW9uIGRybV9hbWRncHVfYm9fbGlzdCBh cmdzOwo+PiA+ICAgICAgICAgdW5zaWduZWQgaTsKPj4gPiAgICAgICAgIGludCByOwo+PiA+IGRp ZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1X2NzLmMgYi9hbWRncHUvYW1kZ3B1X2NzLmMKPj4gPiBp bmRleCAzYjgyMzFhYS4uNWJlZGY3NDggMTAwNjQ0Cj4+ID4gLS0tIGEvYW1kZ3B1L2FtZGdwdV9j cy5jCj4+ID4gKysrIGIvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+ID4gQEAgLTcyNCwyMCArNzI0LDQ1 IEBAIGRybV9wdWJsaWMgaW50IGFtZGdwdV9jc19zdWJtaXRfcmF3KGFtZGdwdV9kZXZpY2VfaGFu ZGxlIGRldiwKPj4gPiAgICAgICAgIHIgPSBkcm1Db21tYW5kV3JpdGVSZWFkKGRldi0+ZmQsIERS TV9BTURHUFVfQ1MsCj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3MsIHNp emVvZihjcykpOwo+PiA+ICAgICAgICAgaWYgKHIpCj4+ID4gICAgICAgICAgICAgICAgIHJldHVy biByOwo+PiA+Cj4+ID4gICAgICAgICBpZiAoc2VxX25vKQo+PiA+ICAgICAgICAgICAgICAgICAq c2VxX25vID0gY3Mub3V0LmhhbmRsZTsKPj4gPiAgICAgICAgIHJldHVybiAwOwo+PiA+ICB9Cj4+ ID4KPj4gPiArZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N1Ym1pdF9yYXcyKGFtZGdwdV9kZXZp Y2VfaGFuZGxlIGRldiwKPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsCj4+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQzMl90IGJvX2xpc3RfaGFuZGxlLAo+PiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtX2NodW5rcywKPj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmsgKmNo dW5rcywKPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qg KnNlcV9ubykKPj4gPiArewo+PiA+ICsgICAgICAgdW5pb24gZHJtX2FtZGdwdV9jcyBjcyA9IHsw fTsKPj4gPiArICAgICAgIHVpbnQ2NF90ICpjaHVua19hcnJheTsKPj4gPiArICAgICAgIGludCBp LCByOwo+PiA+ICsKPj4gPiArICAgICAgIGNodW5rX2FycmF5ID0gYWxsb2NhKHNpemVvZih1aW50 NjRfdCkgKiBudW1fY2h1bmtzKTsKPj4gPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fY2h1 bmtzOyBpKyspCj4+ID4gKyAgICAgICAgICAgICAgIGNodW5rX2FycmF5W2ldID0gKHVpbnQ2NF90 KSh1aW50cHRyX3QpJmNodW5rc1tpXTsKPj4gPiArICAgICAgIGNzLmluLmNodW5rcyA9ICh1aW50 NjRfdCkodWludHB0cl90KWNodW5rX2FycmF5Owo+PiA+ICsgICAgICAgY3MuaW4uY3R4X2lkID0g Y29udGV4dC0+aWQ7Cj4+ID4gKyAgICAgICBjcy5pbi5ib19saXN0X2hhbmRsZSA9IGJvX2xpc3Rf aGFuZGxlOwo+PiA+ICsgICAgICAgY3MuaW4ubnVtX2NodW5rcyA9IG51bV9jaHVua3M7Cj4+ID4g KyAgICAgICByID0gZHJtQ29tbWFuZFdyaXRlUmVhZChkZXYtPmZkLCBEUk1fQU1ER1BVX0NTLAo+ PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNzLCBzaXplb2YoY3MpKTsKPj4g PiArICAgICAgIGlmICghciAmJiBzZXFfbm8pCj4+ID4gKyAgICAgICAgICAgICAgICpzZXFfbm8g PSBjcy5vdXQuaGFuZGxlOwo+PiA+ICsgICAgICAgcmV0dXJuIHI7Cj4+ID4gK30KPj4gPiArCj4+ ID4gIGRybV9wdWJsaWMgdm9pZCBhbWRncHVfY3NfY2h1bmtfZmVuY2VfaW5mb190b19kYXRhKHN0 cnVjdCBhbWRncHVfY3NfZmVuY2VfaW5mbyAqZmVuY2VfaW5mbywKPj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfZGF0 YSAqZGF0YSkKPj4gPiAgewo+PiA+ICAgICAgICAgZGF0YS0+ZmVuY2VfZGF0YS5oYW5kbGUgPSBm ZW5jZV9pbmZvLT5oYW5kbGUtPmhhbmRsZTsKPj4gPiAgICAgICAgIGRhdGEtPmZlbmNlX2RhdGEu b2Zmc2V0ID0gZmVuY2VfaW5mby0+b2Zmc2V0ICogc2l6ZW9mKHVpbnQ2NF90KTsKPj4gPiAgfQo+ PiA+Cj4+ID4gIGRybV9wdWJsaWMgdm9pZCBhbWRncHVfY3NfY2h1bmtfZmVuY2VfdG9fZGVwKHN0 cnVjdCBhbWRncHVfY3NfZmVuY2UgKmZlbmNlLAo+PiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kZXAgKmRlcCkKPj4g PiAgewo+PiA+IC0tCj4+ID4gMi4xNy4xCj4+ID4KPj4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+PiA+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+ID4g YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9hbWQtZ2Z4Cg==