From mboxrd@z Thu Jan 1 00:00:00 1970 From: anshul makkar Subject: Re: [PATCH 05/24] xen: credit2: make tickling more deterministic Date: Wed, 31 Aug 2016 18:10:24 +0100 Message-ID: <57C70F80.80802@citrix.com> References: <147145358844.25877.7490417583264534196.stgit@Solace.fritz.box> <147145428827.25877.8612560340138019986.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 1bf91y-0001QF-T1 for xen-devel@lists.xenproject.org; Wed, 31 Aug 2016 17:10:31 +0000 In-Reply-To: <147145428827.25877.8612560340138019986.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 , xen-devel@lists.xenproject.org Cc: Andrew Cooper , George Dunlap , Jan Beulich List-Id: xen-devel@lists.xenproject.org T24gMTcvMDgvMTYgMTg6MTgsIERhcmlvIEZhZ2dpb2xpIHdyb3RlOgo+IFJpZ2h0IG5vdywgdGhl IGZvbGxvd2luZyBzY2VuYXJpbyBjYW4gb2NjdXJyOgo+ICAgLSB1cG9uIHZjcHUgdiB3YWtldXAs IHYgaXRzZWxmIGlzIHB1dCBpbiB0aGUgcnVucXVldWUsCj4gICAgIGFuZCBwY3B1IFggaXMgdGlj a2xlZDsKPiAgIC0gcGNwdSBZIHNjaGVkdWxlcyAoZm9yIHdoYXRldmVyIHJlYXNvbiksIHNlZXMg diBpbgo+ICAgICB0aGUgcnVucXVldWUgYW5kIHBpY2tzIGl0IHVwLgo+Cj4gVGhpcyBtYXkgc2Vl bSBvayAob3IgZXZlbiBhIGdvb2QgdGhpbmcpLCBidXQgaXQncyBub3QuCj4gSW4gZmFjdCwgaWYg cnVucV90aWNrbGUoKSBkZWNpZGVkIFggaXMgd2hlcmUgdiBzaG91bGQKPiBydW4sIGl0IGRpZCBp dCBmb3IgYSByZWFzb24gKGxvYWQgZGlzdHJpYnV0aW9uLCBTTVQKPiBzdXBwb3J0LCBjYWNoZSBo b3RuZXNzLCBhZmZpbml0eSwgZXRjKSwgYW5kIHdlIHJlYWxseQo+IHNob3VsZCB0cnkgYXMgaGFy ZCBhcyBwb3NzaWJsZSB0byBzdGljayB0byB0aGF0Lgo+Cj4gT2YgY291cnNlLCB3ZSBjYW4ndCBi ZSB0b28gc3RyaWN0LCBvciB3ZSByaXNrIGxlYXZpbmcKPiB2Y3B1cyBpbiB0aGUgcnVucXVldWUg d2hpbGUgdGhlcmUgaXMgYXZhaWxhYmxlIENQVQo+IGNhcGFjaXR5LiBTbywgd2Ugb25seSBsZWF2 ZSB2IGluIHJ1bnF1ZXVlIC0tZm9yIFggdG8KPiBwaWNrIGl0IHVwLS0gaWYgd2Ugc2VlIHRoYXQg WCBoYXMgYmVlbiB0aWNrbGVkIGFuZAo+IGhhcyBub3Qgc2NoZWR1bGVkIHlldCwgaS5lLiwgaXQg d2lsbCBoYXZlIGEgcmVhbCBjaGFuY2UKPiBvZiBhY3R1YWxseSBzZWxlY3QgYW5kIHNjaGVkdWxl IHYuCj4KPiBJZiB0aGF0IGlzIG5vdCB0aGUgY2FzZSwgd2Ugc2NoZWR1bGUgaXQgb24gWSAob3Is IGF0Cj4gbGVhc3QsIHdlIGNvbnNpZGVyIHRoYXQpLCBhcyBydW5uaW5nIHNvbWV3aGVyZSBub24t aWRlYWwKPiBpcyBiZXR0ZXIgdGhhbiBub3QgcnVubmluZyBhdCBhbGwuCj4KPiBUaGUgY29tbWl0 IGFsc28gYWRkcyBwZXJmb3JtYW5jZSBjb3VudGVycyBmb3IgZWFjaCBvZgo+IHRoZSBwb3NzaWJs ZSBzaXR1YXRpb25zLgo+Cj4gU2lnbmVkLW9mZi1ieTogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZh Z2dpb2xpQGNpdHJpeC5jb20+Cj4gLS0tCj4gQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5s YXBAY2l0cml4LmNvbT4KPiBDYzogQW5zaHVsIE1ha2thciA8YW5zaHVsLm1ha2thckBjaXRyaXgu Y29tPgo+IENjOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+Cj4gQ2M6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cj4gLS0tCj4gICB4ZW4vY29tbW9uL3Nj aGVkX2NyZWRpdDIuYyAgIHwgICA2NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0KPiAgIHhlbi9pbmNsdWRlL3hlbi9wZXJmY19kZWZuLmggfCAgICAzICsrCj4gICAy IGZpbGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4KPiBkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkX2Ny ZWRpdDIuYwo+IGluZGV4IDEyZGZkMjAuLmEzZDdiZWIgMTAwNjQ0Cj4gLS0tIGEveGVuL2NvbW1v bi9zY2hlZF9jcmVkaXQyLmMKPiArKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwo+IEBA IC01NCw2ICs1NCw3IEBACj4gICAjZGVmaW5lIFRSQ19DU0NIRUQyX0xPQURfQ0hFQ0sgICAgICAg VFJDX1NDSEVEX0NMQVNTX0VWVChDU0NIRUQyLCAxNikKPiAgICNkZWZpbmUgVFJDX0NTQ0hFRDJf TE9BRF9CQUxBTkNFICAgICBUUkNfU0NIRURfQ0xBU1NfRVZUKENTQ0hFRDIsIDE3KQo+ICAgI2Rl ZmluZSBUUkNfQ1NDSEVEMl9QSUNLRURfQ1BVICAgICAgIFRSQ19TQ0hFRF9DTEFTU19FVlQoQ1ND SEVEMiwgMTkpCj4gKyNkZWZpbmUgVFJDX0NTQ0hFRDJfUlVOUV9DQU5ESURBVEUgICBUUkNfU0NI RURfQ0xBU1NfRVZUKENTQ0hFRDIsIDIwKQo+Cj4gICAvKgo+ICAgICogV0FSTklORzogVGhpcyBp cyBzdGlsbCBpbiBhbiBleHBlcmltZW50YWwgcGhhc2UuICBTdGF0dXMgYW5kIHdvcmsgY2FuIGJl IGZvdW5kIGF0IHRoZQo+IEBAIC0zOTgsNiArMzk5LDcgQEAgc3RydWN0IGNzY2hlZDJfdmNwdSB7 Cj4gICAgICAgaW50IGNyZWRpdDsKPiAgICAgICBzX3RpbWVfdCBzdGFydF90aW1lOyAvKiBXaGVu IHdlIHdlcmUgc2NoZWR1bGVkICh1c2VkIGZvciBjcmVkaXQpICovCj4gICAgICAgdW5zaWduZWQg ZmxhZ3M7ICAgICAgLyogMTYgYml0cyBkb2Vzbid0IHNlZW0gdG8gcGxheSB3ZWxsIHdpdGggY2xl YXJfYml0KCkgKi8KPiArICAgIGludCB0aWNrbGVkX2NwdTsgICAgIC8qIGNwdSB0aWNrbGVkIGZv ciBwaWNraW5nIHVzIHVwICgtMSBpZiBub25lKSAqLwo+Cj4gICAgICAgLyogSW5kaXZpZHVhbCBj b250cmlidXRpb24gdG8gbG9hZCAqLwo+ICAgICAgIHNfdGltZV90IGxvYWRfbGFzdF91cGRhdGU7 ICAvKiBMYXN0IHRpbWUgYXZlcmFnZSB3YXMgdXBkYXRlZCAqLwo+IEBAIC0xMDQ5LDYgKzEwNTEs MTAgQEAgcnVucV90aWNrbGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgY3Nj aGVkMl92Y3B1ICpuZXcsIHNfdGltZV90IG5vdykKPiAgICAgICBfX2NwdW1hc2tfc2V0X2NwdShp cGlkLCAmcnFkLT50aWNrbGVkKTsKPiAgICAgICBzbXRfaWRsZV9tYXNrX2NsZWFyKGlwaWQsICZy cWQtPnNtdF9pZGxlKTsKPiAgICAgICBjcHVfcmFpc2Vfc29mdGlycShpcGlkLCBTQ0hFRFVMRV9T T0ZUSVJRKTsKPiArCj4gKyAgICBpZiAoIHVubGlrZWx5KG5ldy0+dGlja2xlZF9jcHUgIT0gLTEp ICkKPiArICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHRpY2tsZWRfY3B1X292ZXJ3cml0dGVuKTsK PiArICAgIG5ldy0+dGlja2xlZF9jcHUgPSBpcGlkOwo+ICAgfQo+Cj4gICAvKgo+IEBAIC0xMjY2 LDYgKzEyNzIsNyBAQCBjc2NoZWQyX2FsbG9jX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Km9wcywgc3RydWN0IHZjcHUgKnZjLCB2b2lkICpkZCkKPiAgICAgICAgICAgQVNTRVJUKHN2Yy0+ c2RvbSAhPSBOVUxMKTsKPiAgICAgICAgICAgc3ZjLT5jcmVkaXQgPSBDU0NIRUQyX0NSRURJVF9J TklUOwo+ICAgICAgICAgICBzdmMtPndlaWdodCA9IHN2Yy0+c2RvbS0+d2VpZ2h0Owo+ICsgICAg ICAgIHN2Yy0+dGlja2xlZF9jcHUgPSAtMTsKPiAgICAgICAgICAgLyogU3RhcnRpbmcgbG9hZCBv ZiA1MCUgKi8KPiAgICAgICAgICAgc3ZjLT5hdmdsb2FkID0gMVVMTCA8PCAoQ1NDSEVEMl9QUklW KG9wcyktPmxvYWRfcHJlY2lzaW9uX3NoaWZ0IC0gMSk7Cj4gICAgICAgICAgIHN2Yy0+bG9hZF9s YXN0X3VwZGF0ZSA9IE5PVygpID4+IExPQURBVkdfR1JBTlVMQVJJVFlfU0hJRlQ7Cj4gQEAgLTEy NzMsNiArMTI4MCw3IEBAIGNzY2hlZDJfYWxsb2NfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMsIHZvaWQgKmRkKQo+ICAgICAgIGVsc2UKPiAgICAgICB7 Cj4gICAgICAgICAgIEFTU0VSVChzdmMtPnNkb20gPT0gTlVMTCk7Cj4gKyAgICAgICAgc3ZjLT50 aWNrbGVkX2NwdSA9IHN2Yy0+dmNwdS0+dmNwdV9pZDsKSWYgSSB1bmRlcnN0b29kIGNvcnJlY3Rs eSwgdGlja2xlZF9jcHUgcmVmZXJzIHRvIHBjcHUgYW5kIG5vdCBhIHZjcHUuIApTYXZpbmcgdmNw dV9pZCBpbiB0aWNrbGVkX2NwdSBsb29rcyB3cm9uZy4KCj4gICAgICAgICAgIHN2Yy0+Y3JlZGl0 ID0gQ1NDSEVEMl9JRExFX0NSRURJVDsKPiAgICAgICAgICAgc3ZjLT53ZWlnaHQgPSAwOwo+ICAg ICAgIH0KPiBAQCAtMjIzMyw3ICsyMjQxLDggQEAgdm9pZCBfX2R1bXBfZXhlY3N0YXRlKHZvaWQg KnVudXNlZCk7Cj4gICBzdGF0aWMgc3RydWN0IGNzY2hlZDJfdmNwdSAqCj4gICBydW5xX2NhbmRp ZGF0ZShzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQsCj4gICAgICAgICAgICAgICAg ICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzY3VyciwKPiAtICAgICAgICAgICAgICAgaW50IGNwdSwg c190aW1lX3Qgbm93KQo+ICsgICAgICAgICAgICAgICBpbnQgY3B1LCBzX3RpbWVfdCBub3csCj4g KyAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqcG9zKQo+ICAgewo+ICAgICAgIHN0cnVjdCBs aXN0X2hlYWQgKml0ZXI7Cj4gICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc25leHQgPSBOVUxM Owo+IEBAIC0yMjYyLDEzICsyMjcxLDI5IEBAIHJ1bnFfY2FuZGlkYXRlKHN0cnVjdCBjc2NoZWQy X3J1bnF1ZXVlX2RhdGEgKnJxZCwKPgo+ICAgICAgICAgICAvKiBPbmx5IGNvbnNpZGVyIHZjcHVz IHRoYXQgYXJlIGFsbG93ZWQgdG8gcnVuIG9uIHRoaXMgcHJvY2Vzc29yLiAqLwo+ICAgICAgICAg ICBpZiAoICFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgc3ZjLT52Y3B1LT5jcHVfaGFyZF9hZmZpbml0 eSkgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgKCpwb3MpKys7Cj4gICAgICAgICAgICAg ICBjb250aW51ZTsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIC8qCj4gKyAgICAgICAgICog SWYgYSB2Y3B1IGlzIG1lYW50IHRvIGJlIHBpY2tlZCB1cCBieSBhbm90aGVyIHByb2Nlc3Nvciwg YW5kIHN1Y2gKPiArICAgICAgICAgKiBwcm9jZXNzb3IgaGFzIG5vdCBzY2hlZHVsZWQgeWV0LCBs ZWF2ZSBpdCBpbiB0aGUgcnVucXVldWUgZm9yIGhpbS4KPiArICAgICAgICAgKi8KPiArICAgICAg ICBpZiAoIHN2Yy0+dGlja2xlZF9jcHUgIT0gLTEgJiYgc3ZjLT50aWNrbGVkX2NwdSAhPSBjcHUg JiYKPiArICAgICAgICAgICAgIGNwdW1hc2tfdGVzdF9jcHUoc3ZjLT50aWNrbGVkX2NwdSwgJnJx ZC0+dGlja2xlZCkgKQo+ICsgICAgICAgIHsKPiArICAgICAgICAgICAgKCpwb3MpKys7Cj4gKyAg ICAgICAgICAgIFNDSEVEX1NUQVRfQ1JBTksoZGVmZXJyZWRfdG9fdGlja2xlZF9jcHUpOwo+ICsg ICAgICAgICAgICBjb250aW51ZTsKPiArICAgICAgICB9Cj4KPiAgICAgICAgICAgLyogSWYgdGhp cyBpcyBvbiBhIGRpZmZlcmVudCBwcm9jZXNzb3IsIGRvbid0IHB1bGwgaXQgdW5sZXNzCj4gICAg ICAgICAgICAqIGl0cyBjcmVkaXQgaXMgYXQgbGVhc3QgQ1NDSEVEMl9NSUdSQVRFX1JFU0lTVCBo aWdoZXIuICovCj4gICAgICAgICAgIGlmICggc3ZjLT52Y3B1LT5wcm9jZXNzb3IgIT0gY3B1Cj4g ICAgICAgICAgICAgICAgJiYgc25leHQtPmNyZWRpdCArIENTQ0hFRDJfTUlHUkFURV9SRVNJU1Qg PiBzdmMtPmNyZWRpdCApCj4gICAgICAgICAgIHsKPiArICAgICAgICAgICAgKCpwb3MpKys7Cj4g ICAgICAgICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKG1pZ3JhdGVfcmVzaXN0ZWQpOwo+ICAgICAg ICAgICAgICAgY29udGludWU7Cj4gICAgICAgICAgIH0KPiBAQCAtMjI4MCw5ICsyMzA1LDI2IEBA IHJ1bnFfY2FuZGlkYXRlKHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwKPgo+ICAg ICAgICAgICAvKiBJbiBhbnkgY2FzZSwgaWYgd2UgZ290IHRoaXMgZmFyLCBicmVhay4gKi8KPiAg ICAgICAgICAgYnJlYWs7Cj4gKyAgICB9Cj4KPiArICAgIGlmICggdW5saWtlbHkodGJfaW5pdF9k b25lKSApCj4gKyAgICB7Cj4gKyAgICAgICAgc3RydWN0IHsKPiArICAgICAgICAgICAgdW5zaWdu ZWQgdmNwdToxNiwgZG9tOjE2Owo+ICsgICAgICAgICAgICB1bnNpZ25lZCB0aWNrbGVkX2NwdSwg cG9zaXRpb247Cj4gKyAgICAgICAgfSBkOwo+ICsgICAgICAgIGQuZG9tID0gc25leHQtPnZjcHUt PmRvbWFpbi0+ZG9tYWluX2lkOwo+ICsgICAgICAgIGQudmNwdSA9IHNuZXh0LT52Y3B1LT52Y3B1 X2lkOwo+ICsgICAgICAgIGQudGlja2xlZF9jcHUgPSBzbmV4dC0+dGlja2xlZF9jcHU7Cj4gKyAg ICAgICAgZC5wb3NpdGlvbiA9ICpwb3M7Cj4gKyAgICAgICAgX190cmFjZV92YXIoVFJDX0NTQ0hF RDJfUlVOUV9DQU5ESURBVEUsIDEsCj4gKyAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGQpLAo+ ICsgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyICopJmQpOwo+ICAgICAgIH0KPgo+ ICsgICAgaWYgKCB1bmxpa2VseShzbmV4dC0+dGlja2xlZF9jcHUgIT0gLTEgJiYgc25leHQtPnRp Y2tsZWRfY3B1ICE9IGNwdSkgKQo+ICsgICAgICAgIFNDSEVEX1NUQVRfQ1JBTksodGlja2xlZF9j cHVfb3ZlcnJpZGRlbik7Cj4gKwo+ICAgICAgIHJldHVybiBzbmV4dDsKPiAgIH0KPgo+IEBAIC0y Mjk4LDYgKzIzNDAsNyBAQCBjc2NoZWQyX3NjaGVkdWxlKAo+ICAgICAgIHN0cnVjdCBjc2NoZWQy X3J1bnF1ZXVlX2RhdGEgKnJxZDsKPiAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogY29uc3Qg c2N1cnIgPSBDU0NIRUQyX1ZDUFUoY3VycmVudCk7Cj4gICAgICAgc3RydWN0IGNzY2hlZDJfdmNw dSAqc25leHQgPSBOVUxMOwo+ICsgICAgdW5zaWduZWQgaW50IHNuZXh0X3BvcyA9IDA7Cj4gICAg ICAgc3RydWN0IHRhc2tfc2xpY2UgcmV0Owo+Cj4gICAgICAgU0NIRURfU1RBVF9DUkFOSyhzY2hl ZHVsZSk7Cj4gQEAgLTIzNDcsNyArMjM5MCw3IEBAIGNzY2hlZDJfc2NoZWR1bGUoCj4gICAgICAg ICAgIHNuZXh0ID0gQ1NDSEVEMl9WQ1BVKGlkbGVfdmNwdVtjcHVdKTsKPiAgICAgICB9Cj4gICAg ICAgZWxzZQo+IC0gICAgICAgIHNuZXh0PXJ1bnFfY2FuZGlkYXRlKHJxZCwgc2N1cnIsIGNwdSwg bm93KTsKPiArICAgICAgICBzbmV4dCA9IHJ1bnFfY2FuZGlkYXRlKHJxZCwgc2N1cnIsIGNwdSwg bm93LCAmc25leHRfcG9zKTsKPgo+ICAgICAgIC8qIElmIHN3aXRjaGluZyBmcm9tIGEgbm9uLWlk bGUgcnVubmFibGUgdmNwdSwgcHV0IGl0Cj4gICAgICAgICogYmFjayBvbiB0aGUgcnVucXVldWUu ICovCj4gQEAgLTIzNzEsOCArMjQxNCwyMSBAQCBjc2NoZWQyX3NjaGVkdWxlKAo+ICAgICAgICAg ICAgICAgX19zZXRfYml0KF9fQ1NGTEFHX3NjaGVkdWxlZCwgJnNuZXh0LT5mbGFncyk7Cj4gICAg ICAgICAgIH0KPgo+IC0gICAgICAgIC8qIENoZWNrIGZvciB0aGUgcmVzZXQgY29uZGl0aW9uICov Cj4gLSAgICAgICAgaWYgKCBzbmV4dC0+Y3JlZGl0IDw9IENTQ0hFRDJfQ1JFRElUX1JFU0VUICkK PiArICAgICAgICAvKgo+ICsgICAgICAgICAqIFRoZSByZXNldCBjb25kaXRpb24gaXMgImhhcyBh IHNjaGVkdWxlciBlcG9jaCBjb21lIHRvIGFuIGVuZD8iLgo+ICsgICAgICAgICAqIFRoZSB3YXkg dGhpcyBpcyBlbmZvcmNlZCBpcyBjaGVja2luZyB3aGV0aGVyIHRoZSB2Y3B1IGF0IHRoZSB0b3AK PiArICAgICAgICAgKiBvZiB0aGUgcnVucXVldWUgaGFzIG5lZ2F0aXZlIGNyZWRpdHMuIFRoaXMg bWVhbnMgdGhlIGVwb2NocyBoYXZlCj4gKyAgICAgICAgICogdmFyaWFibGUgbGVuZ2h0LCBhcyBp biBvbmUgZXBvY2ggZXhwb3JlcyB3aGVuOgo+ICsgICAgICAgICAqICAxKSB0aGUgdmNwdSBhdCB0 aGUgdG9wIG9mIHRoZSBydW5xdWV1ZSBoYXMgZXhlY3V0ZWQgZm9yCj4gKyAgICAgICAgICogICAg IGFyb3VuZCAxMCBtcyAod2l0aCBkZWZhdWx0IHBhcmFtZXRlcnMpOwo+ICsgICAgICAgICAqICAy KSBubyBvdGhlciB2Y3B1IHdpdGggaGlnaGVyIGNyZWRpdHMgd2FudHMgdG8gcnVuLgo+ICsgICAg ICAgICAqCj4gKyAgICAgICAgICogSGVyZSwgd2hlcmUgd2Ugd2FudCB0byBjaGVjayBmb3IgcmVz ZXQsIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoZQo+ICsgICAgICAgICAqIHByb3BlciB2Y3B1IGlz IGJlaW5nIHVzZWQuIEluIGZhY3QsIHJ1bnF1ZXVlX2NhbmRpZGF0ZSgpIG1heSBoYXZlCj4gKyAg ICAgICAgICogbm90IHJldHVybmVkIHRoZSBmaXJzdCB2Y3B1IGluIHRoZSBydW5xdWV1ZSwgZm9y IHZhcmlvdXMgcmVhc29ucwo+ICsgICAgICAgICAqIChlLmcuLCBhZmZpbml0eSkuIE9ubHkgdHJp Z2dlciBhIHJlc2V0IHdoZW4gaXQgZG9lcy4KPiArICAgICAgICAgKi8KPiArICAgICAgICBpZiAo IHNuZXh0X3BvcyA9PSAwICYmIHNuZXh0LT5jcmVkaXQgPD0gQ1NDSEVEMl9DUkVESVRfUkVTRVQg KQo+ICAgICAgICAgICB7Cj4gICAgICAgICAgICAgICByZXNldF9jcmVkaXQob3BzLCBjcHUsIG5v dywgc25leHQpOwo+ICAgICAgICAgICAgICAgYmFsYW5jZV9sb2FkKG9wcywgY3B1LCBub3cpOwo+ IEBAIC0yMzg2LDYgKzI0NDIsNyBAQCBjc2NoZWQyX3NjaGVkdWxlKAo+ICAgICAgICAgICB9Cj4K PiAgICAgICAgICAgc25leHQtPnN0YXJ0X3RpbWUgPSBub3c7Cj4gKyAgICAgICAgc25leHQtPnRp Y2tsZWRfY3B1ID0gLTE7Cj4KPiAgICAgICAgICAgLyogU2FmZSBiZWNhdXNlIGxvY2sgZm9yIG9s ZCBwcm9jZXNzb3IgaXMgaGVsZCAqLwo+ICAgICAgICAgICBpZiAoIHNuZXh0LT52Y3B1LT5wcm9j ZXNzb3IgIT0gY3B1ICkKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3BlcmZjX2RlZm4u aCBiL3hlbi9pbmNsdWRlL3hlbi9wZXJmY19kZWZuLmgKPiBpbmRleCBhMzM2YzcxLi40YTgzNWI4 IDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9wZXJmY19kZWZuLmgKPiArKysgYi94ZW4v aW5jbHVkZS94ZW4vcGVyZmNfZGVmbi5oCj4gQEAgLTY2LDYgKzY2LDkgQEAgUEVSRkNPVU5URVIo cnVudGltZV9tYXhfdGltZXIsICAgICAgImNzY2hlZDI6IHJ1bnRpbWVfbWF4X3RpbWVyIikKPiAg IFBFUkZDT1VOVEVSKG1pZ3JhdGVkLCAgICAgICAgICAgICAgICJjc2NoZWQyOiBtaWdyYXRlZCIp Cj4gICBQRVJGQ09VTlRFUihtaWdyYXRlX3Jlc2lzdGVkLCAgICAgICAiY3NjaGVkMjogbWlncmF0 ZV9yZXNpc3RlZCIpCj4gICBQRVJGQ09VTlRFUihjcmVkaXRfcmVzZXQsICAgICAgICAgICAiY3Nj aGVkMjogY3JlZGl0X3Jlc2V0IikKPiArUEVSRkNPVU5URVIoZGVmZXJyZWRfdG9fdGlja2xlZF9j cHUsImNzY2hlZDI6IGRlZmVycmVkX3RvX3RpY2tsZWRfY3B1IikKPiArUEVSRkNPVU5URVIodGlj a2xlZF9jcHVfb3ZlcndyaXR0ZW4sImNzY2hlZDI6IHRpY2tsZWRfY3B1X292ZXJ3cml0dGVuIikK PiArUEVSRkNPVU5URVIodGlja2xlZF9jcHVfb3ZlcnJpZGRlbiwgImNzY2hlZDI6IHRpY2tsZWRf Y3B1X292ZXJyaWRkZW4iKQo+Cj4gICBQRVJGQ09VTlRFUihuZWVkX2ZsdXNoX3RsYl9mbHVzaCwg ICAiUEdfbmVlZF9mbHVzaCB0bGIgZmx1c2hlcyIpCj4KPkFuc2h1bAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=