From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v2 2/4] x86/mm: use optional cache in guest_walk_tables() Date: Tue, 11 Sep 2018 16:17:05 +0000 Message-ID: References: <5B97BEB202000078001E73FB@prv1-mh.provo.novell.com> <5B97BFC902000078001E740D@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fzlMm-00037Z-JU for xen-devel@lists.xenproject.org; Tue, 11 Sep 2018 16:18:16 +0000 In-Reply-To: <5B97BFC902000078001E740D@prv1-mh.provo.novell.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: 'Jan Beulich' , xen-devel Cc: Andrew Cooper , Wei Liu , George Dunlap List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEphbiBCZXVsaWNoIFttYWlsdG86 SkJldWxpY2hAc3VzZS5jb21dCj4gU2VudDogMTEgU2VwdGVtYmVyIDIwMTggMTQ6MTUKPiBUbzog eGVuLWRldmVsIDx4ZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmc+Cj4gQ2M6IEFuZHJldyBD b29wZXIgPEFuZHJldy5Db29wZXIzQGNpdHJpeC5jb20+OyBQYXVsIER1cnJhbnQKPiA8UGF1bC5E dXJyYW50QGNpdHJpeC5jb20+OyBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPjsgR2Vvcmdl IER1bmxhcAo+IDxHZW9yZ2UuRHVubGFwQGNpdHJpeC5jb20+Cj4gU3ViamVjdDogW1BBVENIIHYy IDIvNF0geDg2L21tOiB1c2Ugb3B0aW9uYWwgY2FjaGUgaW4gZ3Vlc3Rfd2Fsa190YWJsZXMoKQo+ IAo+IFRoZSBjYWNoaW5nIGlzbid0IGFjdHVhbGx5IGltcGxlbWVudGVkIGhlcmUsIHRoaXMgaXMg anVzdCBzZXR0aW5nIHRoZQo+IHN0YWdlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNo IDxqYmV1bGljaEBzdXNlLmNvbT4KPiAtLS0KPiB2MjogRG9uJ3Qgd3JvbmdseSB1c2UgdG9wX2dm biBmb3Igbm9uLXJvb3QgZ3BhIGNhbGN1bGF0aW9uLiBSZS13cml0ZQo+ICAgICBjYWNoZSBlbnRy aWVzIGFmdGVyIHNldHRpbmcgQS9EIGJpdHMgKGFuIGFsdGVybmF0aXZlIHdvdWxkIGJlIHRvCj4g ICAgIHN1cHByZXNzIHRoZWlyIHNldHRpbmcgdXBvbiBjYWNoZSBoaXRzKS4KPiAKPiAtLS0gYS94 ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0 ZS5jCj4gQEAgLTI2NjQsNiArMjY2NCwxOCBAQCB2b2lkIGh2bV9kdW1wX2VtdWxhdGlvbl9zdGF0 ZShjb25zdCBjaGFyCj4gICAgICAgICAgICAgaHZtZW11bF9jdHh0LT5pbnNuX2J1Zik7Cj4gIH0K PiAKPiArYm9vbCBodm1lbXVsX3JlYWRfY2FjaGUoY29uc3Qgc3RydWN0IGh2bWVtdWxfY2FjaGUg KmNhY2hlLCBwYWRkcl90Cj4gZ3BhLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgbGV2ZWwsIHZvaWQgKmJ1ZmZlciwgdW5zaWduZWQgaW50IHNpemUpCj4gK3sKPiArICAg IHJldHVybiBmYWxzZTsKPiArfQo+ICsKPiArdm9pZCBodm1lbXVsX3dyaXRlX2NhY2hlKHN0cnVj dCBodm1lbXVsX2NhY2hlICpjYWNoZSwgcGFkZHJfdCBncGEsCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwsIGNvbnN0IHZvaWQgKmJ1ZmZlciwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzaXplKQo+ICt7Cj4gK30KPiArCj4gIC8q Cj4gICAqIExvY2FsIHZhcmlhYmxlczoKPiAgICogbW9kZTogQwo+IC0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9ndWVzdF93YWxrLmMKPiArKysgYi94ZW4vYXJjaC94ODYvbW0vZ3Vlc3Rfd2Fsay5jCj4g QEAgLTkyLDggKzkyLDEzIEBAIGd1ZXN0X3dhbGtfdGFibGVzKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1 Y3QKPiAgI2lmIEdVRVNUX1BBR0lOR19MRVZFTFMgPj0gNCAvKiA2NC1iaXQgb25seS4uLiAqLwo+ ICAgICAgZ3Vlc3RfbDNlX3QgKmwzcCA9IE5VTEw7CgpTaG91bGRuJ3QgdGhlIGFib3ZlIGxpbmUg YmUuLi4KCj4gICAgICBndWVzdF9sNGVfdCAqbDRwOwo+ICsgICAgcGFkZHJfdCBsNGdwYTsKPiAr I2VuZGlmCj4gKyNpZiBHVUVTVF9QQUdJTkdfTEVWRUxTID49IDMgLyogUEFFIG9yIDY0Li4uICov CgouLi5oZXJlPwoKPiArICAgIHBhZGRyX3QgbDNncGE7Cj4gICNlbmRpZgo+ICAgICAgdWludDMy X3QgZ2ZsYWdzLCByYzsKPiArICAgIHBhZGRyX3QgbDFncGEgPSAwLCBsMmdwYSA9IDA7Cj4gICAg ICB1bnNpZ25lZCBpbnQgbGVhZl9sZXZlbDsKPiAgICAgIHAybV9xdWVyeV90IHF0ID0gUDJNX0FM TE9DIHwgUDJNX1VOU0hBUkU7Cj4gCj4gQEAgLTEzNCw3ICsxMzksMTUgQEAgZ3Vlc3Rfd2Fsa190 YWJsZXMoc3RydWN0IHZjcHUgKnYsIHN0cnVjdAo+ICAgICAgLyogR2V0IHRoZSBsNGUgZnJvbSB0 aGUgdG9wIGxldmVsIHRhYmxlIGFuZCBjaGVjayBpdHMgZmxhZ3MqLwo+ICAgICAgZ3ctPmw0bWZu ID0gdG9wX21mbjsKPiAgICAgIGw0cCA9IChndWVzdF9sNGVfdCAqKSB0b3BfbWFwOwo+IC0gICAg Z3ctPmw0ZSA9IGw0cFtndWVzdF9sNF90YWJsZV9vZmZzZXQoZ2xhKV07Cj4gKyAgICBsNGdwYSA9 IGdmbl90b19nYWRkcih0b3BfZ2ZuKSArCj4gKyAgICAgICAgICAgIGd1ZXN0X2w0X3RhYmxlX29m ZnNldChnbGEpICogc2l6ZW9mKGd3LT5sNGUpOwo+ICsgICAgaWYgKCAhY2FjaGUgfHwKPiArICAg ICAgICAgIWh2bWVtdWxfcmVhZF9jYWNoZShjYWNoZSwgbDRncGEsIDQsICZndy0+bDRlLCBzaXpl b2YoZ3ctPmw0ZSkpICkKPiArICAgIHsKPiArICAgICAgICBndy0+bDRlID0gbDRwW2d1ZXN0X2w0 X3RhYmxlX29mZnNldChnbGEpXTsKPiArICAgICAgICBpZiAoIGNhY2hlICkKPiArICAgICAgICAg ICAgaHZtZW11bF93cml0ZV9jYWNoZShjYWNoZSwgbDRncGEsIDQsICZndy0+bDRlLCBzaXplb2Yo Z3ctPmw0ZSkpOwoKTm8gbmVlZCB0byB0ZXN0IGNhY2hlIGhlcmUgb3IgYmVsb3cgc2luY2UgbmVp dGhlciB0aGUgcmVhZCBvciB3cml0ZSBmdW5jdGlvbnMgKHlldCkgZGVyZWZlcmVuY2UgaXQuCgog IFBhdWwKCj4gKyAgICB9Cj4gICAgICBnZmxhZ3MgPSBndWVzdF9sNGVfZ2V0X2ZsYWdzKGd3LT5s NGUpOwo+ICAgICAgaWYgKCAhKGdmbGFncyAmIF9QQUdFX1BSRVNFTlQpICkKPiAgICAgICAgICBn b3RvIG91dDsKPiBAQCAtMTY0LDcgKzE3NywxNSBAQCBndWVzdF93YWxrX3RhYmxlcyhzdHJ1Y3Qg dmNwdSAqdiwgc3RydWN0Cj4gICAgICB9Cj4gCj4gICAgICAvKiBHZXQgdGhlIGwzZSBhbmQgY2hl Y2sgaXRzIGZsYWdzKi8KPiAtICAgIGd3LT5sM2UgPSBsM3BbZ3Vlc3RfbDNfdGFibGVfb2Zmc2V0 KGdsYSldOwo+ICsgICAgbDNncGEgPSBnZm5fdG9fZ2FkZHIoZ3Vlc3RfbDRlX2dldF9nZm4oZ3ct Pmw0ZSkpICsKPiArICAgICAgICAgICAgZ3Vlc3RfbDNfdGFibGVfb2Zmc2V0KGdsYSkgKiBzaXpl b2YoZ3ctPmwzZSk7Cj4gKyAgICBpZiAoICFjYWNoZSB8fAo+ICsgICAgICAgICAhaHZtZW11bF9y ZWFkX2NhY2hlKGNhY2hlLCBsM2dwYSwgMywgJmd3LT5sM2UsIHNpemVvZihndy0+bDNlKSkgKQo+ ICsgICAgewo+ICsgICAgICAgIGd3LT5sM2UgPSBsM3BbZ3Vlc3RfbDNfdGFibGVfb2Zmc2V0KGds YSldOwo+ICsgICAgICAgIGlmICggY2FjaGUgKQo+ICsgICAgICAgICAgICBodm1lbXVsX3dyaXRl X2NhY2hlKGNhY2hlLCBsM2dwYSwgMywgJmd3LT5sM2UsIHNpemVvZihndy0+bDNlKSk7Cj4gKyAg ICB9Cj4gICAgICBnZmxhZ3MgPSBndWVzdF9sM2VfZ2V0X2ZsYWdzKGd3LT5sM2UpOwo+ICAgICAg aWYgKCAhKGdmbGFncyAmIF9QQUdFX1BSRVNFTlQpICkKPiAgICAgICAgICBnb3RvIG91dDsKPiBA QCAtMjE2LDcgKzIzNywxNiBAQCBndWVzdF93YWxrX3RhYmxlcyhzdHJ1Y3QgdmNwdSAqdiwgc3Ry dWN0Cj4gICNlbHNlIC8qIFBBRSBvbmx5Li4uICovCj4gCj4gICAgICAvKiBHZXQgdGhlIGwzZSBh bmQgY2hlY2sgaXRzIGZsYWcgKi8KPiAtICAgIGd3LT5sM2UgPSAoKGd1ZXN0X2wzZV90ICopdG9w X21hcClbZ3Vlc3RfbDNfdGFibGVfb2Zmc2V0KGdsYSldOwo+ICsgICAgbDNncGEgPSBnZm5fdG9f Z2FkZHIodG9wX2dmbikgKyAoKHVuc2lnbmVkIGxvbmcpdG9wX21hcCAmCj4gflBBR0VfTUFTSykg Kwo+ICsgICAgICAgICAgICBndWVzdF9sM190YWJsZV9vZmZzZXQoZ2xhKSAqIHNpemVvZihndy0+ bDNlKTsKPiArICAgIGlmICggIWNhY2hlIHx8Cj4gKyAgICAgICAgICFodm1lbXVsX3JlYWRfY2Fj aGUoY2FjaGUsIGwzZ3BhLCAzLCAmZ3ctPmwzZSwgc2l6ZW9mKGd3LT5sM2UpKSApCj4gKyAgICB7 Cj4gKyAgICAgICAgZ3ctPmwzZSA9ICgoZ3Vlc3RfbDNlX3QgKil0b3BfbWFwKVtndWVzdF9sM190 YWJsZV9vZmZzZXQoZ2xhKV07Cj4gKyAgICAgICAgaWYgKCBjYWNoZSApCj4gKyAgICAgICAgICAg IGh2bWVtdWxfd3JpdGVfY2FjaGUoY2FjaGUsIGwzZ3BhLCAzLCAmZ3ctPmwzZSwgc2l6ZW9mKGd3 LT5sM2UpKTsKPiArICAgIH0KPiArCj4gICAgICBnZmxhZ3MgPSBndWVzdF9sM2VfZ2V0X2ZsYWdz KGd3LT5sM2UpOwo+ICAgICAgaWYgKCAhKGdmbGFncyAmIF9QQUdFX1BSRVNFTlQpICkKPiAgICAg ICAgICBnb3RvIG91dDsKPiBAQCAtMjQyLDE4ICsyNzIsMjYgQEAgZ3Vlc3Rfd2Fsa190YWJsZXMo c3RydWN0IHZjcHUgKnYsIHN0cnVjdAo+ICAgICAgICAgIGdvdG8gb3V0Owo+ICAgICAgfQo+IAo+ IC0gICAgLyogR2V0IHRoZSBsMmUgKi8KPiAtICAgIGd3LT5sMmUgPSBsMnBbZ3Vlc3RfbDJfdGFi bGVfb2Zmc2V0KGdsYSldOwo+ICsgICAgbDJncGEgPSBnZm5fdG9fZ2FkZHIoZ3Vlc3RfbDNlX2dl dF9nZm4oZ3ctPmwzZSkpOwo+IAo+ICAjZWxzZSAvKiAzMi1iaXQgb25seS4uLiAqLwo+IAo+IC0g ICAgLyogR2V0IGwyZSBmcm9tIHRoZSB0b3AgbGV2ZWwgdGFibGUgKi8KPiAgICAgIGd3LT5sMm1m biA9IHRvcF9tZm47Cj4gICAgICBsMnAgPSAoZ3Vlc3RfbDJlX3QgKikgdG9wX21hcDsKPiAtICAg IGd3LT5sMmUgPSBsMnBbZ3Vlc3RfbDJfdGFibGVfb2Zmc2V0KGdsYSldOwo+ICsgICAgbDJncGEg PSBnZm5fdG9fZ2FkZHIodG9wX2dmbik7Cj4gCj4gICNlbmRpZiAvKiBBbGwgbGV2ZWxzLi4uICov Cj4gCj4gKyAgICAvKiBHZXQgdGhlIGwyZSAqLwo+ICsgICAgbDJncGEgKz0gZ3Vlc3RfbDJfdGFi bGVfb2Zmc2V0KGdsYSkgKiBzaXplb2YoZ3ctPmwyZSk7Cj4gKyAgICBpZiAoICFjYWNoZSB8fAo+ ICsgICAgICAgICAhaHZtZW11bF9yZWFkX2NhY2hlKGNhY2hlLCBsMmdwYSwgMiwgJmd3LT5sMmUs IHNpemVvZihndy0+bDJlKSkgKQo+ICsgICAgewo+ICsgICAgICAgIGd3LT5sMmUgPSBsMnBbZ3Vl c3RfbDJfdGFibGVfb2Zmc2V0KGdsYSldOwo+ICsgICAgICAgIGlmICggY2FjaGUgKQo+ICsgICAg ICAgICAgICBodm1lbXVsX3dyaXRlX2NhY2hlKGNhY2hlLCBsMmdwYSwgMiwgJmd3LT5sMmUsIHNp emVvZihndy0+bDJlKSk7Cj4gKyAgICB9Cj4gKwo+ICAgICAgLyogQ2hlY2sgdGhlIGwyZSBmbGFn cy4gKi8KPiAgICAgIGdmbGFncyA9IGd1ZXN0X2wyZV9nZXRfZmxhZ3MoZ3ctPmwyZSk7Cj4gICAg ICBpZiAoICEoZ2ZsYWdzICYgX1BBR0VfUFJFU0VOVCkgKQo+IEBAIC0zMzUsNyArMzczLDE3IEBA IGd1ZXN0X3dhbGtfdGFibGVzKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QKPiAgICAgICAgICBndy0+ cGZlYyB8PSByYyAmIFBGRUNfc3ludGhfbWFzazsKPiAgICAgICAgICBnb3RvIG91dDsKPiAgICAg IH0KPiAtICAgIGd3LT5sMWUgPSBsMXBbZ3Vlc3RfbDFfdGFibGVfb2Zmc2V0KGdsYSldOwo+ICsK PiArICAgIGwxZ3BhID0gZ2ZuX3RvX2dhZGRyKGd1ZXN0X2wyZV9nZXRfZ2ZuKGd3LT5sMmUpKSAr Cj4gKyAgICAgICAgICAgIGd1ZXN0X2wxX3RhYmxlX29mZnNldChnbGEpICogc2l6ZW9mKGd3LT5s MWUpOwo+ICsgICAgaWYgKCAhY2FjaGUgfHwKPiArICAgICAgICAgIWh2bWVtdWxfcmVhZF9jYWNo ZShjYWNoZSwgbDFncGEsIDEsICZndy0+bDFlLCBzaXplb2YoZ3ctPmwxZSkpICkKPiArICAgIHsK PiArICAgICAgICBndy0+bDFlID0gbDFwW2d1ZXN0X2wxX3RhYmxlX29mZnNldChnbGEpXTsKPiAr ICAgICAgICBpZiAoIGNhY2hlICkKPiArICAgICAgICAgICAgaHZtZW11bF93cml0ZV9jYWNoZShj YWNoZSwgbDFncGEsIDEsICZndy0+bDFlLCBzaXplb2YoZ3ctPmwxZSkpOwo+ICsgICAgfQo+ICsK PiAgICAgIGdmbGFncyA9IGd1ZXN0X2wxZV9nZXRfZmxhZ3MoZ3ctPmwxZSk7Cj4gICAgICBpZiAo ICEoZ2ZsYWdzICYgX1BBR0VfUFJFU0VOVCkgKQo+ICAgICAgICAgIGdvdG8gb3V0Owo+IEBAIC00 NDYsMjIgKzQ5NCwzOCBAQCBndWVzdF93YWxrX3RhYmxlcyhzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0 Cj4gICAgICBjYXNlIDE6Cj4gICAgICAgICAgaWYgKCBzZXRfYWRfYml0cygmbDFwW2d1ZXN0X2wx X3RhYmxlX29mZnNldChnbGEpXS5sMSwgJmd3LT5sMWUubDEsCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAod2FsayAmIFBGRUNfd3JpdGVfYWNjZXNzKSkgKQo+ICsgICAgICAgIHsKPiAgICAg ICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkoZCwgZ3ctPmwxbWZuKTsKPiArICAgICAgICAgICAg aWYgKCBjYWNoZSApCj4gKyAgICAgICAgICAgICAgICBodm1lbXVsX3dyaXRlX2NhY2hlKGNhY2hl LCBsMWdwYSwgMSwgJmd3LT5sMWUsIHNpemVvZihndy0+bDFlKSk7Cj4gKyAgICAgICAgfQo+ICAg ICAgICAgIC8qIEZhbGx0aHJvdWdoICovCj4gICAgICBjYXNlIDI6Cj4gICAgICAgICAgaWYgKCBz ZXRfYWRfYml0cygmbDJwW2d1ZXN0X2wyX3RhYmxlX29mZnNldChnbGEpXS5sMiwgJmd3LT5sMmUu bDIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAod2FsayAmIFBGRUNfd3JpdGVfYWNjZXNz KSAmJiBsZWFmX2xldmVsID09IDIpICkKPiArICAgICAgICB7Cj4gICAgICAgICAgICAgIHBhZ2lu Z19tYXJrX2RpcnR5KGQsIGd3LT5sMm1mbik7Cj4gKyAgICAgICAgICAgIGlmICggY2FjaGUgKQo+ ICsgICAgICAgICAgICAgICAgaHZtZW11bF93cml0ZV9jYWNoZShjYWNoZSwgbDJncGEsIDIsICZn dy0+bDJlLCBzaXplb2YoZ3ctPmwyZSkpOwo+ICsgICAgICAgIH0KPiAgICAgICAgICAvKiBGYWxs dGhyb3VnaCAqLwo+ICAjaWYgR1VFU1RfUEFHSU5HX0xFVkVMUyA9PSA0IC8qIDY0LWJpdCBvbmx5 Li4uICovCj4gICAgICBjYXNlIDM6Cj4gICAgICAgICAgaWYgKCBzZXRfYWRfYml0cygmbDNwW2d1 ZXN0X2wzX3RhYmxlX29mZnNldChnbGEpXS5sMywgJmd3LT5sM2UubDMsCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAod2FsayAmIFBGRUNfd3JpdGVfYWNjZXNzKSAmJiBsZWFmX2xldmVsID09 IDMpICkKPiArICAgICAgICB7Cj4gICAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIGd3 LT5sM21mbik7Cj4gKyAgICAgICAgICAgIGlmICggY2FjaGUgKQo+ICsgICAgICAgICAgICAgICAg aHZtZW11bF93cml0ZV9jYWNoZShjYWNoZSwgbDNncGEsIDMsICZndy0+bDNlLCBzaXplb2YoZ3ct PmwzZSkpOwo+ICsgICAgICAgIH0KPiAKPiAgICAgICAgICBpZiAoIHNldF9hZF9iaXRzKCZsNHBb Z3Vlc3RfbDRfdGFibGVfb2Zmc2V0KGdsYSldLmw0LCAmZ3ctPmw0ZS5sNCwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZhbHNlKSApCj4gKyAgICAgICAgewo+ICAgICAgICAgICAgICBwYWdp bmdfbWFya19kaXJ0eShkLCBndy0+bDRtZm4pOwo+ICsgICAgICAgICAgICBpZiAoIGNhY2hlICkK PiArICAgICAgICAgICAgICAgIGh2bWVtdWxfd3JpdGVfY2FjaGUoY2FjaGUsIGw0Z3BhLCA0LCAm Z3ctPmw0ZSwgc2l6ZW9mKGd3LT5sNGUpKTsKPiArICAgICAgICB9Cj4gICNlbmRpZgo+ICAgICAg fQo+IAo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2VtdWxhdGUuaAo+ICsrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvaHZtL2VtdWxhdGUuaAo+IEBAIC05OCw2ICs5OCwxMyBAQCBpbnQg aHZtZW11bF9kb19waW9fYnVmZmVyKHVpbnQxNl90IHBvcnQsCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDhfdCBkaXIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAq YnVmZmVyKTsKPiAKPiArc3RydWN0IGh2bWVtdWxfY2FjaGU7Cj4gK2Jvb2wgaHZtZW11bF9yZWFk X2NhY2hlKGNvbnN0IHN0cnVjdCBodm1lbXVsX2NhY2hlICosIHBhZGRyX3QgZ3BhLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwsIHZvaWQgKmJ1ZmZlciwgdW5z aWduZWQgaW50IHNpemUpOwo+ICt2b2lkIGh2bWVtdWxfd3JpdGVfY2FjaGUoc3RydWN0IGh2bWVt dWxfY2FjaGUgKiwgcGFkZHJfdCBncGEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgbGV2ZWwsIGNvbnN0IHZvaWQgKmJ1ZmZlciwKPiArICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBzaXplKTsKPiArCj4gIHZvaWQgaHZtX2R1bXBfZW11bGF0aW9u X3N0YXRlKGNvbnN0IGNoYXIgKmxvZ2x2bCwgY29uc3QgY2hhciAqcHJlZml4LAo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9j dHh0LCBpbnQgcmMpOwo+IAo+IAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=