From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH 12/19] xen: credit2: use non-atomic cpumask and bit operations Date: Thu, 7 Jul 2016 10:45:19 +0100 Message-ID: References: <146620492155.29766.10321123657058307698.stgit@Solace.fritz.box> <146620516399.29766.4671178664524331349.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bL5s5-0004nz-FO for xen-devel@lists.xenproject.org; Thu, 07 Jul 2016 09:45:25 +0000 In-Reply-To: <146620516399.29766.4671178664524331349.stgit@Solace.fritz.box> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Dario Faggioli Cc: xen-devel , Anshul Makkar , David Vrabel List-Id: xen-devel@lists.xenproject.org T24gU2F0LCBKdW4gMTgsIDIwMTYgYXQgMTI6MTIgQU0sIERhcmlvIEZhZ2dpb2xpCjxkYXJpby5m YWdnaW9saUBjaXRyaXguY29tPiB3cm90ZToKPiBhcyBhbGwgdGhlIGFjY2Vzc2VzIHRvIGJvdGgg dGhlIG1hc2tzIGFuZCB0aGUgZmxhZ3MgYXJlCj4gc2VyaWFsaXplZCBieSB0aGUgcnVucXVldWVz IGxvY2tzIGFscmVhZHkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBEYXJpbyBGYWdnaW9saSA8ZGFyaW8u ZmFnZ2lvbGlAY2l0cml4LmNvbT4KCkFja2VkLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVu bGFwQGNpdHJpeC5jb20+CgpUaGlzIG9uZSBkb2Vzbid0IGFwcGx5IHdpdGhvdXQgMTAvMTksIHNv IHdpbGwgaGF2ZSB0byBiZSByZXNlbnQuCgogLUdlb3JnZQoKPiAtLS0KPiBDYzogR2VvcmdlIER1 bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPgo+IENjOiBBbnNodWwgTWFra2FyIDxhbnNo dWwubWFra2FyQGNpdHJpeC5jb20+Cj4gQ2M6IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNp dHJpeC5jb20+Cj4gLS0tCj4gIHhlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jIHwgICA0OCArKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdl ZCwgMjQgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwo+IGlu ZGV4IDIzMGE1MTIuLjJjYTYzYWUgMTAwNjQ0Cj4gLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVk aXQyLmMKPiArKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwo+IEBAIC05MDksNyArOTA5 LDcgQEAgcnVucV90aWNrbGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgY3Nj aGVkMl92Y3B1ICpuZXcsIHNfdGltZV90IG5vdykKPiAgICAgICAgICAgICAgICAgICAgc2l6ZW9m KGQpLAo+ICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhciAqKSZkKTsKPiAgICAgIH0K PiAtICAgIGNwdW1hc2tfc2V0X2NwdShpcGlkLCAmcnFkLT50aWNrbGVkKTsKPiArICAgIF9fY3B1 bWFza19zZXRfY3B1KGlwaWQsICZycWQtPnRpY2tsZWQpOwo+ICAgICAgY3B1X3JhaXNlX3NvZnRp cnEoaXBpZCwgU0NIRURVTEVfU09GVElSUSk7Cj4gIH0KPgo+IEBAIC0xMjc3LDcgKzEyNzcsNyBA QCBjc2NoZWQyX3ZjcHVfc2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qg dmNwdSAqdmMpCj4gICAgICAgICAgX19ydW5xX3JlbW92ZShzdmMpOwo+ICAgICAgfQo+ICAgICAg ZWxzZSBpZiAoIHN2Yy0+ZmxhZ3MgJiBDU0ZMQUdfZGVsYXllZF9ydW5xX2FkZCApCj4gLSAgICAg ICAgY2xlYXJfYml0KF9fQ1NGTEFHX2RlbGF5ZWRfcnVucV9hZGQsICZzdmMtPmZsYWdzKTsKPiAr ICAgICAgICBfX2NsZWFyX2JpdChfX0NTRkxBR19kZWxheWVkX3J1bnFfYWRkLCAmc3ZjLT5mbGFn cyk7Cj4gIH0KPgo+ICBzdGF0aWMgdm9pZAo+IEBAIC0xMzE0LDcgKzEzMTQsNyBAQCBjc2NoZWQy X3ZjcHVfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykK PiAgICAgICAqIGFmdGVyIHRoZSBjb250ZXh0IGhhcyBiZWVuIHNhdmVkLiAqLwo+ICAgICAgaWYg KCB1bmxpa2VseShzdmMtPmZsYWdzICYgQ1NGTEFHX3NjaGVkdWxlZCkgKQo+ICAgICAgewo+IC0g ICAgICAgIHNldF9iaXQoX19DU0ZMQUdfZGVsYXllZF9ydW5xX2FkZCwgJnN2Yy0+ZmxhZ3MpOwo+ ICsgICAgICAgIF9fc2V0X2JpdChfX0NTRkxBR19kZWxheWVkX3J1bnFfYWRkLCAmc3ZjLT5mbGFn cyk7Cj4gICAgICAgICAgZ290byBvdXQ7Cj4gICAgICB9Cj4KPiBAQCAtMTM0Nyw3ICsxMzQ3LDcg QEAgY3NjaGVkMl9jb250ZXh0X3NhdmVkKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IHZjcHUgKnZjKQo+ICAgICAgQlVHX09OKCAhaXNfaWRsZV92Y3B1KHZjKSAmJiBzdmMtPnJx ZCAhPSBSUUQob3BzLCB2Yy0+cHJvY2Vzc29yKSk7Cj4KPiAgICAgIC8qIFRoaXMgdmNwdSBpcyBu b3cgZWxpZ2libGUgdG8gYmUgcHV0IG9uIHRoZSBydW5xdWV1ZSBhZ2FpbiAqLwo+IC0gICAgY2xl YXJfYml0KF9fQ1NGTEFHX3NjaGVkdWxlZCwgJnN2Yy0+ZmxhZ3MpOwo+ICsgICAgX19jbGVhcl9i aXQoX19DU0ZMQUdfc2NoZWR1bGVkLCAmc3ZjLT5mbGFncyk7Cj4KPiAgICAgIC8qIElmIHNvbWVv bmUgd2FudHMgaXQgb24gdGhlIHJ1bnF1ZXVlLCBwdXQgaXQgdGhlcmUuICovCj4gICAgICAvKgo+ IEBAIC0xMzU3LDcgKzEzNTcsNyBAQCBjc2NoZWQyX2NvbnRleHRfc2F2ZWQoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCj4gICAgICAgKiBpdCBzZWVtcyBhIGJp dCBwb2ludGxlc3M7IGVzcGVjaWFsbHkgYXMgd2UgaGF2ZSBwbGVudHkgb2YKPiAgICAgICAqIGJp dHMgZnJlZS4KPiAgICAgICAqLwo+IC0gICAgaWYgKCB0ZXN0X2FuZF9jbGVhcl9iaXQoX19DU0ZM QUdfZGVsYXllZF9ydW5xX2FkZCwgJnN2Yy0+ZmxhZ3MpCj4gKyAgICBpZiAoIF9fdGVzdF9hbmRf Y2xlYXJfYml0KF9fQ1NGTEFHX2RlbGF5ZWRfcnVucV9hZGQsICZzdmMtPmZsYWdzKQo+ICAgICAg ICAgICAmJiBsaWtlbHkodmNwdV9ydW5uYWJsZSh2YykpICkKPiAgICAgIHsKPiAgICAgICAgICBC VUdfT04oX192Y3B1X29uX3J1bnEoc3ZjKSk7Cj4gQEAgLTEzOTksMTAgKzEzOTksMTAgQEAgY3Nj aGVkMl9jcHVfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2 YykKPgo+ICAgICAgaWYgKCAhc3Bpbl90cnlsb2NrKCZwcnYtPmxvY2spICkKPiAgICAgIHsKPiAt ICAgICAgICBpZiAoIHRlc3RfYW5kX2NsZWFyX2JpdChfX0NTRkxBR19ydW5xX21pZ3JhdGVfcmVx dWVzdCwgJnN2Yy0+ZmxhZ3MpICkKPiArICAgICAgICBpZiAoIF9fdGVzdF9hbmRfY2xlYXJfYml0 KF9fQ1NGTEFHX3J1bnFfbWlncmF0ZV9yZXF1ZXN0LCAmc3ZjLT5mbGFncykgKQo+ICAgICAgICAg IHsKPiAgICAgICAgICAgICAgZDJwcmludGsoIiVwdiAtXG4iLCBzdmMtPnZjcHUpOwo+IC0gICAg ICAgICAgICBjbGVhcl9iaXQoX19DU0ZMQUdfcnVucV9taWdyYXRlX3JlcXVlc3QsICZzdmMtPmZs YWdzKTsKPiArICAgICAgICAgICAgX19jbGVhcl9iaXQoX19DU0ZMQUdfcnVucV9taWdyYXRlX3Jl cXVlc3QsICZzdmMtPmZsYWdzKTsKPiAgICAgICAgICB9Cj4KPiAgICAgICAgICByZXR1cm4gZ2V0 X2ZhbGxiYWNrX2NwdShzdmMpOwo+IEBAIC0xNDEwLDcgKzE0MTAsNyBAQCBjc2NoZWQyX2NwdV9w aWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQo+Cj4gICAg ICAvKiBGaXJzdCBjaGVjayB0byBzZWUgaWYgd2UncmUgaGVyZSBiZWNhdXNlIHNvbWVvbmUgZWxz ZSBzdWdnZXN0ZWQgYSBwbGFjZQo+ICAgICAgICogZm9yIHVzIHRvIG1vdmUuICovCj4gLSAgICBp ZiAoIHRlc3RfYW5kX2NsZWFyX2JpdChfX0NTRkxBR19ydW5xX21pZ3JhdGVfcmVxdWVzdCwgJnN2 Yy0+ZmxhZ3MpICkKPiArICAgIGlmICggX190ZXN0X2FuZF9jbGVhcl9iaXQoX19DU0ZMQUdfcnVu cV9taWdyYXRlX3JlcXVlc3QsICZzdmMtPmZsYWdzKSApCj4gICAgICB7Cj4gICAgICAgICAgaWYg KCB1bmxpa2VseShzdmMtPm1pZ3JhdGVfcnFkLT5pZCA8IDApICkKPiAgICAgICAgICB7Cj4gQEAg LTE1NDUsOCArMTU0NSw4IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGUoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqb3BzLAo+ICAgICAgICAgIGQycHJpbnRrKCIlcHYgJWQtJWQgYVxuIiwgc3ZjLT52Y3B1 LCBzdmMtPnJxZC0+aWQsIHRycWQtPmlkKTsKPiAgICAgICAgICAvKiBJdCdzIHJ1bm5pbmc7IG1h cmsgaXQgdG8gbWlncmF0ZS4gKi8KPiAgICAgICAgICBzdmMtPm1pZ3JhdGVfcnFkID0gdHJxZDsK PiAtICAgICAgICBzZXRfYml0KF9WUEZfbWlncmF0aW5nLCAmc3ZjLT52Y3B1LT5wYXVzZV9mbGFn cyk7Cj4gLSAgICAgICAgc2V0X2JpdChfX0NTRkxBR19ydW5xX21pZ3JhdGVfcmVxdWVzdCwgJnN2 Yy0+ZmxhZ3MpOwo+ICsgICAgICAgIF9fc2V0X2JpdChfVlBGX21pZ3JhdGluZywgJnN2Yy0+dmNw dS0+cGF1c2VfZmxhZ3MpOwo+ICsgICAgICAgIF9fc2V0X2JpdChfX0NTRkxBR19ydW5xX21pZ3Jh dGVfcmVxdWVzdCwgJnN2Yy0+ZmxhZ3MpOwo+ICAgICAgICAgIFNDSEVEX1NUQVRfQ1JBTksobWln cmF0ZV9yZXF1ZXN0ZWQpOwo+ICAgICAgfQo+ICAgICAgZWxzZQo+IEBAIC0yMDc5LDcgKzIwNzks NyBAQCBjc2NoZWQyX3NjaGVkdWxlKAo+Cj4gICAgICAvKiBDbGVhciAidGlja2xlZCIgYml0IG5v dyB0aGF0IHdlJ3ZlIGJlZW4gc2NoZWR1bGVkICovCj4gICAgICBpZiAoIGNwdW1hc2tfdGVzdF9j cHUoY3B1LCAmcnFkLT50aWNrbGVkKSApCj4gLSAgICAgICAgY3B1bWFza19jbGVhcl9jcHUoY3B1 LCAmcnFkLT50aWNrbGVkKTsKPiArICAgICAgICBfX2NwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJnJx ZC0+dGlja2xlZCk7Cj4KPiAgICAgIC8qIFVwZGF0ZSBjcmVkaXRzICovCj4gICAgICBidXJuX2Ny ZWRpdHMocnFkLCBzY3Vyciwgbm93KTsKPiBAQCAtMjExNSw3ICsyMTE1LDcgQEAgY3NjaGVkMl9z Y2hlZHVsZSgKPiAgICAgIGlmICggc25leHQgIT0gc2N1cnIKPiAgICAgICAgICAgJiYgIWlzX2lk bGVfdmNwdShzY3Vyci0+dmNwdSkKPiAgICAgICAgICAgJiYgdmNwdV9ydW5uYWJsZShjdXJyZW50 KSApCj4gLSAgICAgICAgc2V0X2JpdChfX0NTRkxBR19kZWxheWVkX3J1bnFfYWRkLCAmc2N1cnIt PmZsYWdzKTsKPiArICAgICAgICBfX3NldF9iaXQoX19DU0ZMQUdfZGVsYXllZF9ydW5xX2FkZCwg JnNjdXJyLT5mbGFncyk7Cj4KPiAgICAgIHJldC5taWdyYXRlZCA9IDA7Cj4KPiBAQCAtMjEzNCw3 ICsyMTM0LDcgQEAgY3NjaGVkMl9zY2hlZHVsZSgKPiAgICAgICAgICAgICAgICAgICAgICAgICBj cHUsIHNuZXh0LT52Y3B1LCBzbmV4dC0+dmNwdS0+cHJvY2Vzc29yLCBzY3Vyci0+dmNwdSk7Cj4g ICAgICAgICAgICAgICAgICBCVUcoKTsKPiAgICAgICAgICAgICAgfQo+IC0gICAgICAgICAgICBz ZXRfYml0KF9fQ1NGTEFHX3NjaGVkdWxlZCwgJnNuZXh0LT5mbGFncyk7Cj4gKyAgICAgICAgICAg IF9fc2V0X2JpdChfX0NTRkxBR19zY2hlZHVsZWQsICZzbmV4dC0+ZmxhZ3MpOwo+ICAgICAgICAg IH0KPgo+ICAgICAgICAgIC8qIENoZWNrIGZvciB0aGUgcmVzZXQgY29uZGl0aW9uICovCj4gQEAg LTIxNDYsNyArMjE0Niw3IEBAIGNzY2hlZDJfc2NoZWR1bGUoCj4KPiAgICAgICAgICAvKiBDbGVh ciB0aGUgaWRsZSBtYXNrIGlmIG5lY2Vzc2FyeSAqLwo+ICAgICAgICAgIGlmICggY3B1bWFza190 ZXN0X2NwdShjcHUsICZycWQtPmlkbGUpICkKPiAtICAgICAgICAgICAgY3B1bWFza19jbGVhcl9j cHUoY3B1LCAmcnFkLT5pZGxlKTsKPiArICAgICAgICAgICAgX19jcHVtYXNrX2NsZWFyX2NwdShj cHUsICZycWQtPmlkbGUpOwo+Cj4gICAgICAgICAgc25leHQtPnN0YXJ0X3RpbWUgPSBub3c7Cj4K PiBAQCAtMjE2OCwxMCArMjE2OCwxMCBAQCBjc2NoZWQyX3NjaGVkdWxlKAo+ICAgICAgICAgIGlm ICggdGFza2xldF93b3JrX3NjaGVkdWxlZCApCj4gICAgICAgICAgewo+ICAgICAgICAgICAgICBp ZiAoIGNwdW1hc2tfdGVzdF9jcHUoY3B1LCAmcnFkLT5pZGxlKSApCj4gLSAgICAgICAgICAgICAg ICBjcHVtYXNrX2NsZWFyX2NwdShjcHUsICZycWQtPmlkbGUpOwo+ICsgICAgICAgICAgICAgICAg X19jcHVtYXNrX2NsZWFyX2NwdShjcHUsICZycWQtPmlkbGUpOwo+ICAgICAgICAgIH0KPiAgICAg ICAgICBlbHNlIGlmICggIWNwdW1hc2tfdGVzdF9jcHUoY3B1LCAmcnFkLT5pZGxlKSApCj4gLSAg ICAgICAgICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZycWQtPmlkbGUpOwo+ICsgICAgICAgICAg ICBfX2NwdW1hc2tfc2V0X2NwdShjcHUsICZycWQtPmlkbGUpOwo+ICAgICAgICAgIC8qIE1ha2Ug c3VyZSBhdmdsb2FkIGdldHMgdXBkYXRlZCBwZXJpb2RpY2FsbHkgZXZlbgo+ICAgICAgICAgICAq IGlmIHRoZXJlJ3Mgbm8gYWN0aXZpdHkgKi8KPiAgICAgICAgICB1cGRhdGVfbG9hZChvcHMsIHJx ZCwgTlVMTCwgMCwgbm93KTsKPiBAQCAtMjM0Nyw3ICsyMzQ3LDcgQEAgc3RhdGljIHZvaWQgYWN0 aXZhdGVfcnVucXVldWUoc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2LCBpbnQgcnFpKQo+ICAg ICAgSU5JVF9MSVNUX0hFQUQoJnJxZC0+cnVucSk7Cj4gICAgICBzcGluX2xvY2tfaW5pdCgmcnFk LT5sb2NrKTsKPgo+IC0gICAgY3B1bWFza19zZXRfY3B1KHJxaSwgJnBydi0+YWN0aXZlX3F1ZXVl cyk7Cj4gKyAgICBfX2NwdW1hc2tfc2V0X2NwdShycWksICZwcnYtPmFjdGl2ZV9xdWV1ZXMpOwo+ ICB9Cj4KPiAgc3RhdGljIHZvaWQgZGVhY3RpdmF0ZV9ydW5xdWV1ZShzdHJ1Y3QgY3NjaGVkMl9w cml2YXRlICpwcnYsIGludCBycWkpCj4gQEAgLTIzNjAsNyArMjM2MCw3IEBAIHN0YXRpYyB2b2lk IGRlYWN0aXZhdGVfcnVucXVldWUoc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2LCBpbnQgcnFp KQo+Cj4gICAgICBycWQtPmlkID0gLTE7Cj4KPiAtICAgIGNwdW1hc2tfY2xlYXJfY3B1KHJxaSwg JnBydi0+YWN0aXZlX3F1ZXVlcyk7Cj4gKyAgICBfX2NwdW1hc2tfY2xlYXJfY3B1KHJxaSwgJnBy di0+YWN0aXZlX3F1ZXVlcyk7Cj4gIH0KPgo+ICBzdGF0aWMgaW5saW5lIGJvb2xfdCBzYW1lX25v ZGUodW5zaWduZWQgaW50IGNwdWEsIHVuc2lnbmVkIGludCBjcHViKQo+IEBAIC0yNDQ5LDkgKzI0 NDksOSBAQCBpbml0X3BkYXRhKHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBydiwgdW5zaWduZWQg aW50IGNwdSkKPiAgICAgIC8qIFNldCB0aGUgcnVucXVldWUgbWFwICovCj4gICAgICBwcnYtPnJ1 bnFfbWFwW2NwdV0gPSBycWk7Cj4KPiAtICAgIGNwdW1hc2tfc2V0X2NwdShjcHUsICZycWQtPmlk bGUpOwo+IC0gICAgY3B1bWFza19zZXRfY3B1KGNwdSwgJnJxZC0+YWN0aXZlKTsKPiAtICAgIGNw dW1hc2tfc2V0X2NwdShjcHUsICZwcnYtPmluaXRpYWxpemVkKTsKPiArICAgIF9fY3B1bWFza19z ZXRfY3B1KGNwdSwgJnJxZC0+aWRsZSk7Cj4gKyAgICBfX2NwdW1hc2tfc2V0X2NwdShjcHUsICZy cWQtPmFjdGl2ZSk7Cj4gKyAgICBfX2NwdW1hc2tfc2V0X2NwdShjcHUsICZwcnYtPmluaXRpYWxp emVkKTsKPgo+ICAgICAgcmV0dXJuIHJxaTsKPiAgfQo+IEBAIC0yNTU2LDggKzI1NTYsOCBAQCBj c2NoZWQyX2RlaW5pdF9wZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHZvaWQgKnBj cHUsIGludCBjcHUpCj4KPiAgICAgIHByaW50aygiUmVtb3ZpbmcgY3B1ICVkIGZyb20gcnVucXVl dWUgJWRcbiIsIGNwdSwgcnFpKTsKPgo+IC0gICAgY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmcnFk LT5pZGxlKTsKPiAtICAgIGNwdW1hc2tfY2xlYXJfY3B1KGNwdSwgJnJxZC0+YWN0aXZlKTsKPiAr ICAgIF9fY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmcnFkLT5pZGxlKTsKPiArICAgIF9fY3B1bWFz a19jbGVhcl9jcHUoY3B1LCAmcnFkLT5hY3RpdmUpOwo+Cj4gICAgICBpZiAoIGNwdW1hc2tfZW1w dHkoJnJxZC0+YWN0aXZlKSApCj4gICAgICB7Cj4gQEAgLTI1NjcsNyArMjU2Nyw3IEBAIGNzY2hl ZDJfZGVpbml0X3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcGNwdSwg aW50IGNwdSkKPgo+ICAgICAgc3Bpbl91bmxvY2soJnJxZC0+bG9jayk7Cj4KPiAtICAgIGNwdW1h c2tfY2xlYXJfY3B1KGNwdSwgJnBydi0+aW5pdGlhbGl6ZWQpOwo+ICsgICAgX19jcHVtYXNrX2Ns ZWFyX2NwdShjcHUsICZwcnYtPmluaXRpYWxpemVkKTsKPgo+ICAgICAgc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7Cj4KPgo+Cj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Cj4gWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKPiBodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=