From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Rodriguez Subject: Re: [PATCH 16/21] drm/amdgpu: implement lru amdgpu_queue_mgr policy for compute v3 Date: Fri, 3 Mar 2017 12:15:09 -0500 Message-ID: References: <20170302214448.4146-1-andresx7@gmail.com> <20170302214448.4146-17-andresx7@gmail.com> <6532497e-050d-42f2-808c-f398c4af2dc6@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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: Alex Deucher , =?UTF-8?Q?Christian_K=c3=b6nig?= Cc: amd-gfx list CgpPbiAzLzMvMjAxNyAxMDoyMCBBTSwgQWxleCBEZXVjaGVyIHdyb3RlOgo+IE9uIEZyaSwgTWFy IDMsIDIwMTcgYXQgODoyMyBBTSwgQ2hyaXN0aWFuIEvDtm5pZyA8ZGVhdGhzaW1wbGVAdm9kYWZv bmUuZGU+IHdyb3RlOgo+PiBBbSAwMi4wMy4yMDE3IHVtIDIyOjQ0IHNjaHJpZWIgQW5kcmVzIFJv ZHJpZ3VlejoKPj4+Cj4+PiBVc2UgYW4gTFJVIHBvbGljeSB0byBtYXAgdXNlcm1vZGUgcmluZ3Mg dG8gSFcgY29tcHV0ZSBxdWV1ZXMuCj4+Pgo+Pj4gTW9zdCBjb21wdXRlIGNsaWVudHMgdXNlIG9u ZSBxdWV1ZSwgYW5kIHVzdWFsbHkgdGhlIGZpcnN0IHF1ZXVlCj4+PiBhdmFpbGFibGUuIFRoaXMg cmVzdWx0cyBpbiBwb29yIHBpcGUvcXVldWUgd29yayBkaXN0cmlidXRpb24gd2hlbgo+Pj4gbXVs dGlwbGUgY29tcHV0ZSBhcHBzIGFyZSBydW5uaW5nLiBJbiBtb3N0IGNhc2VzIHBpcGUgMCBxdWV1 ZSAwIGlzCj4+PiB0aGUgb25seSBxdWV1ZSB0aGF0IGdldHMgdXNlZC4KPj4+Cj4+PiBJbiBvcmRl ciB0byBiZXR0ZXIgZGlzdHJpYnV0ZSB3b3JrIGFjcm9zcyBtdWx0aXBsZSBIVyBxdWV1ZXMsIHdl IGFkb3B0Cj4+PiBhIHBvbGljeSB0byBtYXAgdGhlIHVzZXJtb2RlIHJpbmcgaWRzIHRvIHRoZSBM UlUgSFcgcXVldWUuCj4+Pgo+Pj4gVGhpcyBmaXhlcyBhIGxhcmdlIG1ham9yaXR5IG9mIG11bHRp LWFwcCBjb21wdXRlIHdvcmtsb2FkcyBzaGFyaW5nIHRoZQo+Pj4gc2FtZSBIVyBxdWV1ZSwgZXZl biB0aG91Z2ggNyBvdGhlciBxdWV1ZXMgYXJlIGF2YWlsYWJsZS4KPj4+Cj4+PiB2MjogdXNlIHJp bmctPmZ1bmNzLT50eXBlIGluc3RlYWQgb2YgcmluZy0+aHdfaXAKPj4+IHYzOiByZW1vdmUgYW1k Z3B1X3F1ZXVlX21hcHBlcl9mdW5jcwo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IEFuZHJlcyBSb2Ry aWd1ZXogPGFuZHJlc3g3QGdtYWlsLmNvbT4KPj4+IC0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgICAgfCAgMyArKwo+Pj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMgICAgfCAgMyArKwo+Pj4gICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcXVldWVfbWdyLmMgfCAzOCArKysrKysrKysrKysrKysr Ky0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuYyAgICAgIHwg NTcKPj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwo+Pj4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfcmluZy5oICAgICAgfCAgNCArKwo+Pj4gICA1IGZpbGVzIGNoYW5n ZWQsIDEwNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+PiBpbmRleCBkM2Y4N2Y0Li4wODhhYTRhIDEwMDY0NAo+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+PiBAQCAtMTUwMSwyMCArMTUwMSwy MyBAQCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSB7Cj4+PiAgICAgICAgIHN0cnVjdCBrZmRfZGV2ICAg ICAgICAgICprZmQ7Cj4+PiAgICAgICAgIHN0cnVjdCBhbWRncHVfdmlydCAgICAgIHZpcnQ7Cj4+ PiAgICAgICAgIC8qIGxpbmsgYWxsIHNoYWRvdyBibyAqLwo+Pj4gICAgICAgICBzdHJ1Y3QgbGlz dF9oZWFkICAgICAgICAgICAgICAgIHNoYWRvd19saXN0Owo+Pj4gICAgICAgICBzdHJ1Y3QgbXV0 ZXggICAgICAgICAgICAgICAgICAgIHNoYWRvd19saXN0X2xvY2s7Cj4+PiAgICAgICAgIC8qIGxp bmsgYWxsIGd0dCAqLwo+Pj4gICAgICAgICBzcGlubG9ja190ICAgICAgICAgICAgICAgICAgICAg IGd0dF9saXN0X2xvY2s7Cj4+PiAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgICAgICAgICAgICAg ICAgZ3R0X2xpc3Q7Cj4+PiArICAgICAgIC8qIGtlZXAgYW4gbHJ1IGxpc3Qgb2YgcmluZ3MgYnkg SFcgSVAgKi8KPj4+ICsgICAgICAgc3RydWN0IGxpc3RfaGVhZCAgICAgICAgICAgICAgICByaW5n X2xydV9saXN0Owo+Pj4gKyAgICAgICBzdHJ1Y3QgbXV0ZXggICAgICAgICAgICAgICAgICAgIHJp bmdfbHJ1X2xpc3RfbG9jazsKPj4KPj4KPj4gTm8gbmVlZCBmb3IgYSBtdXRleCwgYSBzcGlubG9j ayBzaG91bGQgZG8gYXMgd2VsbC4KPj4KPj4KPj4+ICAgICAgICAgLyogcmVjb3JkIGh3IHJlc2V0 IGlzIHBlcmZvcm1lZCAqLwo+Pj4gICAgICAgICBib29sIGhhc19od19yZXNldDsKPj4+ICAgICB9 Owo+Pj4gICAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFtZGdwdV90dG1f YWRldihzdHJ1Y3QKPj4+IHR0bV9ib19kZXZpY2UgKmJkZXYpCj4+PiAgIHsKPj4+ICAgICAgICAg cmV0dXJuIGNvbnRhaW5lcl9vZihiZGV2LCBzdHJ1Y3QgYW1kZ3B1X2RldmljZSwgbW1hbi5iZGV2 KTsKPj4+ICAgfQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV9kZXZpY2UuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2 aWNlLmMKPj4+IGluZGV4IDZhYmIyMzguLjk1NGUzYjkgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+Pj4gQEAgLTE3MTIsMjAgKzE3MTIsMjMg QEAgaW50IGFtZGdwdV9kZXZpY2VfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4+ ICAgICAgICAgc3Bpbl9sb2NrX2luaXQoJmFkZXYtPmdjX2NhY19pZHhfbG9jayk7Cj4+PiAgICAg ICAgIHNwaW5fbG9ja19pbml0KCZhZGV2LT5hdWRpb19lbmRwdF9pZHhfbG9jayk7Cj4+PiAgICAg ICAgIHNwaW5fbG9ja19pbml0KCZhZGV2LT5tbV9zdGF0cy5sb2NrKTsKPj4+ICAgICAgICAgSU5J VF9MSVNUX0hFQUQoJmFkZXYtPnNoYWRvd19saXN0KTsKPj4+ICAgICAgICAgbXV0ZXhfaW5pdCgm YWRldi0+c2hhZG93X2xpc3RfbG9jayk7Cj4+PiAgICAgICAgIElOSVRfTElTVF9IRUFEKCZhZGV2 LT5ndHRfbGlzdCk7Cj4+PiAgICAgICAgIHNwaW5fbG9ja19pbml0KCZhZGV2LT5ndHRfbGlzdF9s b2NrKTsKPj4+ICAgKyAgICAgSU5JVF9MSVNUX0hFQUQoJmFkZXYtPnJpbmdfbHJ1X2xpc3QpOwo+ Pj4gKyAgICAgICBtdXRleF9pbml0KCZhZGV2LT5yaW5nX2xydV9saXN0X2xvY2spOwo+Pj4gKwo+ Pj4gICAgICAgICBpZiAoYWRldi0+YXNpY190eXBlID49IENISVBfQk9OQUlSRSkgewo+Pj4gICAg ICAgICAgICAgICAgIGFkZXYtPnJtbWlvX2Jhc2UgPSBwY2lfcmVzb3VyY2Vfc3RhcnQoYWRldi0+ cGRldiwgNSk7Cj4+PiAgICAgICAgICAgICAgICAgYWRldi0+cm1taW9fc2l6ZSA9IHBjaV9yZXNv dXJjZV9sZW4oYWRldi0+cGRldiwgNSk7Cj4+PiAgICAgICAgIH0gZWxzZSB7Cj4+PiAgICAgICAg ICAgICAgICAgYWRldi0+cm1taW9fYmFzZSA9IHBjaV9yZXNvdXJjZV9zdGFydChhZGV2LT5wZGV2 LCAyKTsKPj4+ICAgICAgICAgICAgICAgICBhZGV2LT5ybW1pb19zaXplID0gcGNpX3Jlc291cmNl X2xlbihhZGV2LT5wZGV2LCAyKTsKPj4+ICAgICAgICAgfQo+Pj4gICAgICAgICBhZGV2LT5ybW1p byA9IGlvcmVtYXAoYWRldi0+cm1taW9fYmFzZSwgYWRldi0+cm1taW9fc2l6ZSk7Cj4+PiAgICAg ICAgIGlmIChhZGV2LT5ybW1pbyA9PSBOVUxMKSB7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3F1ZXVlX21nci5jCj4+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9xdWV1ZV9tZ3IuYwo+Pj4gaW5kZXggY2FmZTkxMy4uZTZlNGZi YSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9xdWV1 ZV9tZ3IuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3F1ZXVl X21nci5jCj4+PiBAQCAtODQsMjAgKzg0LDU0IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2lkZW50aXR5 X21hcChzdHJ1Y3QgYW1kZ3B1X2RldmljZQo+Pj4gKmFkZXYsCj4+PiAgICAgICAgICAgICAgICAg YnJlYWs7Cj4+PiAgICAgICAgIGRlZmF1bHQ6Cj4+PiAgICAgICAgICAgICAgICAgKm91dF9yaW5n ID0gTlVMTDsKPj4+ICAgICAgICAgICAgICAgICBEUk1fRVJST1IoInVua25vd24gSFcgSVAgdHlw ZTogJWRcbiIsIG1hcHBlci0+aHdfaXApOwo+Pj4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOwo+Pj4gICAgICAgICB9Cj4+PiAgICAgICAgIHJldHVybiB1cGRhdGVfY2FjaGVkX21hcCht YXBwZXIsIHJpbmcsICpvdXRfcmluZyk7Cj4+PiAgIH0KPj4+ICAgK3N0YXRpYyBlbnVtIGFtZGdw dV9yaW5nX3R5cGUgYW1kZ3B1X2h3X2lwX3RvX3JpbmdfdHlwZShpbnQgaHdfaXApCj4+PiArewo+ Pj4gKyAgICAgICBzd2l0Y2ggKGh3X2lwKSB7Cj4+PiArICAgICAgIGNhc2UgQU1ER1BVX0hXX0lQ X0dGWDoKPj4+ICsgICAgICAgICAgICAgICByZXR1cm4gQU1ER1BVX1JJTkdfVFlQRV9HRlg7Cj4+ PiArICAgICAgIGNhc2UgQU1ER1BVX0hXX0lQX0NPTVBVVEU6Cj4+PiArICAgICAgICAgICAgICAg cmV0dXJuIEFNREdQVV9SSU5HX1RZUEVfQ09NUFVURTsKPj4+ICsgICAgICAgY2FzZSBBTURHUFVf SFdfSVBfRE1BOgo+Pj4gKyAgICAgICAgICAgICAgIHJldHVybiBBTURHUFVfUklOR19UWVBFX1NE TUE7Cj4+PiArICAgICAgIGNhc2UgQU1ER1BVX0hXX0lQX1VWRDoKPj4+ICsgICAgICAgICAgICAg ICByZXR1cm4gQU1ER1BVX1JJTkdfVFlQRV9VVkQ7Cj4+PiArICAgICAgIGNhc2UgQU1ER1BVX0hX X0lQX1ZDRToKPj4+ICsgICAgICAgICAgICAgICByZXR1cm4gQU1ER1BVX1JJTkdfVFlQRV9WQ0U7 Cj4+PiArICAgICAgIGRlZmF1bHQ6Cj4+PiArICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJJbnZh bGlkIEhXIElQIHNwZWNpZmllZCAlZFxuIiwgaHdfaXApOwo+Pj4gKyAgICAgICAgICAgICAgIHJl dHVybiAtMTsKPj4+ICsgICAgICAgfQo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgaW50IGFtZGdw dV9scnVfbWFwKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3F1ZXVlX21hcHBlciAqbWFwcGVyLAo+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgdXNlcl9yaW5nLAo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKipvdXRfcmluZykKPj4+ICt7Cj4+PiArICAgICAg IGludCByOwo+Pj4gKyAgICAgICBpbnQgcmluZ190eXBlID0gYW1kZ3B1X2h3X2lwX3RvX3Jpbmdf dHlwZShtYXBwZXItPmh3X2lwKTsKPj4+ICsKPj4+ICsgICAgICAgciA9IGFtZGdwdV9yaW5nX2xy dV9nZXQoYWRldiwgcmluZ190eXBlLCBvdXRfcmluZyk7Cj4+PiArICAgICAgIGlmIChyKQo+Pj4g KyAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4gKwo+Pj4gKyAgICAgICByZXR1cm4gdXBkYXRl X2NhY2hlZF9tYXAobWFwcGVyLCB1c2VyX3JpbmcsICpvdXRfcmluZyk7Cj4+PiArfQo+Pj4gKwo+ Pj4gICBpbnQgYW1kZ3B1X3F1ZXVlX21ncl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3F1ZXVlX21nciAq bWdyKQo+Pj4gICB7Cj4+PiAgICAgICAgIGludCBpOwo+Pj4gICAgICAgICBpZiAoIWFkZXYgfHwg IW1ncikKPj4+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+ICAgICAgICAgbWVt c2V0KG1nciwgMCwgc2l6ZW9mKCptZ3IpKTsKPj4+ICAgQEAgLTEzOCwyNiArMTcyLDI4IEBAIGlu dCBhbWRncHVfcXVldWVfbWdyX21hcChzdHJ1Y3QgYW1kZ3B1X2RldmljZQo+Pj4gKmFkZXYsCj4+ PiAgICAgICAgICpvdXRfcmluZyA9IGdldF9jYWNoZWRfbWFwKG1hcHBlciwgcmluZyk7Cj4+PiAg ICAgICAgIGlmICgqb3V0X3JpbmcpIHsKPj4+ICAgICAgICAgICAgICAgICAvKiBjYWNoZSBoaXQg Ki8KPj4+ICAgICAgICAgICAgICAgICByID0gMDsKPj4+ICAgICAgICAgICAgICAgICBnb3RvIG91 dF91bmxvY2s7Cj4+PiAgICAgICAgIH0KPj4+ICAgICAgICAgc3dpdGNoIChtYXBwZXItPmh3X2lw KSB7Cj4+PiAgICAgICAgIGNhc2UgQU1ER1BVX0hXX0lQX0dGWDoKPj4+IC0gICAgICAgY2FzZSBB TURHUFVfSFdfSVBfQ09NUFVURToKPj4+ICAgICAgICAgY2FzZSBBTURHUFVfSFdfSVBfRE1BOgo+ Pj4gICAgICAgICBjYXNlIEFNREdQVV9IV19JUF9VVkQ6Cj4+PiAgICAgICAgIGNhc2UgQU1ER1BV X0hXX0lQX1ZDRToKPj4+ICAgICAgICAgICAgICAgICByID0gYW1kZ3B1X2lkZW50aXR5X21hcChh ZGV2LCBtYXBwZXIsIHJpbmcsIG91dF9yaW5nKTsKPj4+ICAgICAgICAgICAgICAgICBicmVhazsK Pj4+ICsgICAgICAgY2FzZSBBTURHUFVfSFdfSVBfQ09NUFVURToKPj4KPj4KPj4gSSdtIHByZXR0 eSBjbG9zZSB0byBzYXkgYWRkIEFNREdQVV9IV19JUF9ETUEgdG8gdGhhdCBhcyB3ZWxsLiBXaGF0 IGRvIHlvdQo+PiB0aGluaz8KPgo+IFdlbGwsIHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB5b3Ugd291 bGQgd2FudCB0byB1dGlsaXplIGJvdGggdXBzdHJlYW0KPiBhbmQgZG93bnN0cmVhbSBiYW5kd2lk dGggaW4gcGFyYWxsZWwgd2hpY2ggd291bGQgcmVxdWlyZSB0aGUgVU1EIHRvIGJlCj4gYWJsZSB0 byBzZWxlY3QgdHdvIGRpZmZlcmVudCBTRE1BIHJpbmdzLgo+Cj4gQWxleAo+CgpJZiB3ZSBwcm92 aWRlIGFuIGV4cGxpY2l0IGd1YXJhbnRlZSB0aGF0IHRoZSBtYXBwaW5ncyB3aWxsIGJlIDE6MSwg dGhlbiAKd2Ugc2hvdWxkIGJlIGFibGUgdG8gc3dpdGNoIFNETUEgdG8gbHJ1IGFzIHdlbGwuIFRo YXQgd291bGQgcmVzdWx0IGluIApvbmx5IHR3byBwb3NzaWJsZSBtYXBwaW5nczoKICAgICAtIDEt PjEsIDEtPjIKICAgICAtIDEtPjIsIDItPjEKClRoaXMgd2F5IHdoZW5ldmVyIHRoZSBVTUQgcGlj a3MgdHdvIHNlcGFyYXRlIHJpbmdzIHRoZXkgd2lsbCBhbHdheXMgZ2V0IApzZXBhcmF0ZSByaW5n cy4KCkkgdGhpbmsgdGhlcmUgbWlnaHQgYmUgYSBjb3JuZXIgY2FzZSByaWdodCBub3cgdGhhdCB3 ZSBjYW4gaGl0IHRoYXQgCnJlc3VsdHMgaW4gYSBtYW55IHRvIG9uZSBtYXBwaW5nLiBMZXQgbWUg ZG91YmxlIGNoZWNrIHRoYXQuCgpPbmNlIHdlIGhhdmUgdGhlIDE6MSBndWFyYW50ZWUsIEkgdGhp bmsgdGhlcmUgY291bGQgYmUgc29tZSBpbXByb3ZlbWVudHMgCnRvIGhhdmluZyBTRE1BIG9uIExS VS4KCkFuZHJlcwoKPj4KPj4KPj4+ICsgICAgICAgICAgICAgICByID0gYW1kZ3B1X2xydV9tYXAo YWRldiwgbWFwcGVyLCByaW5nLCBvdXRfcmluZyk7Cj4+PiArICAgICAgICAgICAgICAgYnJlYWs7 Cj4+PiAgICAgICAgIGRlZmF1bHQ6Cj4+PiAgICAgICAgICAgICAgICAgKm91dF9yaW5nID0gTlVM TDsKPj4+ICAgICAgICAgICAgICAgICByID0gLUVJTlZBTDsKPj4+ICAgICAgICAgICAgICAgICBE Uk1fRVJST1IoInVua25vd24gSFcgSVAgdHlwZTogJWRcbiIsIG1hcHBlci0+aHdfaXApOwo+Pj4g ICAgICAgICB9Cj4+PiAgICAgb3V0X3VubG9jazoKPj4+ICAgICAgICAgbXV0ZXhfdW5sb2NrKCZt YXBwZXItPmxvY2spOwo+Pj4gICAgICAgICByZXR1cm4gcjsKPj4+ICAgfQo+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmMKPj4+IGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuYwo+Pj4gaW5kZXggNDNjZDUzOS4uMzFj NjI3NCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9y aW5nLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmMK Pj4+IEBAIC0xNzMsMjAgKzE3MywyMiBAQCB2b2lkIGFtZGdwdV9yaW5nX2NvbW1pdChzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmcpCj4+PiAgICAgICAgIGNvdW50ID0gcmluZy0+ZnVuY3MtPmFsaWdu X21hc2sgKyAxIC0KPj4+ICAgICAgICAgICAgICAgICAocmluZy0+d3B0ciAmIHJpbmctPmZ1bmNz LT5hbGlnbl9tYXNrKTsKPj4+ICAgICAgICAgY291bnQgJT0gcmluZy0+ZnVuY3MtPmFsaWduX21h c2sgKyAxOwo+Pj4gICAgICAgICByaW5nLT5mdW5jcy0+aW5zZXJ0X25vcChyaW5nLCBjb3VudCk7 Cj4+PiAgICAgICAgIG1iKCk7Cj4+PiAgICAgICAgIGFtZGdwdV9yaW5nX3NldF93cHRyKHJpbmcp Owo+Pj4gICAgICAgICBpZiAocmluZy0+ZnVuY3MtPmVuZF91c2UpCj4+PiAgICAgICAgICAgICAg ICAgcmluZy0+ZnVuY3MtPmVuZF91c2UocmluZyk7Cj4+PiArCj4+PiArICAgICAgIGFtZGdwdV9y aW5nX2xydV90b3VjaChyaW5nLT5hZGV2LCByaW5nKTsKPj4+ICAgfQo+Pj4gICAgIC8qKgo+Pj4g ICAgKiBhbWRncHVfcmluZ191bmRvIC0gcmVzZXQgdGhlIHdwdHIKPj4+ICAgICoKPj4+ICAgICog QHJpbmc6IGFtZGdwdV9yaW5nIHN0cnVjdHVyZSBob2xkaW5nIHJpbmcgaW5mb3JtYXRpb24KPj4+ ICAgICoKPj4+ICAgICogUmVzZXQgdGhlIGRyaXZlcidzIGNvcHkgb2YgdGhlIHdwdHIgKGFsbCBh c2ljcykuCj4+PiAgICAqLwo+Pj4gICB2b2lkIGFtZGdwdV9yaW5nX3VuZG8oc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nKQo+Pj4gQEAgLTI3MiwyMCArMjc0LDIyIEBAIGludCBhbWRncHVfcmluZ19p bml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+Pj4gc3RydWN0IGFtZGdwdV9yaW5nICpy aW5nLAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmlu Zy0+Z3B1X2FkZHIsCj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICh2b2lkICoqKSZyaW5nLT5yaW5nKTsKPj4+ICAgICAgICAgICAgICAgICBpZiAocikgewo+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgZGV2X2VycihhZGV2LT5kZXYsICIoJWQpIHJpbmcg Y3JlYXRlIGZhaWxlZFxuIiwKPj4+IHIpOwo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIHI7Cj4+PiAgICAgICAgICAgICAgICAgfQo+Pj4gICAgICAgICAgICAgICAgIG1lbXNldCgo dm9pZCAqKXJpbmctPnJpbmcsIDAsIHJpbmctPnJpbmdfc2l6ZSk7Cj4+PiAgICAgICAgIH0KPj4+ ICAgICAgICAgcmluZy0+cHRyX21hc2sgPSAocmluZy0+cmluZ19zaXplIC8gNCkgLSAxOwo+Pj4g ICAgICAgICByaW5nLT5tYXhfZHcgPSBtYXhfZHc7Cj4+PiArICAgICAgIElOSVRfTElTVF9IRUFE KCZyaW5nLT5scnVfbGlzdCk7Cj4+PiArICAgICAgIGFtZGdwdV9yaW5nX2xydV90b3VjaChhZGV2 LCByaW5nKTsKPj4+ICAgICAgICAgaWYgKGFtZGdwdV9kZWJ1Z2ZzX3JpbmdfaW5pdChhZGV2LCBy aW5nKSkgewo+Pj4gICAgICAgICAgICAgICAgIERSTV9FUlJPUigiRmFpbGVkIHRvIHJlZ2lzdGVy IGRlYnVnZnMgZmlsZSBmb3IgcmluZ3MKPj4+ICFcbiIpOwo+Pj4gICAgICAgICB9Cj4+PiAgICAg ICAgIHJldHVybiAwOwo+Pj4gICB9Cj4+PiAgICAgLyoqCj4+PiAgICAqIGFtZGdwdV9yaW5nX2Zp bmkgLSB0ZWFyIGRvd24gdGhlIGRyaXZlciByaW5nIHN0cnVjdC4KPj4+ICAgICoKPj4+IEBAIC0z MDUsMjAgKzMwOSw3MyBAQCB2b2lkIGFtZGdwdV9yaW5nX2Zpbmkoc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nKQo+Pj4gICAgICAgICBhbWRncHVfYm9fZnJlZV9rZXJuZWwoJnJpbmctPnJpbmdfb2Jq LAo+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJpbmctPmdwdV9hZGRyLAo+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKiopJnJpbmctPnJpbmcpOwo+Pj4g ICAgICAgICBhbWRncHVfZGVidWdmc19yaW5nX2ZpbmkocmluZyk7Cj4+PiAgICAgICAgIHJpbmct PmFkZXYtPnJpbmdzW3JpbmctPmlkeF0gPSBOVUxMOwo+Pj4gICB9Cj4+PiAgICsvKioKPj4+ICsg KiBhbWRncHVfcmluZ19scnVfZ2V0IC0gZ2V0IHRoZSBsZWFzdCByZWNlbnRseSB1c2VkIHJpbmcg Zm9yIGEgSFcgSVAKPj4+IGJsb2NrCj4+PiArICoKPj4+ICsgKiBAYWRldjogYW1kZ3B1X2Rldmlj ZSBwb2ludGVyCj4+PiArICogQHR5cGU6IGFtZGdwdV9yaW5nX3R5cGUgZW51bQo+Pj4gKyAqIEBy aW5nOiBvdXRwdXQgcmluZwo+Pj4gKyAqCj4+PiArICogUmV0cmVpdmUgdGhlIGFtZGdwdV9yaW5n IHN0cnVjdHVyZSBmb3IgdGhlIGxlYXN0IHJlY2VudGx5IHVzZWQgcmluZyBvZgo+Pj4gKyAqIGEg c3BlY2lmaWMgSVAgYmxvY2sgKGFsbCBhc2ljcykuCj4+PiArICogUmV0dXJucyAwIG9uIHN1Y2Nl c3MsIGVycm9yIG9uIGZhaWx1cmUuCj4+PiArICovCj4+PiAraW50IGFtZGdwdV9yaW5nX2xydV9n ZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCB0eXBlLAo+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9yaW5nICoqcmluZykKPj4+ICt7Cj4+PiArICAgICAg IHN0cnVjdCBhbWRncHVfcmluZyAqZW50cnk7Cj4+PiArCj4+PiArICAgICAgIC8qIExpc3QgaXMg c29ydGVkIGluIExSVSBvcmRlciwgZmluZCBmaXJzdCBlbnRyeSBjb3JyZXNwb25kaW5nCj4+PiAr ICAgICAgICAqIHRvIHRoZSBkZXNpcmVkIEhXIElQICovCj4+PiArICAgICAgICpyaW5nID0gTlVM TDsKPj4+ICsgICAgICAgbXV0ZXhfbG9jaygmYWRldi0+cmluZ19scnVfbGlzdF9sb2NrKTsKPj4+ ICsgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJmFkZXYtPnJpbmdfbHJ1X2xpc3Qs IGxydV9saXN0KSB7Cj4+PiArICAgICAgICAgICAgICAgaWYgKGVudHJ5LT5mdW5jcy0+dHlwZSA9 PSB0eXBlKSB7Cj4+PiArICAgICAgICAgICAgICAgICAgICAgICAqcmluZyA9IGVudHJ5Owo+Pj4g KyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+PiArICAgICAgICAgICAgICAgfQo+Pj4g KyAgICAgICB9Cj4+PiArICAgICAgIG11dGV4X3VubG9jaygmYWRldi0+cmluZ19scnVfbGlzdF9s b2NrKTsKPj4+ICsKPj4+ICsgICAgICAgaWYgKCEqcmluZykgewo+Pj4gKyAgICAgICAgICAgICAg IERSTV9FUlJPUigiUmluZyBMUlUgY29udGFpbnMgbm8gZW50cmllcyBmb3IgcmluZwo+Pj4gdHlw ZTolZFxuIiwgdHlwZSk7Cj4+PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAr ICAgICAgIH0KPj4+ICsKPj4+ICsgICAgICAgYW1kZ3B1X3JpbmdfbHJ1X3RvdWNoKGFkZXYsIGVu dHJ5KTsKPj4KPj4KPj4gVGhhdCB0YWtlcyB0aGUgTFJVIGxvY2sgdHdpY2UsIGJ1dCBkbyB0aGlz IG9ubHkgb25jZS4KPj4KPj4gUmVnYXJkcywKPj4gQ2hyaXN0aWFuLgo+Pgo+Pgo+Pj4gKyAgICAg ICByZXR1cm4gMDsKPj4+ICt9Cj4+PiArCj4+PiArLyoqCj4+PiArICogYW1kZ3B1X3JpbmdfbHJ1 X3RvdWNoIC0gbWFyayBhIHJpbmcgYXMgcmVjZW50bHkgYmVpbmcgdXNlZAo+Pj4gKyAqCj4+PiAr ICogQGFkZXY6IGFtZGdwdV9kZXZpY2UgcG9pbnRlcgo+Pj4gKyAqIEByaW5nOiByaW5nIHRvIHRv dWNoCj4+PiArICoKPj4+ICsgKiBNb3ZlIEByaW5nIHRvIHRoZSB0aGUgdGFpbCBvZiB0aGUgbHJ1 IGxpc3QKPj4+ICsgKi8KPj4+ICt2b2lkIGFtZGdwdV9yaW5nX2xydV90b3VjaChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV9yaW5nCj4+PiAqcmluZykKPj4+ICt7Cj4+ PiArICAgICAgIC8qIGxpc3RfbW92ZV90YWlsIGhhbmRsZXMgdGhlIGNhc2Ugd2hlcmUgcmluZyBp c24ndCBwYXJ0IG9mIHRoZQo+Pj4gbGlzdCAqLwo+Pj4gKyAgICAgICBtdXRleF9sb2NrKCZhZGV2 LT5yaW5nX2xydV9saXN0X2xvY2spOwo+Pj4gKyAgICAgICBsaXN0X21vdmVfdGFpbCgmcmluZy0+ bHJ1X2xpc3QsICZhZGV2LT5yaW5nX2xydV9saXN0KTsKPj4+ICsgICAgICAgbXV0ZXhfdW5sb2Nr KCZhZGV2LT5yaW5nX2xydV9saXN0X2xvY2spOwo+Pj4gK30KPj4+ICsKPj4+ICAgLyoKPj4+ICAg ICogRGVidWdmcyBpbmZvCj4+PiAgICAqLwo+Pj4gICAjaWYgZGVmaW5lZChDT05GSUdfREVCVUdf RlMpCj4+PiAgICAgLyogTGF5b3V0IG9mIGZpbGUgaXMgMTIgYnl0ZXMgY29uc2lzdGluZyBvZgo+ Pj4gICAgKiAtIHJwdHIKPj4+ICAgICogLSB3cHRyCj4+PiAgICAqIC0gZHJpdmVyJ3MgY29weSBv ZiB3cHRyCj4+PiAgICAqCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3JpbmcuaAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf cmluZy5oCj4+PiBpbmRleCAzNWRhNWM1Li5iNTFiZGNkIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuaAo+Pj4gQEAgLTEzNywyMCArMTM3LDIxIEBAIHN0 cnVjdCBhbWRncHVfcmluZ19mdW5jcyB7Cj4+PiAgICAgICAgIHZvaWQgKCplbWl0X2NudHhjbnRs KSAoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCBmbGFncyk7Cj4+PiAgICAgICAg IHZvaWQgKCplbWl0X3JyZWcpKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgcmVn KTsKPj4+ICAgICAgICAgdm9pZCAoKmVtaXRfd3JlZykoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LCB1aW50MzJfdCByZWcsIHVpbnQzMl90Cj4+PiB2YWwpOwo+Pj4gICB9Owo+Pj4gICAgIHN0cnVj dCBhbWRncHVfcmluZyB7Cj4+PiAgICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICAgICAgICAg ICAgKmFkZXY7Cj4+PiAgICAgICAgIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyAgKmZ1 bmNzOwo+Pj4gICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2ZlbmNlX2RyaXZlciAgICAgIGZlbmNlX2Ry djsKPj4+ICAgICAgICAgc3RydWN0IGFtZF9ncHVfc2NoZWR1bGVyICAgICAgICBzY2hlZDsKPj4+ ICsgICAgICAgc3RydWN0IGxpc3RfaGVhZCAgICAgICAgICAgICAgICBscnVfbGlzdDsKPj4+ICAg ICAgICAgc3RydWN0IGFtZGdwdV9ibyAgICAgICAgKnJpbmdfb2JqOwo+Pj4gICAgICAgICB2b2xh dGlsZSB1aW50MzJfdCAgICAgICAqcmluZzsKPj4+ICAgICAgICAgdW5zaWduZWQgICAgICAgICAg ICAgICAgcnB0cl9vZmZzOwo+Pj4gICAgICAgICB1bnNpZ25lZCAgICAgICAgICAgICAgICB3cHRy Owo+Pj4gICAgICAgICB1bnNpZ25lZCAgICAgICAgICAgICAgICB3cHRyX29sZDsKPj4+ICAgICAg ICAgdW5zaWduZWQgICAgICAgICAgICAgICAgcmluZ19zaXplOwo+Pj4gICAgICAgICB1bnNpZ25l ZCAgICAgICAgICAgICAgICBtYXhfZHc7Cj4+PiAgICAgICAgIGludCAgICAgICAgICAgICAgICAg ICAgIGNvdW50X2R3Owo+Pj4gICAgICAgICB1aW50NjRfdCAgICAgICAgICAgICAgICBncHVfYWRk cjsKPj4+IEBAIC0xNzksMTIgKzE4MCwxNSBAQCBpbnQgYW1kZ3B1X3JpbmdfaXNfdmFsaWRfaW5k ZXgoc3RydWN0IGFtZGdwdV9kZXZpY2UKPj4+ICphZGV2LAo+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBod19pcCwgaW50IHJpbmcpOwo+Pj4gICBpbnQgYW1kZ3B1X3Jpbmdf YWxsb2Moc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1bnNpZ25lZCBuZHcpOwo+Pj4gICB2b2lk IGFtZGdwdV9yaW5nX2luc2VydF9ub3Aoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJf dCBjb3VudCk7Cj4+PiAgIHZvaWQgYW1kZ3B1X3JpbmdfZ2VuZXJpY19wYWRfaWIoc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QKPj4+IGFtZGdwdV9pYiAqaWIpOwo+Pj4gICB2b2lkIGFt ZGdwdV9yaW5nX2NvbW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOwo+Pj4gICB2b2lkIGFt ZGdwdV9yaW5nX3VuZG8oc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKPj4+ICAgaW50IGFtZGdw dV9yaW5nX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHN0cnVjdCBhbWRncHVfcmlu Zwo+Pj4gKnJpbmcsCj4+PiAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCByaW5nX3NpemUs IHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqaXJxX3NyYywKPj4+ICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGlycV90eXBlKTsKPj4+ICAgdm9pZCBhbWRncHVfcmluZ19maW5pKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZyk7Cj4+PiAraW50IGFtZGdwdV9yaW5nX2xydV9nZXQoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsIGludCBod19pcCwKPj4+ICsgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBhbWRncHVfcmluZyAqKnJpbmcpOwo+Pj4gK3ZvaWQgYW1kZ3B1X3JpbmdfbHJ1X3Rv dWNoKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3JpbmcKPj4+ICpy aW5nKTsKPj4+ICAgICAjZW5kaWYKPj4KPj4KPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPj4gYW1kLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v YW1kLWdmeAo=