From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915/ggtt: Move ballooning support to i915_ggtt Date: Mon, 25 Nov 2019 12:51:53 +0200 Message-ID: <877e3op6t2.fsf@intel.com> References: <20191121175850.19844-1-michal.wajdeczko@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id B9AAB6E115 for ; Mon, 25 Nov 2019 10:51:58 +0000 (UTC) In-Reply-To: <20191121175850.19844-1-michal.wajdeczko@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michal Wajdeczko , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMSBOb3YgMjAxOSwgTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0Bp bnRlbC5jb20+IHdyb3RlOgo+IFRvZGF5IFZHVCBpbXBsZW1lbnRzIEdHVFQgYmFsbG9vbmluZyBv biBpdHMgb3duLCB1c2luZyBzb21lIHByaXZhdGUKPiBzdGF0aWMgc3RydWN0dXJlIHRvIGhvbGQg aW5mbyBhYm91dCByZXNlcnZlZCBHR1RUIG5vZGVzIGFuZCB0aGVuCj4gbWFudWFsbHkgdXBkYXRl IHZtLnJlc2VydmVkIHNpemUgb3duZWQgYnkgaTkxNV9nZ3R0Lgo+Cj4gQXMgaTkxNV9nZ3R0IGFs cmVhZHkgbWFuYWdlcyBzb21lIGN1c3RvbSByZXNlcnZlZCBub2RlcyAobGlrZSB1Y19mdykKPiBt b3ZlIFZHVCBiYWxsb29uaW5nIHN1cHBvcnQgdG8gaTkxNV9nZ3R0IGFuZCBtYWtlIGl0IG1vcmUg Z2VuZXJpYwo+IGZvciBwb3NzaWJsZSBmdXR1cmUgcmV1c2UgaW4gb3RoZXIgc2NlbmFyaW9zLgo+ Cj4gQXMgYSBib251cyB3ZSBjYW4gZHJvcCBhbm90aGVyIHBsYWNlIGluIGRyaXZlciB0aGF0IHVz ZXMgc3RhdGljIGRhdGEuCj4KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgV2FqZGVjemtvIDxtaWNo YWwud2FqZGVjemtvQGludGVsLmNvbT4KPiBDYzogWGlvbmcgWmhhbmcgPHhpb25nLnkuemhhbmdA aW50ZWwuY29tPgo+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K PiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCA0NyArKysrKysrKysrKysrKysrKysrCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIHwgMTggKysrKysrKysKCk1heWJl IG5vdCBwYXJ0IG9mIHRoaXMgcGF0Y2gsIGJ1dCBzaG91bGQgd2Ugc3RhcnQgbW92aW5nIHRoaXMg c3R1ZmYgb3V0Cm9mIHRoZSB0b3AgbGV2ZWwgaW5zdGVhZCBvZiBhZGRtaW5nIG1vcmU/CgpCUiwK SmFuaS4KCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jICAgIHwgNzIgKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25z KCspLCA1OSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4g aW5kZXggNjIzOWE5YWRiZjE0Li5kOGIyMDg0ZGFiN2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwo+IEBAIC0zODI3LDYgKzM4MjcsNTMgQEAgaW50IGk5MTVfZ2VtX2d0dF9p bnNlcnQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAkJCQkJICAgc3RhcnQsIGVu ZCwgRFJNX01NX0lOU0VSVF9FVklDVCk7Cj4gIH0KPiAgCj4gK2ludCBpOTE1X2dndHRfYmFsbG9v bl9zcGFjZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0LAo+ICsJCQkgICAgZW51bSBpOTE1X2dndHRf YmFsbG9vbl9pZCBpZCwKPiArCQkJICAgIHU2NCBzdGFydCwgdTY0IGVuZCkKPiArewo+ICsJc3Ry dWN0IGRybV9tbV9ub2RlICpub2RlID0gJmdndHQtPmJhbGxvb25baWRdOwo+ICsJdTY0IHNpemUg PSBlbmQgLSBzdGFydDsKPiArCWludCByZXQ7Cj4gKwo+ICsJR0VNX0JVR19PTihpZCA8IDAgfHwg aWQgPj0gQVJSQVlfU0laRShnZ3R0LT5iYWxsb29uKSk7Cj4gKwlHRU1fQlVHX09OKHN0YXJ0ID49 IGVuZCk7Cj4gKwlEUk1fREVWX0RFQlVHX0RSSVZFUihnZ3R0LT52bS5pOTE1LT5kcm0uZGV2LAo+ ICsJCQkgICAgICIlc0dHVFQgWyUjbGx4LSUjbGx4XSAlbGx1S1xuIiwKPiArCQkJICAgICAiYmFs bG9vbmluZyAiLCBzdGFydCwgZW5kLCBzaXplIC8gU1pfMUspOwo+ICsKPiArCXJldCA9IGk5MTVf Z2VtX2d0dF9yZXNlcnZlKCZnZ3R0LT52bSwgbm9kZSwgc2l6ZSwgc3RhcnQsCj4gKwkJCQkgICBJ OTE1X0NPTE9SX1VORVZJQ1RBQkxFLCBQSU5fTk9FVklDVCk7Cj4gKwlpZiAodW5saWtlbHkocmV0 KSkgewo+ICsJCURSTV9ERVZfRVJST1IoZ2d0dC0+dm0uaTkxNS0+ZHJtLmRldiwKPiArCQkJICAg ICAgIiVzR0dUVCBbJSNsbHgtJSNsbHhdICVsbHVLXG4iLAo+ICsJCQkgICAgICAiRmFpbGVkIHRv IGJhbGxvb24gIiwgbm9kZS0+c3RhcnQsCj4gKwkJCSAgICAgIG5vZGUtPnN0YXJ0ICsgbm9kZS0+ c2l6ZSwgbm9kZS0+c2l6ZSAvIFNaXzFLKTsKPiArCX0gZWxzZSB7Cj4gKwkJZ2d0dC0+dm0ucmVz ZXJ2ZWQgKz0gbm9kZS0+c2l6ZTsKPiArCX0KPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ ICt2b2lkIGk5MTVfZ2d0dF9kZWJhbGxvb25fc3BhY2Uoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCwK PiArCQkJICAgICAgIGVudW0gaTkxNV9nZ3R0X2JhbGxvb25faWQgaWQpCj4gK3sKPiArCXN0cnVj dCBkcm1fbW1fbm9kZSAqbm9kZSA9ICZnZ3R0LT5iYWxsb29uW2lkXTsKPiArCj4gKwlHRU1fQlVH X09OKGlkIDwgMCB8fCBpZCA+PSBBUlJBWV9TSVpFKGdndHQtPmJhbGxvb24pKTsKPiArCWlmICgh ZHJtX21tX25vZGVfYWxsb2NhdGVkKG5vZGUpKQo+ICsJCXJldHVybjsKPiArCj4gKwlEUk1fREVW X0RFQlVHX0RSSVZFUihnZ3R0LT52bS5pOTE1LT5kcm0uZGV2LAo+ICsJCQkgICAgICIlc0dHVFQg WyUjbGx4LSUjbGx4XSAlbGx1S1xuIiwKPiArCQkJICAgICAiZGViYWxsb29uaW5nICIsIG5vZGUt PnN0YXJ0LAo+ICsJCQkgICAgIG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6ZSwgbm9kZS0+c2l6ZSAv IFNaXzFLKTsKPiArCj4gKwlHRU1fQlVHX09OKGdndHQtPnZtLnJlc2VydmVkIDwgbm9kZS0+c2l6 ZSk7Cj4gKwlnZ3R0LT52bS5yZXNlcnZlZCAtPSBub2RlLT5zaXplOwo+ICsJZHJtX21tX3JlbW92 ZV9ub2RlKG5vZGUpOwo+ICt9Cj4gKwo+ICAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVf U0VMRlRFU1QpCj4gICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19ndHQuYyIKPiAgI2luY2x1ZGUg InNlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYyIKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu aAo+IGluZGV4IDQwMjI4M2NlMjg2NC4uYmE0MGNhZTBlOTdhIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmgKPiBAQCAtNDMyLDYgKzQzMiwxMiBAQCBzdHJ1Y3QgaTkxNV9nZ3R0 IHsKPiAgCj4gIAlzdHJ1Y3QgZHJtX21tX25vZGUgZXJyb3JfY2FwdHVyZTsKPiAgCXN0cnVjdCBk cm1fbW1fbm9kZSB1Y19mdzsKPiArCj4gKwkvKgo+ICsJICogVGhlcmUgbWlnaHQgYmUgdXAgdG8g NCByZWdpb25zIGJhbGxvb25lZC4KPiArCSAqICgyIGZvciBtYXBwYWJsZSBhbmQgMiBmb3IgdW5t YXBwYWJsZSBncmFwaGljIG1lbW9yeSkKPiArCSAqLwo+ICsJc3RydWN0IGRybV9tbV9ub2RlIGJh bGxvb25bNF07Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaTkxNV9wcGd0dCB7Cj4gQEAgLTY0OSw2ICs2 NTUsMTggQEAgaW50IGk5MTVfZ2VtX2d0dF9pbnNlcnQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm0sCj4gIAkJCXU2NCBzaXplLCB1NjQgYWxpZ25tZW50LCB1bnNpZ25lZCBsb25nIGNvbG9y LAo+ICAJCQl1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIGludCBmbGFncyk7Cj4gIAo+ICtl bnVtIGk5MTVfZ2d0dF9iYWxsb29uX2lkIHsKPiArCUk5MTVfR0dUVF9CQUxMT09OMCwKPiArCUk5 MTVfR0dUVF9CQUxMT09OMSwKPiArCUk5MTVfR0dUVF9CQUxMT09OMiwKPiArCUk5MTVfR0dUVF9C QUxMT09OMywKPiArfTsKPiArCj4gK2ludCBpOTE1X2dndHRfYmFsbG9vbl9zcGFjZShzdHJ1Y3Qg aTkxNV9nZ3R0ICpnZ3R0LAo+ICsJCQkgICAgZW51bSBpOTE1X2dndHRfYmFsbG9vbl9pZCBpZCwg dTY0IHN0YXJ0LCB1NjQgZW5kKTsKPiArdm9pZCBpOTE1X2dndHRfZGViYWxsb29uX3NwYWNlKHN0 cnVjdCBpOTE1X2dndHQgKmdndHQsCj4gKwkJCSAgICAgICBlbnVtIGk5MTVfZ2d0dF9iYWxsb29u X2lkIGlkKTsKPiArCj4gIC8qIEZsYWdzIHVzZWQgYnkgcGluL2JpbmQmZnJpZW5kcy4gKi8KPiAg I2RlZmluZSBQSU5fTk9FVklDVAkJQklUX1VMTCgwKQo+ICAjZGVmaW5lIFBJTl9OT1NFQVJDSAkJ QklUX1VMTCgxKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jCj4gaW5kZXggOTY4YmUyNjczNWM1 Li4xOTVjMjc3MjVjYmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 Z3B1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwo+IEBAIC0xMDYs MzIgKzEwNiw2IEBAIGJvb2wgaW50ZWxfdmdwdV9oYXNfZnVsbF9wcGd0dChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlyZXR1cm4gZGV2X3ByaXYtPnZncHUuY2FwcyAmIFZH VF9DQVBTX0ZVTExfUFBHVFQ7Cj4gIH0KPiAgCj4gLXN0cnVjdCBfYmFsbG9vbl9pbmZvXyB7Cj4g LQkvKgo+IC0JICogVGhlcmUgYXJlIHVwIHRvIDIgcmVnaW9ucyBwZXIgbWFwcGFibGUvdW5tYXBw YWJsZSBncmFwaGljCj4gLQkgKiBtZW1vcnkgdGhhdCBtaWdodCBiZSBiYWxsb29uZWQuIEhlcmUs IGluZGV4IDAvMSBpcyBmb3IgbWFwcGFibGUKPiAtCSAqIGdyYXBoaWMgbWVtb3J5LCAyLzMgZm9y IHVubWFwcGFibGUgZ3JhcGhpYyBtZW1vcnkuCj4gLQkgKi8KPiAtCXN0cnVjdCBkcm1fbW1fbm9k ZSBzcGFjZVs0XTsKPiAtfTsKPiAtCj4gLXN0YXRpYyBzdHJ1Y3QgX2JhbGxvb25faW5mb18gYmxf aW5mbzsKPiAtCj4gLXN0YXRpYyB2b2lkIHZndF9kZWJhbGxvb25fc3BhY2Uoc3RydWN0IGk5MTVf Z2d0dCAqZ2d0dCwKPiAtCQkJCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkKPiAtewo+IC0JaWYg KCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQobm9kZSkpCj4gLQkJcmV0dXJuOwo+IC0KPiAtCURSTV9E RUJVR19EUklWRVIoImRlYmFsbG9vbiBzcGFjZTogcmFuZ2UgWzB4JWxseCAtIDB4JWxseF0gJWxs dSBLaUIuXG4iLAo+IC0JCQkgbm9kZS0+c3RhcnQsCj4gLQkJCSBub2RlLT5zdGFydCArIG5vZGUt PnNpemUsCj4gLQkJCSBub2RlLT5zaXplIC8gMTAyNCk7Cj4gLQo+IC0JZ2d0dC0+dm0ucmVzZXJ2 ZWQgLT0gbm9kZS0+c2l6ZTsKPiAtCWRybV9tbV9yZW1vdmVfbm9kZShub2RlKTsKPiAtfQo+IC0K PiAgLyoqCj4gICAqIGludGVsX3ZndF9kZWJhbGxvb24gLSBkZWJhbGxvb24gcmVzZXJ2ZWQgZ3Jh cGhpY3MgYWRkcmVzcyB0cnVua3MKPiAgICogQGdndHQ6IHRoZSBnbG9iYWwgR0dUVCBmcm9tIHdo aWNoIHdlIHJlc2VydmVkIGVhcmxpZXIKPiBAQCAtMTQ5LDI4ICsxMjMsNyBAQCB2b2lkIGludGVs X3ZndF9kZWJhbGxvb24oc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKPiAgCURSTV9ERUJVRygiVkdU IGRlYmFsbG9vbi5cbiIpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspCj4gLQkJdmd0 X2RlYmFsbG9vbl9zcGFjZShnZ3R0LCAmYmxfaW5mby5zcGFjZVtpXSk7Cj4gLX0KPiAtCj4gLXN0 YXRpYyBpbnQgdmd0X2JhbGxvb25fc3BhY2Uoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCwKPiAtCQkJ ICAgICBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUsCj4gLQkJCSAgICAgdW5zaWduZWQgbG9uZyBz dGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCj4gLXsKPiAtCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IGVu ZCAtIHN0YXJ0Owo+IC0JaW50IHJldDsKPiAtCj4gLQlpZiAoc3RhcnQgPj0gZW5kKQo+IC0JCXJl dHVybiAtRUlOVkFMOwo+IC0KPiAtCURSTV9JTkZPKCJiYWxsb29uIHNwYWNlOiByYW5nZSBbIDB4 JWx4IC0gMHglbHggXSAlbHUgS2lCLlxuIiwKPiAtCQkgc3RhcnQsIGVuZCwgc2l6ZSAvIDEwMjQp Owo+IC0JcmV0ID0gaTkxNV9nZW1fZ3R0X3Jlc2VydmUoJmdndHQtPnZtLCBub2RlLAo+IC0JCQkJ ICAgc2l6ZSwgc3RhcnQsIEk5MTVfQ09MT1JfVU5FVklDVEFCTEUsCj4gLQkJCQkgICAwKTsKPiAt CWlmICghcmV0KQo+IC0JCWdndHQtPnZtLnJlc2VydmVkICs9IHNpemU7Cj4gLQo+IC0JcmV0dXJu IHJldDsKPiArCQlpOTE1X2dndHRfZGViYWxsb29uX3NwYWNlKGdndHQsIEk5MTVfR0dUVF9CQUxM T09OMCArIGkpOwo+ICB9Cj4gIAo+ICAvKioKPiBAQCAtMjU2LDMyICsyMDksMzMgQEAgaW50IGlu dGVsX3ZndF9iYWxsb29uKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCj4gIAo+ICAJLyogVW5tYXBw YWJsZSBncmFwaGljIG1lbW9yeSBiYWxsb29uaW5nICovCj4gIAlpZiAodW5tYXBwYWJsZV9iYXNl ID4gZ2d0dC0+bWFwcGFibGVfZW5kKSB7Cj4gLQkJcmV0ID0gdmd0X2JhbGxvb25fc3BhY2UoZ2d0 dCwgJmJsX2luZm8uc3BhY2VbMl0sCj4gLQkJCQkJZ2d0dC0+bWFwcGFibGVfZW5kLCB1bm1hcHBh YmxlX2Jhc2UpOwo+ICsJCXJldCA9IGk5MTVfZ2d0dF9iYWxsb29uX3NwYWNlKGdndHQsIEk5MTVf R0dUVF9CQUxMT09OMiwKPiArCQkJCQkgICAgICBnZ3R0LT5tYXBwYWJsZV9lbmQsCj4gKwkJCQkJ ICAgICAgdW5tYXBwYWJsZV9iYXNlKTsKPiAgCj4gIAkJaWYgKHJldCkKPiAgCQkJZ290byBlcnI7 Cj4gIAl9Cj4gIAo+ICAJaWYgKHVubWFwcGFibGVfZW5kIDwgZ2d0dF9lbmQpIHsKPiAtCQlyZXQg PSB2Z3RfYmFsbG9vbl9zcGFjZShnZ3R0LCAmYmxfaW5mby5zcGFjZVszXSwKPiAtCQkJCQl1bm1h cHBhYmxlX2VuZCwgZ2d0dF9lbmQpOwo+ICsJCXJldCA9IGk5MTVfZ2d0dF9iYWxsb29uX3NwYWNl KGdndHQsIEk5MTVfR0dUVF9CQUxMT09OMywKPiArCQkJCQkgICAgICB1bm1hcHBhYmxlX2VuZCwg Z2d0dF9lbmQpOwo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gZXJyX3Vwb25fbWFwcGFibGU7Cj4g IAl9Cj4gIAo+ICAJLyogTWFwcGFibGUgZ3JhcGhpYyBtZW1vcnkgYmFsbG9vbmluZyAqLwo+ICAJ aWYgKG1hcHBhYmxlX2Jhc2UpIHsKPiAtCQlyZXQgPSB2Z3RfYmFsbG9vbl9zcGFjZShnZ3R0LCAm YmxfaW5mby5zcGFjZVswXSwKPiAtCQkJCQkwLCBtYXBwYWJsZV9iYXNlKTsKPiArCQlyZXQgPSBp OTE1X2dndHRfYmFsbG9vbl9zcGFjZShnZ3R0LCBJOTE1X0dHVFRfQkFMTE9PTjAsCj4gKwkJCQkJ ICAgICAgMCwgbWFwcGFibGVfYmFzZSk7Cj4gIAo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gZXJy X3Vwb25fdW5tYXBwYWJsZTsKPiAgCX0KPiAgCj4gIAlpZiAobWFwcGFibGVfZW5kIDwgZ2d0dC0+ bWFwcGFibGVfZW5kKSB7Cj4gLQkJcmV0ID0gdmd0X2JhbGxvb25fc3BhY2UoZ2d0dCwgJmJsX2lu Zm8uc3BhY2VbMV0sCj4gLQkJCQkJbWFwcGFibGVfZW5kLCBnZ3R0LT5tYXBwYWJsZV9lbmQpOwo+ ICsJCXJldCA9IGk5MTVfZ2d0dF9iYWxsb29uX3NwYWNlKGdndHQsIEk5MTVfR0dUVF9CQUxMT09O MSwKPiArCQkJCQkgICAgICBtYXBwYWJsZV9lbmQsIGdndHQtPm1hcHBhYmxlX2VuZCk7Cj4gIAo+ ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gZXJyX2JlbG93X21hcHBhYmxlOwo+IEBAIC0yOTEsMTEg KzI0NSwxMSBAQCBpbnQgaW50ZWxfdmd0X2JhbGxvb24oc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkK PiAgCXJldHVybiAwOwo+ICAKPiAgZXJyX2JlbG93X21hcHBhYmxlOgo+IC0Jdmd0X2RlYmFsbG9v bl9zcGFjZShnZ3R0LCAmYmxfaW5mby5zcGFjZVswXSk7Cj4gKwlpOTE1X2dndHRfZGViYWxsb29u X3NwYWNlKGdndHQsIEk5MTVfR0dUVF9CQUxMT09OMCk7Cj4gIGVycl91cG9uX3VubWFwcGFibGU6 Cj4gLQl2Z3RfZGViYWxsb29uX3NwYWNlKGdndHQsICZibF9pbmZvLnNwYWNlWzNdKTsKPiArCWk5 MTVfZ2d0dF9kZWJhbGxvb25fc3BhY2UoZ2d0dCwgSTkxNV9HR1RUX0JBTExPT04zKTsKPiAgZXJy X3Vwb25fbWFwcGFibGU6Cj4gLQl2Z3RfZGViYWxsb29uX3NwYWNlKGdndHQsICZibF9pbmZvLnNw YWNlWzJdKTsKPiArCWk5MTVfZ2d0dF9kZWJhbGxvb25fc3BhY2UoZ2d0dCwgSTkxNV9HR1RUX0JB TExPT04yKTsKPiAgZXJyOgo+ICAJRFJNX0VSUk9SKCJWR1QgYmFsbG9vbiBmYWlsXG4iKTsKPiAg CXJldHVybiByZXQ7CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNz IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B68D1C432C0 for ; Mon, 25 Nov 2019 10:52:03 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 97D3F207FD for ; Mon, 25 Nov 2019 10:52:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 97D3F207FD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DB5ED6E115; Mon, 25 Nov 2019 10:52:02 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id B9AAB6E115 for ; Mon, 25 Nov 2019 10:51:58 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Nov 2019 02:51:58 -0800 X-IronPort-AV: E=Sophos;i="5.69,241,1571727600"; d="scan'208";a="202312015" Received: from jnikula-mobl3.fi.intel.com (HELO localhost) ([10.237.66.161]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Nov 2019 02:51:56 -0800 From: Jani Nikula To: Michal Wajdeczko , intel-gfx@lists.freedesktop.org In-Reply-To: <20191121175850.19844-1-michal.wajdeczko@intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20191121175850.19844-1-michal.wajdeczko@intel.com> Date: Mon, 25 Nov 2019 12:51:53 +0200 Message-ID: <877e3op6t2.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH] drm/i915/ggtt: Move ballooning support to i915_ggtt X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191125105153.7pTvGD3eXGnqfwCYP5G6Yi4fGtGa1rrZPiGpgOBQ3Go@z> T24gVGh1LCAyMSBOb3YgMjAxOSwgTWljaGFsIFdhamRlY3prbyA8bWljaGFsLndhamRlY3prb0Bp bnRlbC5jb20+IHdyb3RlOgo+IFRvZGF5IFZHVCBpbXBsZW1lbnRzIEdHVFQgYmFsbG9vbmluZyBv biBpdHMgb3duLCB1c2luZyBzb21lIHByaXZhdGUKPiBzdGF0aWMgc3RydWN0dXJlIHRvIGhvbGQg aW5mbyBhYm91dCByZXNlcnZlZCBHR1RUIG5vZGVzIGFuZCB0aGVuCj4gbWFudWFsbHkgdXBkYXRl IHZtLnJlc2VydmVkIHNpemUgb3duZWQgYnkgaTkxNV9nZ3R0Lgo+Cj4gQXMgaTkxNV9nZ3R0IGFs cmVhZHkgbWFuYWdlcyBzb21lIGN1c3RvbSByZXNlcnZlZCBub2RlcyAobGlrZSB1Y19mdykKPiBt b3ZlIFZHVCBiYWxsb29uaW5nIHN1cHBvcnQgdG8gaTkxNV9nZ3R0IGFuZCBtYWtlIGl0IG1vcmUg Z2VuZXJpYwo+IGZvciBwb3NzaWJsZSBmdXR1cmUgcmV1c2UgaW4gb3RoZXIgc2NlbmFyaW9zLgo+ Cj4gQXMgYSBib251cyB3ZSBjYW4gZHJvcCBhbm90aGVyIHBsYWNlIGluIGRyaXZlciB0aGF0IHVz ZXMgc3RhdGljIGRhdGEuCj4KPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgV2FqZGVjemtvIDxtaWNo YWwud2FqZGVjemtvQGludGVsLmNvbT4KPiBDYzogWGlvbmcgWmhhbmcgPHhpb25nLnkuemhhbmdA aW50ZWwuY29tPgo+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K PiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCA0NyArKysrKysrKysrKysrKysrKysrCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIHwgMTggKysrKysrKysKCk1heWJl IG5vdCBwYXJ0IG9mIHRoaXMgcGF0Y2gsIGJ1dCBzaG91bGQgd2Ugc3RhcnQgbW92aW5nIHRoaXMg c3R1ZmYgb3V0Cm9mIHRoZSB0b3AgbGV2ZWwgaW5zdGVhZCBvZiBhZGRtaW5nIG1vcmU/CgpCUiwK SmFuaS4KCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jICAgIHwgNzIgKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMyBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25z KCspLCA1OSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4g aW5kZXggNjIzOWE5YWRiZjE0Li5kOGIyMDg0ZGFiN2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwo+IEBAIC0zODI3LDYgKzM4MjcsNTMgQEAgaW50IGk5MTVfZ2VtX2d0dF9p bnNlcnQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAkJCQkJICAgc3RhcnQsIGVu ZCwgRFJNX01NX0lOU0VSVF9FVklDVCk7Cj4gIH0KPiAgCj4gK2ludCBpOTE1X2dndHRfYmFsbG9v bl9zcGFjZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0LAo+ICsJCQkgICAgZW51bSBpOTE1X2dndHRf YmFsbG9vbl9pZCBpZCwKPiArCQkJICAgIHU2NCBzdGFydCwgdTY0IGVuZCkKPiArewo+ICsJc3Ry dWN0IGRybV9tbV9ub2RlICpub2RlID0gJmdndHQtPmJhbGxvb25baWRdOwo+ICsJdTY0IHNpemUg PSBlbmQgLSBzdGFydDsKPiArCWludCByZXQ7Cj4gKwo+ICsJR0VNX0JVR19PTihpZCA8IDAgfHwg aWQgPj0gQVJSQVlfU0laRShnZ3R0LT5iYWxsb29uKSk7Cj4gKwlHRU1fQlVHX09OKHN0YXJ0ID49 IGVuZCk7Cj4gKwlEUk1fREVWX0RFQlVHX0RSSVZFUihnZ3R0LT52bS5pOTE1LT5kcm0uZGV2LAo+ ICsJCQkgICAgICIlc0dHVFQgWyUjbGx4LSUjbGx4XSAlbGx1S1xuIiwKPiArCQkJICAgICAiYmFs bG9vbmluZyAiLCBzdGFydCwgZW5kLCBzaXplIC8gU1pfMUspOwo+ICsKPiArCXJldCA9IGk5MTVf Z2VtX2d0dF9yZXNlcnZlKCZnZ3R0LT52bSwgbm9kZSwgc2l6ZSwgc3RhcnQsCj4gKwkJCQkgICBJ OTE1X0NPTE9SX1VORVZJQ1RBQkxFLCBQSU5fTk9FVklDVCk7Cj4gKwlpZiAodW5saWtlbHkocmV0 KSkgewo+ICsJCURSTV9ERVZfRVJST1IoZ2d0dC0+dm0uaTkxNS0+ZHJtLmRldiwKPiArCQkJICAg ICAgIiVzR0dUVCBbJSNsbHgtJSNsbHhdICVsbHVLXG4iLAo+ICsJCQkgICAgICAiRmFpbGVkIHRv IGJhbGxvb24gIiwgbm9kZS0+c3RhcnQsCj4gKwkJCSAgICAgIG5vZGUtPnN0YXJ0ICsgbm9kZS0+ c2l6ZSwgbm9kZS0+c2l6ZSAvIFNaXzFLKTsKPiArCX0gZWxzZSB7Cj4gKwkJZ2d0dC0+dm0ucmVz ZXJ2ZWQgKz0gbm9kZS0+c2l6ZTsKPiArCX0KPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ ICt2b2lkIGk5MTVfZ2d0dF9kZWJhbGxvb25fc3BhY2Uoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCwK PiArCQkJICAgICAgIGVudW0gaTkxNV9nZ3R0X2JhbGxvb25faWQgaWQpCj4gK3sKPiArCXN0cnVj dCBkcm1fbW1fbm9kZSAqbm9kZSA9ICZnZ3R0LT5iYWxsb29uW2lkXTsKPiArCj4gKwlHRU1fQlVH X09OKGlkIDwgMCB8fCBpZCA+PSBBUlJBWV9TSVpFKGdndHQtPmJhbGxvb24pKTsKPiArCWlmICgh ZHJtX21tX25vZGVfYWxsb2NhdGVkKG5vZGUpKQo+ICsJCXJldHVybjsKPiArCj4gKwlEUk1fREVW X0RFQlVHX0RSSVZFUihnZ3R0LT52bS5pOTE1LT5kcm0uZGV2LAo+ICsJCQkgICAgICIlc0dHVFQg WyUjbGx4LSUjbGx4XSAlbGx1S1xuIiwKPiArCQkJICAgICAiZGViYWxsb29uaW5nICIsIG5vZGUt PnN0YXJ0LAo+ICsJCQkgICAgIG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6ZSwgbm9kZS0+c2l6ZSAv IFNaXzFLKTsKPiArCj4gKwlHRU1fQlVHX09OKGdndHQtPnZtLnJlc2VydmVkIDwgbm9kZS0+c2l6 ZSk7Cj4gKwlnZ3R0LT52bS5yZXNlcnZlZCAtPSBub2RlLT5zaXplOwo+ICsJZHJtX21tX3JlbW92 ZV9ub2RlKG5vZGUpOwo+ICt9Cj4gKwo+ICAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVf U0VMRlRFU1QpCj4gICNpbmNsdWRlICJzZWxmdGVzdHMvbW9ja19ndHQuYyIKPiAgI2luY2x1ZGUg InNlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYyIKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu aAo+IGluZGV4IDQwMjI4M2NlMjg2NC4uYmE0MGNhZTBlOTdhIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmgKPiBAQCAtNDMyLDYgKzQzMiwxMiBAQCBzdHJ1Y3QgaTkxNV9nZ3R0 IHsKPiAgCj4gIAlzdHJ1Y3QgZHJtX21tX25vZGUgZXJyb3JfY2FwdHVyZTsKPiAgCXN0cnVjdCBk cm1fbW1fbm9kZSB1Y19mdzsKPiArCj4gKwkvKgo+ICsJICogVGhlcmUgbWlnaHQgYmUgdXAgdG8g NCByZWdpb25zIGJhbGxvb25lZC4KPiArCSAqICgyIGZvciBtYXBwYWJsZSBhbmQgMiBmb3IgdW5t YXBwYWJsZSBncmFwaGljIG1lbW9yeSkKPiArCSAqLwo+ICsJc3RydWN0IGRybV9tbV9ub2RlIGJh bGxvb25bNF07Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaTkxNV9wcGd0dCB7Cj4gQEAgLTY0OSw2ICs2 NTUsMTggQEAgaW50IGk5MTVfZ2VtX2d0dF9pbnNlcnQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm0sCj4gIAkJCXU2NCBzaXplLCB1NjQgYWxpZ25tZW50LCB1bnNpZ25lZCBsb25nIGNvbG9y LAo+ICAJCQl1NjQgc3RhcnQsIHU2NCBlbmQsIHVuc2lnbmVkIGludCBmbGFncyk7Cj4gIAo+ICtl bnVtIGk5MTVfZ2d0dF9iYWxsb29uX2lkIHsKPiArCUk5MTVfR0dUVF9CQUxMT09OMCwKPiArCUk5 MTVfR0dUVF9CQUxMT09OMSwKPiArCUk5MTVfR0dUVF9CQUxMT09OMiwKPiArCUk5MTVfR0dUVF9C QUxMT09OMywKPiArfTsKPiArCj4gK2ludCBpOTE1X2dndHRfYmFsbG9vbl9zcGFjZShzdHJ1Y3Qg aTkxNV9nZ3R0ICpnZ3R0LAo+ICsJCQkgICAgZW51bSBpOTE1X2dndHRfYmFsbG9vbl9pZCBpZCwg dTY0IHN0YXJ0LCB1NjQgZW5kKTsKPiArdm9pZCBpOTE1X2dndHRfZGViYWxsb29uX3NwYWNlKHN0 cnVjdCBpOTE1X2dndHQgKmdndHQsCj4gKwkJCSAgICAgICBlbnVtIGk5MTVfZ2d0dF9iYWxsb29u X2lkIGlkKTsKPiArCj4gIC8qIEZsYWdzIHVzZWQgYnkgcGluL2JpbmQmZnJpZW5kcy4gKi8KPiAg I2RlZmluZSBQSU5fTk9FVklDVAkJQklUX1VMTCgwKQo+ICAjZGVmaW5lIFBJTl9OT1NFQVJDSAkJ QklUX1VMTCgxKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jCj4gaW5kZXggOTY4YmUyNjczNWM1 Li4xOTVjMjc3MjVjYmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92 Z3B1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwo+IEBAIC0xMDYs MzIgKzEwNiw2IEBAIGJvb2wgaW50ZWxfdmdwdV9oYXNfZnVsbF9wcGd0dChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlyZXR1cm4gZGV2X3ByaXYtPnZncHUuY2FwcyAmIFZH VF9DQVBTX0ZVTExfUFBHVFQ7Cj4gIH0KPiAgCj4gLXN0cnVjdCBfYmFsbG9vbl9pbmZvXyB7Cj4g LQkvKgo+IC0JICogVGhlcmUgYXJlIHVwIHRvIDIgcmVnaW9ucyBwZXIgbWFwcGFibGUvdW5tYXBw YWJsZSBncmFwaGljCj4gLQkgKiBtZW1vcnkgdGhhdCBtaWdodCBiZSBiYWxsb29uZWQuIEhlcmUs IGluZGV4IDAvMSBpcyBmb3IgbWFwcGFibGUKPiAtCSAqIGdyYXBoaWMgbWVtb3J5LCAyLzMgZm9y IHVubWFwcGFibGUgZ3JhcGhpYyBtZW1vcnkuCj4gLQkgKi8KPiAtCXN0cnVjdCBkcm1fbW1fbm9k ZSBzcGFjZVs0XTsKPiAtfTsKPiAtCj4gLXN0YXRpYyBzdHJ1Y3QgX2JhbGxvb25faW5mb18gYmxf aW5mbzsKPiAtCj4gLXN0YXRpYyB2b2lkIHZndF9kZWJhbGxvb25fc3BhY2Uoc3RydWN0IGk5MTVf Z2d0dCAqZ2d0dCwKPiAtCQkJCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSkKPiAtewo+IC0JaWYg KCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQobm9kZSkpCj4gLQkJcmV0dXJuOwo+IC0KPiAtCURSTV9E RUJVR19EUklWRVIoImRlYmFsbG9vbiBzcGFjZTogcmFuZ2UgWzB4JWxseCAtIDB4JWxseF0gJWxs dSBLaUIuXG4iLAo+IC0JCQkgbm9kZS0+c3RhcnQsCj4gLQkJCSBub2RlLT5zdGFydCArIG5vZGUt PnNpemUsCj4gLQkJCSBub2RlLT5zaXplIC8gMTAyNCk7Cj4gLQo+IC0JZ2d0dC0+dm0ucmVzZXJ2 ZWQgLT0gbm9kZS0+c2l6ZTsKPiAtCWRybV9tbV9yZW1vdmVfbm9kZShub2RlKTsKPiAtfQo+IC0K PiAgLyoqCj4gICAqIGludGVsX3ZndF9kZWJhbGxvb24gLSBkZWJhbGxvb24gcmVzZXJ2ZWQgZ3Jh cGhpY3MgYWRkcmVzcyB0cnVua3MKPiAgICogQGdndHQ6IHRoZSBnbG9iYWwgR0dUVCBmcm9tIHdo aWNoIHdlIHJlc2VydmVkIGVhcmxpZXIKPiBAQCAtMTQ5LDI4ICsxMjMsNyBAQCB2b2lkIGludGVs X3ZndF9kZWJhbGxvb24oc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKPiAgCURSTV9ERUJVRygiVkdU IGRlYmFsbG9vbi5cbiIpOwo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspCj4gLQkJdmd0 X2RlYmFsbG9vbl9zcGFjZShnZ3R0LCAmYmxfaW5mby5zcGFjZVtpXSk7Cj4gLX0KPiAtCj4gLXN0 YXRpYyBpbnQgdmd0X2JhbGxvb25fc3BhY2Uoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCwKPiAtCQkJ ICAgICBzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUsCj4gLQkJCSAgICAgdW5zaWduZWQgbG9uZyBz dGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCj4gLXsKPiAtCXVuc2lnbmVkIGxvbmcgc2l6ZSA9IGVu ZCAtIHN0YXJ0Owo+IC0JaW50IHJldDsKPiAtCj4gLQlpZiAoc3RhcnQgPj0gZW5kKQo+IC0JCXJl dHVybiAtRUlOVkFMOwo+IC0KPiAtCURSTV9JTkZPKCJiYWxsb29uIHNwYWNlOiByYW5nZSBbIDB4 JWx4IC0gMHglbHggXSAlbHUgS2lCLlxuIiwKPiAtCQkgc3RhcnQsIGVuZCwgc2l6ZSAvIDEwMjQp Owo+IC0JcmV0ID0gaTkxNV9nZW1fZ3R0X3Jlc2VydmUoJmdndHQtPnZtLCBub2RlLAo+IC0JCQkJ ICAgc2l6ZSwgc3RhcnQsIEk5MTVfQ09MT1JfVU5FVklDVEFCTEUsCj4gLQkJCQkgICAwKTsKPiAt CWlmICghcmV0KQo+IC0JCWdndHQtPnZtLnJlc2VydmVkICs9IHNpemU7Cj4gLQo+IC0JcmV0dXJu IHJldDsKPiArCQlpOTE1X2dndHRfZGViYWxsb29uX3NwYWNlKGdndHQsIEk5MTVfR0dUVF9CQUxM T09OMCArIGkpOwo+ICB9Cj4gIAo+ICAvKioKPiBAQCAtMjU2LDMyICsyMDksMzMgQEAgaW50IGlu dGVsX3ZndF9iYWxsb29uKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCj4gIAo+ICAJLyogVW5tYXBw YWJsZSBncmFwaGljIG1lbW9yeSBiYWxsb29uaW5nICovCj4gIAlpZiAodW5tYXBwYWJsZV9iYXNl ID4gZ2d0dC0+bWFwcGFibGVfZW5kKSB7Cj4gLQkJcmV0ID0gdmd0X2JhbGxvb25fc3BhY2UoZ2d0 dCwgJmJsX2luZm8uc3BhY2VbMl0sCj4gLQkJCQkJZ2d0dC0+bWFwcGFibGVfZW5kLCB1bm1hcHBh YmxlX2Jhc2UpOwo+ICsJCXJldCA9IGk5MTVfZ2d0dF9iYWxsb29uX3NwYWNlKGdndHQsIEk5MTVf R0dUVF9CQUxMT09OMiwKPiArCQkJCQkgICAgICBnZ3R0LT5tYXBwYWJsZV9lbmQsCj4gKwkJCQkJ ICAgICAgdW5tYXBwYWJsZV9iYXNlKTsKPiAgCj4gIAkJaWYgKHJldCkKPiAgCQkJZ290byBlcnI7 Cj4gIAl9Cj4gIAo+ICAJaWYgKHVubWFwcGFibGVfZW5kIDwgZ2d0dF9lbmQpIHsKPiAtCQlyZXQg PSB2Z3RfYmFsbG9vbl9zcGFjZShnZ3R0LCAmYmxfaW5mby5zcGFjZVszXSwKPiAtCQkJCQl1bm1h cHBhYmxlX2VuZCwgZ2d0dF9lbmQpOwo+ICsJCXJldCA9IGk5MTVfZ2d0dF9iYWxsb29uX3NwYWNl KGdndHQsIEk5MTVfR0dUVF9CQUxMT09OMywKPiArCQkJCQkgICAgICB1bm1hcHBhYmxlX2VuZCwg Z2d0dF9lbmQpOwo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gZXJyX3Vwb25fbWFwcGFibGU7Cj4g IAl9Cj4gIAo+ICAJLyogTWFwcGFibGUgZ3JhcGhpYyBtZW1vcnkgYmFsbG9vbmluZyAqLwo+ICAJ aWYgKG1hcHBhYmxlX2Jhc2UpIHsKPiAtCQlyZXQgPSB2Z3RfYmFsbG9vbl9zcGFjZShnZ3R0LCAm YmxfaW5mby5zcGFjZVswXSwKPiAtCQkJCQkwLCBtYXBwYWJsZV9iYXNlKTsKPiArCQlyZXQgPSBp OTE1X2dndHRfYmFsbG9vbl9zcGFjZShnZ3R0LCBJOTE1X0dHVFRfQkFMTE9PTjAsCj4gKwkJCQkJ ICAgICAgMCwgbWFwcGFibGVfYmFzZSk7Cj4gIAo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gZXJy X3Vwb25fdW5tYXBwYWJsZTsKPiAgCX0KPiAgCj4gIAlpZiAobWFwcGFibGVfZW5kIDwgZ2d0dC0+ bWFwcGFibGVfZW5kKSB7Cj4gLQkJcmV0ID0gdmd0X2JhbGxvb25fc3BhY2UoZ2d0dCwgJmJsX2lu Zm8uc3BhY2VbMV0sCj4gLQkJCQkJbWFwcGFibGVfZW5kLCBnZ3R0LT5tYXBwYWJsZV9lbmQpOwo+ ICsJCXJldCA9IGk5MTVfZ2d0dF9iYWxsb29uX3NwYWNlKGdndHQsIEk5MTVfR0dUVF9CQUxMT09O MSwKPiArCQkJCQkgICAgICBtYXBwYWJsZV9lbmQsIGdndHQtPm1hcHBhYmxlX2VuZCk7Cj4gIAo+ ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gZXJyX2JlbG93X21hcHBhYmxlOwo+IEBAIC0yOTEsMTEg KzI0NSwxMSBAQCBpbnQgaW50ZWxfdmd0X2JhbGxvb24oc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkK PiAgCXJldHVybiAwOwo+ICAKPiAgZXJyX2JlbG93X21hcHBhYmxlOgo+IC0Jdmd0X2RlYmFsbG9v bl9zcGFjZShnZ3R0LCAmYmxfaW5mby5zcGFjZVswXSk7Cj4gKwlpOTE1X2dndHRfZGViYWxsb29u X3NwYWNlKGdndHQsIEk5MTVfR0dUVF9CQUxMT09OMCk7Cj4gIGVycl91cG9uX3VubWFwcGFibGU6 Cj4gLQl2Z3RfZGViYWxsb29uX3NwYWNlKGdndHQsICZibF9pbmZvLnNwYWNlWzNdKTsKPiArCWk5 MTVfZ2d0dF9kZWJhbGxvb25fc3BhY2UoZ2d0dCwgSTkxNV9HR1RUX0JBTExPT04zKTsKPiAgZXJy X3Vwb25fbWFwcGFibGU6Cj4gLQl2Z3RfZGViYWxsb29uX3NwYWNlKGdndHQsICZibF9pbmZvLnNw YWNlWzJdKTsKPiArCWk5MTVfZ2d0dF9kZWJhbGxvb25fc3BhY2UoZ2d0dCwgSTkxNV9HR1RUX0JB TExPT04yKTsKPiAgZXJyOgo+ICAJRFJNX0VSUk9SKCJWR1QgYmFsbG9vbiBmYWlsXG4iKTsKPiAg CXJldHVybiByZXQ7CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNz IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=