From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC PATCH v3 11/11] drm, cgroup: Allow more aggressive memory reclaim Date: Thu, 27 Jun 2019 08:15:49 +0200 Message-ID: <20190627061549.GE12905@phenom.ffwll.local> References: <20190626150522.11618-1-Kenny.Ho@amd.com> <20190626150522.11618-12-Kenny.Ho@amd.com> <20190626164444.GX12905@phenom.ffwll.local> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Content-Type: text/plain; charset="us-ascii" To: Kenny Ho Cc: joseph.greathouse@amd.com, Kenny Ho , jsparks@cray.com, amd-gfx list , lkaplan@cray.com, Alex Deucher , dri-devel , Tejun Heo , cgroups@vger.kernel.org, Christian =?iso-8859-1?Q?K=F6nig?= T24gV2VkLCBKdW4gMjYsIDIwMTkgYXQgMDY6NTI6NTBQTSAtMDQwMCwgS2VubnkgSG8gd3JvdGU6 Cj4gT2suICBJIGFtIG5vdCB0b28gZmFtaWxpYXIgd2l0aCBzaHJpbmtlciBidXQgSSB3aWxsIGRp ZyBpbnRvIGl0LiAgSnVzdAo+IHNvIHRoYXQgSSBhbSBsb29raW5nIGludG8gdGhlIHJpZ2h0IHRo aW5ncywgeW91IGFyZSByZWZlcnJpbmcgdG8KPiB0aGluZ3MgbGlrZSBzdHJ1Y3Qgc2hyaW5rZXIg YW5kIHN0cnVjdCBzaHJpbmtfY29udHJvbD8KClllYWguIFJlYXNvbiBJJ20gYXNraW5nIGZvciB0 aGlzIGlzIHRoaXMgaXMgaG93IHN5c3RlbSBtZW1vcnkgaXMgc2hydW5rCnJpZ2h0IG5vdywgc28g YXQgbGVhc3QgaGF2aW5nIHNvbWUgY29uY2VwdHVhbCBzaW1pbGFyaXRpZXMgbWlnaHQgYmUgdXNl ZnVsCmhlcmUuIEFuZCBhIGxvdCBvZiBwZW9wbGUgaGF2ZSB0aG91Z2h0IHF1aXRlIGhhcmQgYWJv dXQgc3lzdGVtIG1lbW9yeQpzaHJpbmtpbmcgYW5kIGFsbCB0aGF0LCBzbyBob3BlZnVsbHkgdGhh dCBnaXZlcyB1cyBnb29kIGRlc2lnbgppbnNwaXJhdGlvbi4KLURhbmllbAoKPiAKPiBSZWdhcmRz LAo+IEtlbm55Cj4gCj4gT24gV2VkLCBKdW4gMjYsIDIwMTkgYXQgMTI6NDQgUE0gRGFuaWVsIFZl dHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+Cj4gPiBPbiBXZWQsIEp1biAyNiwgMjAx OSBhdCAxMTowNToyMkFNIC0wNDAwLCBLZW5ueSBIbyB3cm90ZToKPiA+ID4gQWxsb3cgRFJNIFRU TSBtZW1vcnkgbWFuYWdlciB0byByZWdpc3RlciBhIHdvcmtfc3RydWN0LCBzdWNoIHRoYXQsIHdo ZW4KPiA+ID4gYSBkcm1jZ3JwIGlzIHVuZGVyIG1lbW9yeSBwcmVzc3VyZSwgbWVtb3J5IHJlY2xh aW1pbmcgY2FuIGJlIHRyaWdnZXJlZAo+ID4gPiBpbW1lZGlhdGVseS4KPiA+ID4KPiA+ID4gQ2hh bmdlLUlkOiBJMjVhYzA0ZTJkYjljMTlmZjEyNjUyYjg4ZWJmZjE4YjQ0YjI3MDZkOAo+ID4gPiBT aWduZWQtb2ZmLWJ5OiBLZW5ueSBIbyA8S2VubnkuSG9AYW1kLmNvbT4KPiA+ID4gLS0tCj4gPiA+ ICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jICAgIHwgNDcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4gPiA+ICBpbmNsdWRlL2RybS9kcm1fY2dyb3VwLmggICAgICAgIHwg MTQgKysrKysrKysrKwo+ID4gPiAgaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCB8ICAy ICsrCj4gPiA+ICBrZXJuZWwvY2dyb3VwL2RybS5jICAgICAgICAgICAgIHwgMzMgKysrKysrKysr KysrKysrKysrKysrKysKPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgOTYgaW5zZXJ0aW9ucygrKQo+ ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPiA+ID4gaW5kZXggNzljNTMwZjRhMTk4Li41ZmMz YmM1YmQ0YzUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMK PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+ID4gPiBAQCAtMTUwOSw2 ICsxNTA5LDQ0IEBAIGludCB0dG1fYm9fZXZpY3RfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJk ZXYsIHVuc2lnbmVkIG1lbV90eXBlKQo+ID4gPiAgfQo+ID4gPiAgRVhQT1JUX1NZTUJPTCh0dG1f Ym9fZXZpY3RfbW0pOwo+ID4gPgo+ID4gPiArc3RhdGljIHZvaWQgdHRtX2JvX3JlY2xhaW1fd3Eo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gPiArewo+ID4KPiA+IEkgdGhpbmsgYSBkZXNp Z24gYSBiaXQgbW9yZSBpbnNwaXJlZCBieSBtZW1jZyBhd2FyZSBjb3JlIHNocmlua2VycyB3b3Vs ZAo+ID4gYmUgbmljZSwgaS5lLiBleHBsaWNpdGx5IHBhc3Npbmc6Cj4gPiAtIHdoaWNoIGRybV9j Z3JvdXAgbmVlZHMgdG8gYmUgc2hydW5rCj4gPiAtIHdoaWNoIHR0bV9tZW1fcmVnICh3ZWxsIHRo ZSBmYW5jeSBuZXcgYWJzdHJhY3RlZCBvdXQgc3R1ZmYgZm9yIHRyYWNraW5nCj4gPiAgIHNwZWNp YWwgZ3B1IG1lbW9yeSByZXNvdXJjZXMgbGlrZSB0dCBvciB2cmFtIG9yIHdoYXRldmVyKQo+ID4g LSBob3cgbXVjaCBpdCBuZWVkcyB0byBiZSBzaHJ1bmsKPiA+Cj4gPiBJIHRoaW5rIHdpdGggdGhh dCBhIGxvdCBtb3JlIHRoZSBib29rLWtlZXBpbmcgY291bGQgYmUgcHVzaGVkIGludG8gdGhlCj4g PiBkcm1fY2dyb3VwIGNvZGUsIGFuZCB0aGUgY2FsbGJhY2sganVzdCBuZWVkcyB0byBhY3R1YWxs eSBzaHJpbmsgZW5vdWdoIGFzCj4gPiByZXF1ZXN0ZWQuCj4gPiAtRGFuaWVsCj4gPgo+ID4gPiAr ICAgICBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+ID4gPiArICAgICAgICAgICAg IC5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCj4gPiA+ICsgICAgICAgICAgICAgLm5vX3dhaXRfZ3B1 ID0gZmFsc2UsCj4gPiA+ICsgICAgICAgICAgICAgLmZsYWdzID0gVFRNX09QVF9GTEFHX0ZPUkNF X0FMTE9DCj4gPiA+ICsgICAgIH07Cj4gPiA+ICsgICAgIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuID0KPiA+ID4gKyAgICAgICAgIGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXIsIHJlY2xhaW1fd3EpOwo+ID4gPiArICAgICBzdHJ1Y3QgdHRtX2Jv X2RldmljZSAqYmRldiA9IG1hbi0+YmRldjsKPiA+ID4gKyAgICAgc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2U7Cj4gPiA+ICsgICAgIGludCBtZW1fdHlwZTsKPiA+ID4gKyAgICAgaW50IHJldDsKPiA+ ID4gKwo+ID4gPiArICAgICBmb3IgKG1lbV90eXBlID0gMDsgbWVtX3R5cGUgPCBUVE1fTlVNX01F TV9UWVBFUzsgbWVtX3R5cGUrKykKPiA+ID4gKyAgICAgICAgICAgICBpZiAoJmJkZXYtPm1hbltt ZW1fdHlwZV0gPT0gbWFuKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPiA+ ICsKPiA+ID4gKyAgICAgQlVHX09OKG1lbV90eXBlID49IFRUTV9OVU1fTUVNX1RZUEVTKTsKPiA+ ID4gKwo+ID4gPiArICAgICBpZiAoIWRybWNncnBfbWVtX3ByZXNzdXJlX3NjYW4oYmRldiwgbWVt X3R5cGUpKQo+ID4gPiArICAgICAgICAgICAgIHJldHVybjsKPiA+ID4gKwo+ID4gPiArICAgICBy ZXQgPSB0dG1fbWVtX2V2aWN0X2ZpcnN0KGJkZXYsIG1lbV90eXBlLCBOVUxMLCAmY3R4KTsKPiA+ ID4gKyAgICAgaWYgKHJldCkKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm47Cj4gPiA+ICsKPiA+ ID4gKyAgICAgc3Bpbl9sb2NrKCZtYW4tPm1vdmVfbG9jayk7Cj4gPiA+ICsgICAgIGZlbmNlID0g ZG1hX2ZlbmNlX2dldChtYW4tPm1vdmUpOwo+ID4gPiArICAgICBzcGluX3VubG9jaygmbWFuLT5t b3ZlX2xvY2spOwo+ID4gPiArCj4gPiA+ICsgICAgIGlmIChmZW5jZSkgewo+ID4gPiArICAgICAg ICAgICAgIHJldCA9IGRtYV9mZW5jZV93YWl0KGZlbmNlLCBmYWxzZSk7Cj4gPiA+ICsgICAgICAg ICAgICAgZG1hX2ZlbmNlX3B1dChmZW5jZSk7Cj4gPiA+ICsgICAgIH0KPiA+ID4gKwo+ID4gPiAr fQo+ID4gPiArCj4gPiA+ICBpbnQgdHRtX2JvX2luaXRfbW0oc3RydWN0IHR0bV9ib19kZXZpY2Ug KmJkZXYsIHVuc2lnbmVkIHR5cGUsCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBsb25nIHBfc2l6ZSkKPiA+ID4gIHsKPiA+ID4gQEAgLTE1NDMsNiArMTU4MSwxMyBAQCBpbnQg dHRtX2JvX2luaXRfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVkIHR5cGUs Cj4gPiA+ICAgICAgICAgICAgICAgSU5JVF9MSVNUX0hFQUQoJm1hbi0+bHJ1W2ldKTsKPiA+ID4g ICAgICAgbWFuLT5tb3ZlID0gTlVMTDsKPiA+ID4KPiA+ID4gKyAgICAgcHJfZXJyKCJkcm1jZ3Jw ICVwIHR5cGUgJWRcbiIsIGJkZXYtPmRkZXYsIHR5cGUpOwo+ID4gPiArCj4gPiA+ICsgICAgIGlm ICh0eXBlIDw9IFRUTV9QTF9WUkFNKSB7Cj4gPiA+ICsgICAgICAgICAgICAgSU5JVF9XT1JLKCZt YW4tPnJlY2xhaW1fd3EsIHR0bV9ib19yZWNsYWltX3dxKTsKPiA+ID4gKyAgICAgICAgICAgICBk cm1jZ3JwX3JlZ2lzdGVyX2RldmljZV9tbShiZGV2LT5kZGV2LCB0eXBlLCAmbWFuLT5yZWNsYWlt X3dxKTsKPiA+ID4gKyAgICAgfQo+ID4gPiArCj4gPiA+ICAgICAgIHJldHVybiAwOwo+ID4gPiAg fQo+ID4gPiAgRVhQT1JUX1NZTUJPTCh0dG1fYm9faW5pdF9tbSk7Cj4gPiA+IEBAIC0xNjIwLDYg KzE2NjUsOCBAQCBpbnQgdHRtX2JvX2RldmljZV9yZWxlYXNlKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2KQo+ID4gPiAgICAgICAgICAgICAgIG1hbiA9ICZiZGV2LT5tYW5baV07Cj4gPiA+ICAg ICAgICAgICAgICAgaWYgKG1hbi0+aGFzX3R5cGUpIHsKPiA+ID4gICAgICAgICAgICAgICAgICAg ICAgIG1hbi0+dXNlX3R5cGUgPSBmYWxzZTsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIGRy bWNncnBfdW5yZWdpc3Rlcl9kZXZpY2VfbW0oYmRldi0+ZGRldiwgaSk7Cj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICBjYW5jZWxfd29ya19zeW5jKCZtYW4tPnJlY2xhaW1fd3EpOwo+ID4gPiAg ICAgICAgICAgICAgICAgICAgICAgaWYgKChpICE9IFRUTV9QTF9TWVNURU0pICYmIHR0bV9ib19j bGVhbl9tbShiZGV2LCBpKSkgewo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXQgPSAtRUJVU1k7Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByX2Vycigi RFJNIG1lbW9yeSBtYW5hZ2VyIHR5cGUgJWQgaXMgbm90IGNsZWFuXG4iLAo+ID4gPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5o Cj4gPiA+IGluZGV4IDM2MGMxZTZjODA5Zi4uMTM0ZDZlNTQ3NWYzIDEwMDY0NAo+ID4gPiAtLS0g YS9pbmNsdWRlL2RybS9kcm1fY2dyb3VwLmgKPiA+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nn cm91cC5oCj4gPiA+IEBAIC01LDYgKzUsNyBAQAo+ID4gPiAgI2RlZmluZSBfX0RSTV9DR1JPVVBf SF9fCj4gPiA+Cj4gPiA+ICAjaW5jbHVkZSA8bGludXgvY2dyb3VwX2RybS5oPgo+ID4gPiArI2lu Y2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPgo+ID4gPiAgI2luY2x1ZGUgPGRybS90dG0vdHRtX2Jv X2FwaS5oPgo+ID4gPiAgI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgo+ID4gPgo+ ID4gPiBAQCAtMTIsNiArMTMsOSBAQAo+ID4gPgo+ID4gPiAgaW50IGRybWNncnBfcmVnaXN0ZXJf ZGV2aWNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXZpY2UpOwo+ID4gPiAgaW50IGRybWNncnBfdW5y ZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldmljZSk7Cj4gPiA+ICt2b2lkIGRy bWNncnBfcmVnaXN0ZXJfZGV2aWNlX21tKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IHR5cGUsCj4gPiA+ICsgICAgICAgICAgICAgc3RydWN0IHdvcmtfc3RydWN0ICp3cSk7Cj4gPiA+ ICt2b2lkIGRybWNncnBfdW5yZWdpc3Rlcl9kZXZpY2VfbW0oc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdW5zaWduZWQgdHlwZSk7Cj4gPiA+ICBib29sIGRybWNncnBfaXNfc2VsZl9vcl9hbmNlc3Rv cihzdHJ1Y3QgZHJtY2dycCAqc2VsZiwKPiA+ID4gICAgICAgICAgICAgICBzdHJ1Y3QgZHJtY2dy cCAqcmVsYXRpdmUpOwo+ID4gPiAgdm9pZCBkcm1jZ3JwX2NoZ19ib19hbGxvYyhzdHJ1Y3QgZHJt Y2dycCAqZHJtY2dycCwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gQEAgLTQwLDYgKzQ0 LDE2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGRybWNncnBfdW5yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0 IGRybV9kZXZpY2UgKmRldmljZSkKPiA+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+ Cj4gPiA+ICtzdGF0aWMgaW5saW5lIHZvaWQgZHJtY2dycF9yZWdpc3Rlcl9kZXZpY2VfbW0oc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gKyAgICAgICAgICAgICB1bnNpZ25lZCB0eXBlLCBz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndxKQo+ID4gPiArewo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtz dGF0aWMgaW5saW5lIHZvaWQgZHJtY2dycF91bnJlZ2lzdGVyX2RldmljZV9tbShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAo+ID4gPiArICAgICAgICAgICAgIHVuc2lnbmVkIHR5cGUpCj4gPiA+ICt7 Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyBpbmxpbmUgYm9vbCBkcm1jZ3JwX2lzX3Nl bGZfb3JfYW5jZXN0b3Ioc3RydWN0IGRybWNncnAgKnNlbGYsCj4gPiA+ICAgICAgICAgICAgICAg c3RydWN0IGRybWNncnAgKnJlbGF0aXZlKQo+ID4gPiAgewo+ID4gPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJp dmVyLmgKPiA+ID4gaW5kZXggNGNiY2I0MWU1YWE5Li4wOTU2Y2E3ODg4ZmMgMTAwNjQ0Cj4gPiA+ IC0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKPiA+ID4gKysrIGIvaW5jbHVk ZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAo+ID4gPiBAQCAtMjA1LDYgKzIwNSw4IEBAIHN0cnVj dCB0dG1fbWVtX3R5cGVfbWFuYWdlciB7Cj4gPiA+ICAgICAgICAqIFByb3RlY3RlZCBieSBAbW92 ZV9sb2NrLgo+ID4gPiAgICAgICAgKi8KPiA+ID4gICAgICAgc3RydWN0IGRtYV9mZW5jZSAqbW92 ZTsKPiA+ID4gKwo+ID4gPiArICAgICBzdHJ1Y3Qgd29ya19zdHJ1Y3QgcmVjbGFpbV93cTsKPiA+ ID4gIH07Cj4gPiA+Cj4gPiA+ICAvKioKPiA+ID4gZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAv ZHJtLmMgYi9rZXJuZWwvY2dyb3VwL2RybS5jCj4gPiA+IGluZGV4IDFjZTEzZGIzNmNlOS4uOTg1 YTg5ZTg0OWQzIDEwMDY0NAo+ID4gPiAtLS0gYS9rZXJuZWwvY2dyb3VwL2RybS5jCj4gPiA+ICsr KyBiL2tlcm5lbC9jZ3JvdXAvZHJtLmMKPiA+ID4gQEAgLTMxLDYgKzMxLDggQEAgc3RydWN0IGRy bWNncnBfZGV2aWNlIHsKPiA+ID4gICAgICAgczY0ICAgICAgICAgICAgICAgICAgICAgbWVtX2J3 X2F2Z19ieXRlc19wZXJfdXNfZGVmYXVsdDsKPiA+ID4KPiA+ID4gICAgICAgczY0ICAgICAgICAg ICAgICAgICAgICAgbWVtX2hpZ2hzX2RlZmF1bHRbVFRNX1BMX1BSSVYrMV07Cj4gPiA+ICsKPiA+ ID4gKyAgICAgc3RydWN0IHdvcmtfc3RydWN0ICAgICAgKm1lbV9yZWNsYWltX3dxW1RUTV9QTF9Q UklWXTsKPiA+ID4gIH07Cj4gPiA+Cj4gPiA+ICAjZGVmaW5lIERSTUNHX0NURl9QUklWX1NJWkUg Mwo+ID4gPiBAQCAtNzkzLDYgKzc5NSwzMSBAQCBpbnQgZHJtY2dycF91bnJlZ2lzdGVyX2Rldmlj ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiAgfQo+ID4gPiAgRVhQT1JUX1NZTUJPTChk cm1jZ3JwX3VucmVnaXN0ZXJfZGV2aWNlKTsKPiA+ID4KPiA+ID4gK3ZvaWQgZHJtY2dycF9yZWdp c3Rlcl9kZXZpY2VfbW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgdHlwZSwKPiA+ ID4gKyAgICAgICAgICAgICBzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndxKQo+ID4gPiArewo+ID4gPiAr ICAgICBpZiAoZGV2ID09IE5VTEwgfHwgZGV2LT5wcmltYXJ5LT5pbmRleCA+IG1heF9taW5vcgo+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgfHwgdHlwZSA+PSBUVE1fUExfUFJJVikKPiA+ID4g KyAgICAgICAgICAgICByZXR1cm47Cj4gPiA+ICsKPiA+ID4gKyAgICAgbXV0ZXhfbG9jaygmZHJt Y2dycF9tdXRleCk7Cj4gPiA+ICsgICAgIGtub3duX2RybWNncnBfZGV2c1tkZXYtPnByaW1hcnkt PmluZGV4XS0+bWVtX3JlY2xhaW1fd3FbdHlwZV0gPSB3cTsKPiA+ID4gKyAgICAgbXV0ZXhfdW5s b2NrKCZkcm1jZ3JwX211dGV4KTsKPiA+ID4gK30KPiA+ID4gK0VYUE9SVF9TWU1CT0woZHJtY2dy cF9yZWdpc3Rlcl9kZXZpY2VfbW0pOwo+ID4gPiArCj4gPiA+ICt2b2lkIGRybWNncnBfdW5yZWdp c3Rlcl9kZXZpY2VfbW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgdHlwZSkKPiA+ ID4gK3sKPiA+ID4gKyAgICAgaWYgKGRldiA9PSBOVUxMIHx8IGRldi0+cHJpbWFyeS0+aW5kZXgg PiBtYXhfbWlub3IKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHx8IHR5cGUgPj0gVFRNX1BM X1BSSVYpCj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuOwo+ID4gPiArCj4gPiA+ICsgICAgIG11 dGV4X2xvY2soJmRybWNncnBfbXV0ZXgpOwo+ID4gPiArICAgICBrbm93bl9kcm1jZ3JwX2RldnNb ZGV2LT5wcmltYXJ5LT5pbmRleF0tPm1lbV9yZWNsYWltX3dxW3R5cGVdID0gTlVMTDsKPiA+ID4g KyAgICAgbXV0ZXhfdW5sb2NrKCZkcm1jZ3JwX211dGV4KTsKPiA+ID4gK30KPiA+ID4gK0VYUE9S VF9TWU1CT0woZHJtY2dycF91bnJlZ2lzdGVyX2RldmljZV9tbSk7Cj4gPiA+ICsKPiA+ID4gIGJv b2wgZHJtY2dycF9pc19zZWxmX29yX2FuY2VzdG9yKHN0cnVjdCBkcm1jZ3JwICpzZWxmLCBzdHJ1 Y3QgZHJtY2dycCAqcmVsYXRpdmUpCj4gPiA+ICB7Cj4gPiA+ICAgICAgIGZvciAoOyBzZWxmICE9 IE5VTEw7IHNlbGYgPSBwYXJlbnRfZHJtY2dycChzZWxmKSkKPiA+ID4gQEAgLTEwMDQsNiArMTAz MSwxMiBAQCB2b2lkIGRybWNncnBfbWVtX3RyYWNrX21vdmUoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpvbGRfYm8sIGJvb2wgZXZpY3QsCj4gPiA+Cj4gPiA+ICAgICAgICAgICAgICAgZGRyLT5t ZW1fYndfc3RhdHNbRFJNQ0dSUF9NRU1fQldfQVRUUl9CWVRFX0NSRURJVF0KPiA+ID4gICAgICAg ICAgICAgICAgICAgICAgIC09IG1vdmVfaW5fYnl0ZXM7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAg ICAgICBpZiAoa25vd25fZGV2LT5tZW1fcmVjbGFpbV93cVtuZXdfbWVtX3R5cGVdICE9IE5VTEwg JiYKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIGRkci0+bWVtX3N0YXRzW25ld19tZW1f dHlwZV0gPgo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZHItPm1lbV9oaWdo c1tuZXdfbWVtX3R5cGVdKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVfd29y aygKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAga25vd25fZGV2LT5tZW1fcmVj bGFpbV93cVtuZXdfbWVtX3R5cGVdKTsKPiA+ID4gICAgICAgfQo+ID4gPiAgICAgICBtdXRleF91 bmxvY2soJmtub3duX2Rldi0+bXV0ZXgpOwo+ID4gPiAgfQo+ID4gPiAtLQo+ID4gPiAyLjIxLjAK PiA+ID4KPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiA+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gPiBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCj4gPgo+ID4gLS0KPiA+IERhbmllbCBWZXR0ZXIKPiA+IFNvZnR3 YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWw=