From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH 1/4] xen: credit2: implement utilization cap Date: Tue, 25 Jul 2017 16:08:44 +0100 Message-ID: <18caea27-2d72-6e93-96ca-8a4a0a4ee614@citrix.com> References: <149692186557.9605.11625777539060264052.stgit@Solace.fritz.box> <149692372627.9605.8252407697848997058.stgit@Solace.fritz.box> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1da1Sp-00041A-GI for xen-devel@lists.xenproject.org; Tue, 25 Jul 2017 15:09:35 +0000 In-Reply-To: <149692372627.9605.8252407697848997058.stgit@Solace.fritz.box> Content-Language: en-US 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: Wei Liu , George Dunlap , Andrew Cooper , Anshul Makkar , Ian Jackson , Jan Beulich List-Id: xen-devel@lists.xenproject.org T24gMDYvMDgvMjAxNyAwMTowOCBQTSwgRGFyaW8gRmFnZ2lvbGkgd3JvdGU6Cj4gVGhpcyBjb21t aXQgaW1wbGVtZW50cyB0aGUgWGVuIHBhcnQgb2YgdGhlIGNhcCBtZWNoYW5pc20gZm9yCj4gQ3Jl ZGl0Mi4KPiAKPiBBIGNhcCBpcyBob3cgbXVjaCwgaW4gdGVybXMgb2YgJSBvZiBwaHlzaWNhbCBD UFUgdGltZSwgYSBkb21haW4KPiBjYW4gZXhlY3V0ZSBhdCBtb3N0Lgo+IAo+IEZvciBpbnN0YW5j ZSwgYSBkb21haW4gdGhhdCBtdXN0IG5vdCB1c2UgbW9yZSB0aGFuIDEvNCBvZiBvbmUKPiBwaHlz aWNhbCBDUFUsIG11c3QgaGF2ZSBhIGNhcCBvZiAyNSU7IG9uZSB0aGF0IG11c3Qgbm90IHVzZSBt b3JlCj4gdGhhbiAxKzEvMiBvZiBwaHlzaWNhbCBDUFUgdGltZSwgbXVzdCBiZSBnaXZlbiBhIGNh cCBvZiAxNTAlLgo+IAo+IENhcHMgYXJlIHBlciBkb21haW4sIHNvIGl0IGlzIGFsbCBhIGRvbWFp bidzIHZDUFVzLCBjdW11bGF0aXZlbHksCj4gdGhhdCB3aWxsIGJlIGZvcmNlZCB0byBleGVjdXRl IG5vIG1vcmUgdGhhbiB0aGUgZGVjaWRlZCBhbW91bnQuCj4gCj4gVGhpcyBpcyBpbXBsZW1lbnRl ZCBieSBnaXZpbmcgZWFjaCBkb21haW4gYSAnYnVkZ2V0JywgYW5kIHVzaW5nCj4gYSAocGVyLWRv bWFpbiBhZ2FpbikgcGVyaW9kaWMgdGltZXIuIFZhbHVlcyBvZiBidWRnZXQgYW5kICdwZXJpb2Qn Cj4gYXJlIGNob3NlbiBzbyB0aGF0IGJ1ZGdldC9wZXJpb2QgaXMgZXF1YWwgdG8gdGhlIGNhcCBp dHNlbGYuCj4gCj4gQnVkZ2V0IGlzIGJ1cm5lZCBieSB0aGUgZG9tYWluJ3MgdkNQVXMsIGluIGEg c2ltaWxhciB3YXkgdG8gaG93Cj4gY3JlZGl0cyBhcmUuCj4gCj4gV2hlbiBhIGRvbWFpbiBydW5z IG91dCBvZiBidWRnZXQsIGl0cyB2Q1BVcyBjYW4ndCBydW4gYW55IGxvbmdlci4KPiBUaGV5IGNh biBnYWluLCB3aGVuIHRoZSBidWRnZXQgaXMgcmVwbGVuaXNobWVudCBieSB0aGUgdGltZXIsIHdo aWNoCj4gZXZlbnQgaGFwcGVucyBvbmNlIGV2ZXJ5IHBlcmlvZC4KPiAKPiBCbG9ja2luZyB0aGUg dkNQVXMgYmVjYXVzZSBvZiBsYWNrIG9mIGJ1ZGdldCBoYXBwZW5zIGJ5Cj4gbWVhbnMgb2YgYSBu ZXcgKF9WUEZfcGFya2VkKSBwYXVzZSBmbGFnLCBzbyB0aGF0LCBlLmcuLAo+IHZjcHVfcnVubmFi bGUoKSBzdGlsbCB3b3Jrcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgaXMKPiBkb25lIGluIHNj aGVkX3J0ZHMuYywgYXMgb3Bwb3NlZCB0byB3aGF0IGhhcHBlbnMgaW4KPiBzY2hlZF9jcmVkaXQu Yywgd2hlcmUgdmNwdV9wYXVzZSgpIGFuZCB2Y3B1X3VucGF1c2UoKQo+ICh3aGljaCBtZWFucywg YW1vbmcgb3RoZXIgdGhpbmdzLCBtb3JlIG92ZXJoZWFkKS4KPiAKPiBOb3RlIHRoYXQgeGVuYWx5 emUgYW5kIHRvb2xzL3hlbnRyYWNlL2Zvcm1hdCBhcmUgYWxzbyBtb2RpZmllZCwKPiB0byBrZWVw IHRoZW0gdXBkYXRlZCB3aXRoIG9uZSBtb2RpZmllZCBldmVudC4KPiAKPiBTaWduZWQtb2ZmLWJ5 OiBEYXJpbyBGYWdnaW9saSA8ZGFyaW8uZmFnZ2lvbGlAY2l0cml4LmNvbT4KPiAtLS0KPiBDYzog R2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgo+IENjOiBBbnNodWwg TWFra2FyIDxhbnNodWwubWFra2FyQGNpdHJpeC5jb20+Cj4gQ2M6IEFuZHJldyBDb29wZXIgPGFu ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cj4gQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KPiBDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+Cj4gQ2M6 IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cj4gLS0tCj4gIHRvb2xzL3hlbnRyYWNlL2Zv cm1hdHMgICAgIHwgICAgMiAKPiAgdG9vbHMveGVudHJhY2UveGVuYWx5emUuYyAgfCAgIDEwICsK PiAgeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgfCAgNDcwICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tCj4gIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgIHwg ICAgMyAKPiAgNCBmaWxlcyBjaGFuZ2VkLCA0NDUgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnRyYWNlL2Zvcm1hdHMgYi90b29scy94ZW50 cmFjZS9mb3JtYXRzCj4gaW5kZXggOGIzMTc4MC4uMTQyYjBjZiAxMDA2NDQKPiAtLS0gYS90b29s cy94ZW50cmFjZS9mb3JtYXRzCj4gKysrIGIvdG9vbHMveGVudHJhY2UvZm9ybWF0cwo+IEBAIC01 MSw3ICs1MSw3IEBACj4gIAo+ICAweDAwMDIyMjAxICBDUFUlKGNwdSlkICAlKHRzYylkICgrJShy ZWx0c2MpOGQpICBjc2NoZWQyOnRpY2sKPiAgMHgwMDAyMjIwMiAgQ1BVJShjcHUpZCAgJSh0c2Mp ZCAoKyUocmVsdHNjKThkKSAgY3NjaGVkMjpydW5xX3BvcyAgICAgICBbIGRvbTp2Y3B1ID0gMHgl KDEpMDh4LCBwb3MgPSAlKDIpZF0KPiAtMHgwMDAyMjIwMyAgQ1BVJShjcHUpZCAgJSh0c2MpZCAo KyUocmVsdHNjKThkKSAgY3NjaGVkMjpjcmVkaXQgYnVybiAgICBbIGRvbTp2Y3B1ID0gMHglKDEp MDh4LCBjcmVkaXQgPSAlKDIpZCwgZGVsdGEgPSAlKDMpZCBdCj4gKzB4MDAwMjIyMDMgIENQVSUo Y3B1KWQgICUodHNjKWQgKCslKHJlbHRzYyk4ZCkgIGNzY2hlZDI6Y3JlZGl0IGJ1cm4gICAgWyBk b206dmNwdSA9IDB4JSgxKTA4eCwgY3JlZGl0ID0gJSgyKWQsIGJ1ZGdldCA9ICUoMylkLCBkZWx0 YSA9ICUoNClkIF0KPiAgMHgwMDAyMjIwNCAgQ1BVJShjcHUpZCAgJSh0c2MpZCAoKyUocmVsdHNj KThkKSAgY3NjaGVkMjpjcmVkaXRfYWRkCj4gIDB4MDAwMjIyMDUgIENQVSUoY3B1KWQgICUodHNj KWQgKCslKHJlbHRzYyk4ZCkgIGNzY2hlZDI6dGlja2xlX2NoZWNrICAgWyBkb206dmNwdSA9IDB4 JSgxKTA4eCwgY3JlZGl0ID0gJSgyKWQgXQo+ICAweDAwMDIyMjA2ICBDUFUlKGNwdSlkICAlKHRz YylkICgrJShyZWx0c2MpOGQpICBjc2NoZWQyOnRpY2tsZSAgICAgICAgIFsgY3B1ID0gJSgxKWQg XQo+IGRpZmYgLS1naXQgYS90b29scy94ZW50cmFjZS94ZW5hbHl6ZS5jIGIvdG9vbHMveGVudHJh Y2UveGVuYWx5emUuYwo+IGluZGV4IGZhNjA4YWQuLmMxNmMwMmQgMTAwNjQ0Cj4gLS0tIGEvdG9v bHMveGVudHJhY2UveGVuYWx5emUuYwo+ICsrKyBiL3Rvb2xzL3hlbnRyYWNlL3hlbmFseXplLmMK PiBAQCAtNzY4MCwxMiArNzY4MCwxNCBAQCB2b2lkIHNjaGVkX3Byb2Nlc3Moc3RydWN0IHBjcHVf aW5mbyAqcCkKPiAgICAgICAgICAgICAgaWYob3B0LmR1bXBfYWxsKSB7Cj4gICAgICAgICAgICAg ICAgICBzdHJ1Y3Qgewo+ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB2Y3B1aWQ6 MTYsIGRvbWlkOjE2Owo+IC0gICAgICAgICAgICAgICAgICAgIGludCBjcmVkaXQsIGRlbHRhOwo+ ICsgICAgICAgICAgICAgICAgICAgIGludCBjcmVkaXQsIGJ1ZGdldCwgZGVsdGE7Cj4gICAgICAg ICAgICAgICAgICB9ICpyID0gKHR5cGVvZihyKSlyaS0+ZDsKPiAgCj4gLSAgICAgICAgICAgICAg ICBwcmludGYoIiAlcyBjc2NoZWQyOmJ1cm5fY3JlZGl0cyBkJXV2JXUsIGNyZWRpdCA9ICVkLCBk ZWx0YSA9ICVkXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgICAgIHJpLT5kdW1wX2hlYWRlciwg ci0+ZG9taWQsIHItPnZjcHVpZCwKPiAtICAgICAgICAgICAgICAgICAgICAgICByLT5jcmVkaXQs IHItPmRlbHRhKTsKPiArICAgICAgICAgICAgICAgIHByaW50ZigiICVzIGNzY2hlZDI6YnVybl9j cmVkaXRzIGQldXYldSwgY3JlZGl0ID0gJWQsICIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg cmktPmR1bXBfaGVhZGVyLCByLT5kb21pZCwgci0+dmNwdWlkLCByLT5jcmVkaXQpOwo+ICsgICAg ICAgICAgICAgICAgaWYgKCByLT5idWRnZXQgIT0gSU5UX01JTiApCj4gKyAgICAgICAgICAgICAg ICAgICAgcHJpbnRmKCJidWRnZXQgPSAlZCwgIiwgci0+YnVkZ2V0KTsKPiArICAgICAgICAgICAg ICAgIHByaW50ZigiZGVsdGEgPSAlZFxuIiwgci0+ZGVsdGEpOwo+ICAgICAgICAgICAgICB9Cj4g ICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgIGNhc2UgVFJDX1NDSEVEX0NMQVNTX0VWVChD U0NIRUQyLCA1KTogLyogVElDS0xFX0NIRUNLICAgICAgKi8KPiBkaWZmIC0tZ2l0IGEveGVuL2Nv bW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwo+IGluZGV4 IDEyNjQxN2MuLmJhNGJmNGIgMTAwNjQ0Cj4gLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQy LmMKPiArKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwo+IEBAIC05Miw2ICs5Miw4MiBA QAo+ICAgKi8KPiAgCj4gIC8qCj4gKyAqIFV0aWxpemF0aW9uIGNhcDoKPiArICoKPiArICogU2V0 dGluZyBhbiBwQ1BVIHV0aWxpemF0aW9uIGNhcCBmb3IgYSBkb21haW4gbWVhbnMgdGhlIGZvbGxv d2luZzoKPiArICoKPiArICogLSBhIGRvbWFpbiBjYW4gaGF2ZSBhIGNhcCwgZXhwcmVzc2VkIGlu IHRlcm1zIG9mICUgb2YgcGh5c2ljYWwgQ1BVIHRpbWUuCj4gKyAqICAgQSBkb21haW4gdGhhdCBt dXN0IG5vdCB1c2UgbW9yZSB0aGFuIDEvNCBvZiBfb25lXyBwaHlzaWNhbCBDUFUsIHdpbGwKPiAr ICogICBiZSBnaXZlbiBhIGNhcCBvZiAyNSU7IGEgZG9tYWluIHRoYXQgbXVzdCBub3QgdXNlIG1v cmUgdGhhbiAxKzEvMiBvZgo+ICsgKiAgIHBoeXNpY2FsIENQVSB0aW1lLCB3aWxsIGJlIGdpdmVu IGEgY2FwIG9mIDE1MCU7Cj4gKyAqCj4gKyAqIC0gY2FwcyBhcmUgcGVyLWRvbWFpbiAobm90IHBl ci12Q1BVKS4gSWYgYSBkb21haW4gaGFzIG9ubHkgMSB2Q1BVLCBhbmQKPiArICogICBhIDQwJSBj YXAsIHRoYXQgb25lIHZDUFUgd2lsbCB1c2UgNDAlIG9mIG9uZSBwQ1BVLiBJZiBhIHNvbWFpbiBo YXMgNAo+ICsgKiAgIHZDUFVzLCBhbmQgYSAyMDAlIGNhcCwgYWxsIGl0cyA0IHZDUFVzIGFyZSBh bGxvd2VkIHRvIHJ1biBmb3IgKHRoZQo+ICsgKiAgIGVxdWl2YWxlbnQgb2YpIDEwMCUgdGltZSBv biAyIHBDUFVzLiBIb3cgbXVjaCBlYWNoIG9mIHRoZSB2YXJpb3VzIDQKPiArICogICB2Q1BVcyB3 aWxsIGdldCwgaXMgdW5zcGVjaWZpZWQgKHdpbGwgZGVwZW5kIG9uIHZhcmlvdXMgYXNwZWN0czog d29ya2xvYWQsCj4gKyAqICAgc3lzdGVtIGxvYWQsIGV0Yy4pLgo+ICsgKgo+ICsgKiBGb3IgaW1w bGVtZW50aW5nIHRoaXMsIHdlIHVzZSB0aGUgZm9sbG93aW5nIGFwcHJvYWNoOgo+ICsgKgo+ICsg KiAtIGVhY2ggZG9tYWluIGlzIGdpdmVuIGEgJ2J1ZGdldCcsIGFuIGVhY2ggZG9tYWluIGhhcyBh IHRpbWVyLCB3aGljaAo+ICsgKiAgIHJlcGxlbmlzaGVzIHRoZSBkb21haW4ncyBidWRnZXQgcGVy aW9kaWNhbGx5LiBUaGUgYnVkZ2V0IGlzIHRoZSBhbW91bnQKPiArICogICBvZiB0aW1lIHRoZSB2 Q1BVcyBvZiB0aGUgZG9tYWluIGNhbiB1c2UgZXZlcnkgJ3BlcmlvZCc7Cj4gKyAqCj4gKyAqIC0g dGhlIHBlcmlvZCBpcyBDU0NIRUQyX0JER1RfUkVQTF9QRVJJT0QsIGFuZCBpcyB0aGUgc2FtZSBm b3IgYWxsIGRvbWFpbnMKPiArICogICAoYnV0IGVhY2ggZG9tYWluIGhhcyBpdHMgb3duIHRpbWVy OyBzbyB0aGUgYWxsIGFyZSBwZXJpb2RpYyBieSB0aGUgc2FtZQo+ICsgKiAgIHBlcmlvZCwgYnV0 IHJlcGxlbmlzaG1lbnQgb2YgdGhlIGJ1ZGdldHMgb2YgdGhlIHZhcmlvdXMgZG9tYWlucywgYXQK PiArICogICBwZXJpb2RzIGJvdW5kYXJpZXMsIGFyZSBub3Qgc3luY2hyb25vdXMpOwo+ICsgKgo+ ICsgKiAtIHdoZW4gdkNQVXMgcnVuLCB0aGV5IGNvbnN1bWUgYnVkZ2V0LiBXaGVuIHRoZXkgZG9u J3QgcnVuLCB0aGV5IGRvbid0Cj4gKyAqICAgY29uc3VtZSBidWRnZXQuIElmIHRoZXJlIGlzIG5v IGJ1ZGdldCBsZWZ0IGZvciB0aGUgZG9tYWluLCBubyB2Q1BVIG9mCj4gKyAqICAgdGhhdCBkb21h aW4gY2FuIHJ1bi4gSWYgYSB2Q1BVIHRyaWVzIHRvIHJ1biBhbmQgZmluZHMgdGhhdCB0aGVyZSBp cyBubwo+ICsgKiAgIGJ1ZGdldCwgaXQgYmxvY2tzLgo+ICsgKiAgIEJ1ZGdldCBuZXZlciBleHBp cmVzLCBzbyBhdCB3aGF0ZXZlciB0aW1lIGEgdkNQVSB3YW50cyB0byBydW4sIGl0IGNhbgo+ICsg KiAgIGNoZWNrIHRoZSBkb21haW4ncyBidWRnZXQsIGFuZCBpZiB0aGVyZSBpcyBzb21lLCBpdCBj YW4gdXNlIGl0Lgo+ICsgKgo+ICsgKiAtIGJ1ZGdldCBpcyByZXBsZW5pc2hlZCB0byB0aGUgdG9w IG9mIHRoZSBjYXBhY2l0eSBmb3IgdGhlIGRvbWFpbiBvbmNlCj4gKyAqICAgcGVyIHBlcmlvZC4g RXZlbiBpZiB0aGVyZSB3YXMgc29tZSBsZWZ0b3ZlciBidWRnZXQgZnJvbSBwcmV2aW91cyBwZXJp b2QsCj4gKyAqICAgdGhvdWdoLCB0aGUgYnVkZ2V0IGFmdGVyIGEgcmVwbGVuaXNobWVudCB3aWxs IGFsd2F5cyBiZSBhdCBtb3N0IGVxdWFsCj4gKyAqICAgdG8gdGhlIHRvdGFsIGNhcGFjaWZ5IG9m IHRoZSBkb21haW4gKCd0b3RfYnVkZ2V0Jyk7Cj4gKyAqCj4gKyAqIC0gd2hlbiBhIGJ1ZGdldCBy ZXBsZW5pc2htZW50IG9jY3VycywgaWYgdGhlcmUgYXJlIHZDUFVzIHRoYXQgaGFkIGJlZW4KPiAr ICogICBibG9ja2VkIGJlY2F1c2Ugb2YgbGFjayBvZiBidWRnZXQsIHRoZXknbGwgYmUgdW5ibG9j a2VkLCBhbmQgdGhleSB3aWxsCj4gKyAqICAgKHBvdGVudGlhbGx5KSBiZSBhYmxlIHRvIHJ1biBh Z2Fpbi4KPiArICoKPiArICogRmluYWxseSwgc29tZSBldmVuIG1vcmUgaW1wbGVtZW50YXRpb24g cmVsYXRlZCBkZXRhaWw6Cj4gKyAqCj4gKyAqIC0gYnVkZ2V0IGlzIHN0b3JlZCBpbiBhIGRvbWFp bi13aWRlIHBvb2wuIHZDUFVzIG9mIHRoZSBkb21haW4gdGhhdCB3YW50Cj4gKyAqICAgdG8gcnVu IGdvIHRvIHN1Y2ggcG9vbCwgYW5kIGdydWIgc29tZS4gV2hlbiB0aGV5IGRvIHNvLCB0aGUgYW1v dW50Cj4gKyAqICAgdGhleSBncmFiYmVkIGlzIF9pbW1lZGlhdGVseV8gcmVtb3ZlZCBmcm9tIHRo ZSBwb29sLiBUaGlzIGhhcHBlbnMgaW4KPiArICogICB2Y3B1X3RyeV90b19nZXRfYnVkZ2V0KCk7 Cj4gKyAqCj4gKyAqIC0gd2hlbiB2Q1BVcyBzdG9wIHJ1bm5pbmcsIGlmIHRoZXkndmUgbm90IGNv bnN1bWVkIGFsbCB0aGUgYnVkZ2V0IHRoZXkKPiArICogICB0b29rLCB0aGUgbGVmdG92ZXIgaXMg cHV0IGJhY2sgaW4gdGhlIHBvb2wuIFRoaXMgaGFwcGVucyBpbgo+ICsgKiAgIHZjcHVfZ2l2ZV9i dWRnZXRfYmFjaygpOwo+ICsgKgo+ICsgKiAtIHRoZSBhYm92ZSBtZWFucyB0aGF0IGEgdkNQVSBj YW4gZmluZCBvdXQgdGhhdCB0aGVyZSBpcyBubyBidWRnZXQgYW5kCj4gKyAqICAgYmxvY2ssIG5v dCBvbmx5IGlmIHRoZSBjYXAgaGFzIGFjdHVhbGx5IGJlZW4gcmVhY2hlZCAoZm9yIHRoaXMgcGVy aW9kKSwKPiArICogICBidXQgYWxzbyBpZiBzb21lIG90aGVyIHZDUFVzLCBpbiBvcmRlciB0byBy dW4sIGhhdmUgZ3JhYmJlZCBhIGNlcnRhaW4KPiArICogICBxdW90YSBvZiBidWRnZXQsIG5vIG1h dHRlciB3aGV0aGVyIHRoZXkndmUgYWxyZWFkeSB1c2VkIGl0IGFsbCBvciBub3QuCj4gKyAqICAg QSB2Q1BVIGJsb2NraW5nIGJlY2F1c2UgKGFueSBmb3JtIG9mKSBsYWNrIG9mIGJ1ZGdldCBpcyBz YWlkIHRvIGJlCj4gKyAqICAgInBhcmtlZCIsIGFuZCBzdWNoIGJsb2NraW5nIGhhcHBlbnMgaW4g cGFya192Y3B1KCk7Cj4gKyAqCj4gKyAqIC0gd2hlbiBhIHZDUFUgc3RvcHMgcnVubmluZywgYW5k IHB1dHMgYmFjayBzb21lIGJ1ZGdldCBpbiB0aGUgZG9tYWluIHBvb2wsCj4gKyAqICAgd2UgbmVl ZCB0byBjaGVjayB3aGV0aGVyIHRoZXJlIGlzIHNvbWVvbmUgd2hpY2ggaGFzIGJlZW4gcGFya2Vk IGFuZCB0aGF0Cj4gKyAqICAgY2FuIGJlIHVucGFya2VkLiBUaGlzIGhhcHBlbnMgaW4gdW5wYXJr X3BhcmtlZF92Y3B1cygpLCBjYWxsZWQgZnJvbQo+ICsgKiAgIGNzY2hlZDJfY29udGV4dF9zYXZl ZCgpOwo+ICsgKgo+ICsgKiAtIG9mIGNvdXJzZSwgdW5wYXJraW5nIGhhcHBlbnMgYWxzbyBhcyBh IGNvbnNlcXVlbmUgb2YgdGhlIGRvbWFpbidzIGJ1ZGdldAo+ICsgKiAgIGJlaW5nIHJlcGxlbmlz aGVkIGJ5IHRoZSBwZXJpb2RpYyB0aW1lci4gVGhpcyBhbHNvIG9jY3VycyBieSBtZWFucyBvZgo+ ICsgKiAgIGNhbGxpbmcgY3NjaGVkMl9jb250ZXh0X3NhdmVkKCkgKGJ1dCBmcm9tIHJlcGxfc2Rv bV9idWRnZXQoKSk7Cj4gKyAqCj4gKyAqIC0gcGFya2VkIHZDUFVzIG9mIGEgZG9tYWluIGFyZSBr ZXB0IGluIGEgKHBlci1kb21haW4pIGxpc3QsIGNhbGxlZAo+ICsgKiAgICdwYXJrZWRfdmNwdXMn KS4gTWFuaXB1bGF0aW9uIG9mIHRoZSBsaXN0IGFuZCBvZiB0aGUgZG9tYWluLXdpZGUgYnVkZ2V0 Cj4gKyAqICAgcG9vbCwgbXVzdCBvY2N1ciBvbmx5IHdoZW4gaG9sZGluZyB0aGUgJ2J1ZGdldF9s b2NrJy4KPiArICovCj4gKwo+ICsvKgo+ICAgKiBMb2NraW5nOgo+ICAgKgo+ICAgKiAtIHJ1bnF1 ZXVlIGxvY2sKPiBAQCAtMTEyLDE4ICsxODgsMjkgQEAKPiAgICogICAgIHJ1bnF1ZXVlIGVhY2gg Y3B1IGlzOwo+ICAgKiAgKyBzZXJpYWxpemVzIHRoZSBvcGVyYXRpb24gb2YgY2hhbmdpbmcgdGhl IHdlaWdodHMgb2YgZG9tYWluczsKPiAgICoKPiArICogLSBCdWRnZXQgbG9jawo+ICsgKiAgKyBp dCBpcyBwZXItZG9tYWluOwo+ICsgKiAgKyBwcm90ZWN0cywgaW4gZG9tYWlucyB0aGF0IGhhdmUg YW4gdXRpbGl6YXRpb24gY2FwOwo+ICsgKiAgICogbWFuaXB1bGF0aW9uIG9mIHRoZSB0b3RhbCBi dWRnZXQgb2YgdGhlIGRvbWFpbiAoYXMgaXQgaXMgc2hhcmVkCj4gKyAqICAgICBhbW9uZyBhbGwg dkNQVXMgb2YgdGhlIGRvbWFpbiksCj4gKyAqICAgKiBtYW5pcHVsYXRpb24gb2YgdGhlIGxpc3Qg b2YgdkNQVXMgdGhhdCBhcmUgYmxvY2tlZCB3YWl0aW5nIGZvcgo+ICsgKiAgICAgc29tZSBidWRn ZXQgdG8gYmUgYXZhaWxhYmxlLgo+ICsgKgo+ICAgKiAtIFR5cGU6Cj4gICAqICArIHJ1bnF1ZXVl IGxvY2tzIGFyZSAncmVndWxhcicgc3BpbmxvY2tzOwo+ICAgKiAgKyB0aGUgcHJpdmF0ZSBzY2hl ZHVsZXIgbG9jayBjYW4gYmUgYW4gcndsb2NrLiBJbiBmYWN0LCBkYXRhCj4gICAqICAgIGl0IHBy b3RlY3RzIGlzIG1vZGlmaWVkIG9ubHkgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBjcHVwb29sCj4g ICAqICAgIG1hbmlwdWxhdGlvbiBhbmQgd2hlbiBjaGFuZ2luZyB3ZWlnaHRzLCBhbmQgcmVhZCBp biBhbGwKPiAtICogICAgb3RoZXIgY2FzZXMgKGUuZy4sIGR1cmluZyBsb2FkIGJhbGFuY2luZyku Cj4gKyAqICAgIG90aGVyIGNhc2VzIChlLmcuLCBkdXJpbmcgbG9hZCBiYWxhbmNpbmcpOwo+ICsg KiAgKyBidWRnZXQgbG9ja3MgYXJlICdyZWd1bGFyJyBzcGlubG9ja3MuCj4gICAqCj4gICAqIE9y ZGVyaW5nOgo+ICAgKiAgKyB0eWxvY2sgbXVzdCBiZSB1c2VkIHdoZW4gd2FudGluZyB0byB0YWtl IGEgcnVucXVldWUgbG9jaywKPiAgICogICAgaWYgd2UgYWxyZWFkeSBob2xkIGFub3RoZXIgb25l Owo+ICAgKiAgKyBpZiB0YWtpbmcgYm90aCBhIHJ1bnF1ZXVlIGxvY2sgYW5kIHRoZSBwcml2YXRl IHNjaGVkdWxlcgo+IC0gKiAgICBsb2NrIGlzLCB0aGUgbGF0dGVyIG11c3QgYWx3YXlzIGJlIHRh a2VuIGZvciBmaXJzdC4KPiArICogICAgbG9jayBpcywgdGhlIGxhdHRlciBtdXN0IGFsd2F5cyBi ZSB0YWtlbiBmb3IgZmlyc3Q7Cj4gKyAqICArIGlmIHRha2luZyBib3RoIGEgcnVucXVldWUgbG9j ayBhbmQgYSBidWRnZXQgbG9jaywgdGhlIGZvcm1lcgo+ICsgKiAgICBtdXN0IGFsd2F5cyBiZSB0 YWtlbiBmb3IgZmlyc3QuCj4gICAqLwo+ICAKPiAgLyoKPiBAQCAtMTY0LDYgKzI1MSw4IEBACj4g ICNkZWZpbmUgQ1NDSEVEMl9DUkVESVRfUkVTRVQgICAgICAgICAwCj4gIC8qIE1heCB0aW1lcjog TWF4aW11bSB0aW1lIGEgZ3Vlc3QgY2FuIGJlIHJ1biBmb3IuICovCj4gICNkZWZpbmUgQ1NDSEVE Ml9NQVhfVElNRVIgICAgICAgICAgICBDU0NIRUQyX0NSRURJVF9JTklUCj4gKy8qIFBlcmlvZCBv ZiB0aGUgY2FwIHJlcGxlbmlzaG1lbnQgdGltZXIuICovCj4gKyNkZWZpbmUgQ1NDSEVEMl9CREdU X1JFUExfUEVSSU9EICAgICAoKG9wdF9jYXBfcGVyaW9kKSpNSUxMSVNFQ1MoMSkpCj4gIAo+ICAv Kgo+ICAgKiBGbGFncwo+IEBAIC0yOTMsNiArMzgyLDE0IEBAIHN0YXRpYyBpbnQgX19yZWFkX21v c3RseSBvcHRfdW5kZXJsb2FkX2JhbGFuY2VfdG9sZXJhbmNlID0gMDsKPiAgaW50ZWdlcl9wYXJh bSgiY3JlZGl0Ml9iYWxhbmNlX3VuZGVyIiwgb3B0X3VuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5j ZSk7Cj4gIHN0YXRpYyBpbnQgX19yZWFkX21vc3RseSBvcHRfb3ZlcmxvYWRfYmFsYW5jZV90b2xl cmFuY2UgPSAtMzsKPiAgaW50ZWdlcl9wYXJhbSgiY3JlZGl0Ml9iYWxhbmNlX292ZXIiLCBvcHRf b3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2UpOwo+ICsvKgo+ICsgKiBEb21haW5zIHN1YmplY3Qg dG8gYSBjYXAsIHJlY2VpdmUgYSByZXBsZW5pc2htZW50IG9mIHRoZWlyIHJ1bnRpbWUgYnVkZ2V0 Cj4gKyAqIG9uY2UgZXZlcnkgb3B0X2NhcF9wZXJpb2QgaW50ZXJ2YWwuIERlZmF1bHQgaXMgMTAg bXMuIFRoZSBhbW91bnQgb2YgYnVkZ2V0Cj4gKyAqIHRoZXkgcmVjZWl2ZSBkZXBlbmRzIG9uIHRo ZWlyIGNhcC4gRm9yIGluc3RhbmNlLCBhIGRvbWFpbiB3aXRoIGEgNTAlIGNhcAo+ICsgKiB3aWxs IHJlY2VpdmUgNTAlIG9mIDEwIG1zLCBzbyA1IG1zLgo+ICsgKi8KPiArc3RhdGljIHVuc2lnbmVk IGludCBfX3JlYWRfbW9zdGx5IG9wdF9jYXBfcGVyaW9kID0gMTA7ICAgIC8qIG1zICovCj4gK2lu dGVnZXJfcGFyYW0oImNyZWRpdDJfY2FwX3BlcmlvZF9tcyIsIG9wdF9jYXBfcGVyaW9kKTsKPiAg Cj4gIC8qCj4gICAqIFJ1bnF1ZXVlIG9yZ2FuaXphdGlvbi4KPiBAQCAtNDA4LDYgKzUwNSwxMCBA QCBzdHJ1Y3QgY3NjaGVkMl92Y3B1IHsKPiAgICAgIHVuc2lnbmVkIGludCByZXNpZHVhbDsKPiAg Cj4gICAgICBpbnQgY3JlZGl0Owo+ICsKPiArICAgIHNfdGltZV90IGJ1ZGdldDsKPiArICAgIHN0 cnVjdCBsaXN0X2hlYWQgcGFya2VkX2VsZW07ICAgICAgLyogT24gdGhlIHBhcmtlZF92Y3B1cyBs aXN0ICAgKi8KPiArCj4gICAgICBzX3RpbWVfdCBzdGFydF90aW1lOyAvKiBXaGVuIHdlIHdlcmUg c2NoZWR1bGVkICh1c2VkIGZvciBjcmVkaXQpICovCj4gICAgICB1bnNpZ25lZCBmbGFnczsgICAg ICAvKiAxNiBiaXRzIGRvZXNuJ3Qgc2VlbSB0byBwbGF5IHdlbGwgd2l0aCBjbGVhcl9iaXQoKSAq Lwo+ICAgICAgaW50IHRpY2tsZWRfY3B1OyAgICAgLyogY3B1IHRpY2tsZWQgZm9yIHBpY2tpbmcg dXMgdXAgKC0xIGlmIG5vbmUpICovCj4gQEAgLTQyNSw3ICs1MjYsMTUgQEAgc3RydWN0IGNzY2hl ZDJfdmNwdSB7Cj4gIHN0cnVjdCBjc2NoZWQyX2RvbSB7Cj4gICAgICBzdHJ1Y3QgbGlzdF9oZWFk IHNkb21fZWxlbTsKPiAgICAgIHN0cnVjdCBkb21haW4gKmRvbTsKPiArCj4gKyAgICBzcGlubG9j a190IGJ1ZGdldF9sb2NrOwo+ICsgICAgc3RydWN0IHRpbWVyIHJlcGxfdGltZXI7Cj4gKyAgICBz X3RpbWVfdCBuZXh0X3JlcGw7Cj4gKyAgICBzX3RpbWVfdCBidWRnZXQsIHRvdF9idWRnZXQ7Cj4g KyAgICBzdHJ1Y3QgbGlzdF9oZWFkIHBhcmtlZF92Y3B1czsKPiArCj4gICAgICB1aW50MTZfdCB3 ZWlnaHQ7Cj4gKyAgICB1aW50MTZfdCBjYXA7CgpIbW0sIHRoaXMgbmVlZHMgdG8gYmUgcmViYXNl ZCBvbiB0aGUgc3RydWN0dXJlIGxheW91dCBwYXRjaGVzIEkgY2hlY2tlZAppbiBsYXN0IHdlZWsu IDotKQoKIC1HZW9yZ2UKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=