From mboxrd@z Thu Jan 1 00:00:00 1970 From: anshul makkar Subject: Re: [PATCH 18/19] xen: credit2: implement SMT support independent runq arrangement Date: Mon, 27 Jun 2016 16:20:01 +0100 Message-ID: <57714421.3040501@citrix.com> References: <146620492155.29766.10321123657058307698.stgit@Solace.fritz.box> <146620520979.29766.17431818083809592415.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.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bHYLS-0006C4-GX for xen-devel@lists.xenproject.org; Mon, 27 Jun 2016 15:21:06 +0000 In-Reply-To: <146620520979.29766.17431818083809592415.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: George Dunlap , David Vrabel List-Id: xen-devel@lists.xenproject.org T24gMTgvMDYvMTYgMDA6MTMsIERhcmlvIEZhZ2dpb2xpIHdyb3RlOgo+IEluIGZhY3QsIHJpZ2h0 IG5vdywgd2UgcmVjb21tZW5kIGtlZXBlaW5nIHJ1bnF1ZXVlcwo+IGFycmFuZ2VkIHBlci1jb3Jl LCBzbyB0aGF0IGl0IGlzIHRoZSBpbnRlci1ydW5xdWV1ZSBsb2FkCj4gYmFsYW5jaW5nIGNvZGUg dGhhdCBhdXRvbWF0aWNhbGx5IHNwcmVhZHMgdGhlIHdvcmsgaW4gYW4KPiBTTVQgZnJpZW5kbHkg d2F5LiBUaGlzIG1lYW5zIHRoYXQgYW55IG90aGVyIHJ1bnEKPiBhcnJhbmdlbWVudCBvbmUgbWF5 IHdhbnQgdG8gdXNlIGZhbGxzIHNob3J0IG9mIFNNVAo+IHNjaGVkdWxpbmcgb3B0aW1pemF0aW9u cy4KPgo+IFRoaXMgY29tbWl0IGltcGxlbWVudHMgU01UIGF3YXJlbmVzcyAtLXNpbWlsYXIgdG8g dGhlCj4gb25lIHdlIGhhdmUgaW4gQ3JlZGl0MS0tIGZvciBhbnkgcG9zc2libGUgcnVucQo+IGFy cmFuZ2VtZW50LiBUaGlzIHR1cm5lZCBvdXQgdG8gYmUgcHJldHR5IGVhc3kgdG8gZG8sCj4gYXMg dGhlIGxvZ2ljIGNhbiBsaXZlIGVudGlyZWx5IGluIHJ1bnFfdGlja2xlKCkKPiAoYWx0aG91Z2gs IGluIG9yZGVyIHRvIGF2b2lkIGZvcl9lYWNoX2NwdSBsb29wcyBpbgo+IHRoYXQgZnVuY3Rpb24s IHdlIHVzZSBhIG5ldyBjcHVtYXNrIHdoaWNoIGluZGVlZCBuZWVkcwo+IHRvIGJlIHVwZGF0ZWQg aW4gb3RoZXIgcGxhY2VzKS4KPgo+IEluIGFkZGl0aW9uIHRvIGRpc2VudGFuZ2xpbmcgU01UIGF3 YXJlbmVzcyBmcm9tIGxvYWQKPiBiYWxhbmNpbmcsIHRoaXMgYWxzbyBhbGxvd3MgdXMgdG8gc3Vw cG9ydCB0aGUKPiBzY2hlZF9zbXRfcG93ZXJfc2F2aW5ncyBwYXJhbWV0YXIgaW4gQ3JlZGl0MiBh cyB3ZWxsLgo+Cj4gU2lnbmVkLW9mZi1ieTogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZhZ2dpb2xp QGNpdHJpeC5jb20+CgpSZXZpZXdlZC1ieTogQW5zaHVsIE1ha2thciA8YW5zaHVsLm1ha2thckBj aXRyaXguY29tPgo+IC0tLQo+IENjOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJp eC5jb20+Cj4gQ2M6IEFuc2h1bCBNYWtrYXIgPGFuc2h1bC5tYWtrYXJAY2l0cml4LmNvbT4KPiBD YzogRGF2aWQgVnJhYmVsIDxkYXZpZC52cmFiZWxAY2l0cml4LmNvbT4KPiAtLS0KPiAgIHhlbi9j b21tb24vc2NoZWRfY3JlZGl0Mi5jIHwgIDE0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspLCAx NSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIu YyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCj4gaW5kZXggOTM5NDNmYS4uYThiM2E4NSAx MDA2NDQKPiAtLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwo+ICsrKyBiL3hlbi9jb21t b24vc2NoZWRfY3JlZGl0Mi5jCj4gQEAgLTM1MSw3ICszNTEsOCBAQCBzdHJ1Y3QgY3NjaGVkMl9y dW5xdWV1ZV9kYXRhIHsKPiAgICAgICB1bnNpZ25lZCBpbnQgbWF4X3dlaWdodDsKPgo+ICAgICAg IGNwdW1hc2tfdCBpZGxlLCAgICAgICAgLyogQ3VycmVudGx5IGlkbGUgKi8KPiAtICAgICAgICB0 aWNrbGVkOyAgICAgICAgICAgLyogQW5vdGhlciBjcHUgaW4gdGhlIHF1ZXVlIGlzIGFscmVhZHkg dGFyZ2V0ZWQgZm9yIHRoaXMgb25lICovCj4gKyAgICAgICAgc210X2lkbGUsICAgICAgICAgIC8q IEZ1bGx5IGlkbGUgY29yZXMgKGFzIGluIGFsbCB0aGUgc2libGluZ3MgYXJlIGlkbGUpICovCj4g KyAgICAgICAgdGlja2xlZDsgICAgICAgICAgIC8qIEhhdmUgYmVlbiBhc2tlZCB0byBnbyB0aHJv dWdoIHNjaGVkdWxlICovCj4gICAgICAgaW50IGxvYWQ7ICAgICAgICAgICAgICAvKiBJbnN0YW50 YW5lb3VzIGxvYWQ6IExlbmd0aCBvZiBxdWV1ZSAgKyBudW0gbm9uLWlkbGUgdGhyZWFkcyAqLwo+ ICAgICAgIHNfdGltZV90IGxvYWRfbGFzdF91cGRhdGU7ICAvKiBMYXN0IHRpbWUgYXZlcmFnZSB3 YXMgdXBkYXRlZCAqLwo+ICAgICAgIHNfdGltZV90IGF2Z2xvYWQ7ICAgICAgICAgICAvKiBEZWNh eWluZyBxdWV1ZSBsb2FkICovCj4gQEAgLTQxMiw2ICs0MTMsNzMgQEAgc3RydWN0IGNzY2hlZDJf ZG9tIHsKPiAgIH07Cj4KPiAgIC8qCj4gKyAqIEh5cGVydGhyZWFkaW5nIChTTVQpIHN1cHBvcnQu Cj4gKyAqCj4gKyAqIFdlIHVzZSBhIHNwZWNpYWwgcGVyLXJ1bnEgbWFzayAoc210X2lkbGUpIGFu ZCB1cGRhdGUgaXQgYWNjb3JkaW5nIHRvIHRoZQo+ICsgKiBmb2xsb3dpbmcgbG9naWM6Cj4gKyAq ICAtIHdoZW4gX2FsbF8gdGhlIFNNVCBzaWJsaW5nIGluIGEgY29yZSBhcmUgaWRsZSwgYWxsIHRo ZWlyIGNvcnJlc3BvbmRpbmcKPiArICogICAgYml0cyBhcmUgc2V0IGluIHRoZSBzbXRfaWRsZSBt YXNrOwo+ICsgKiAgLSB3aGVuIGV2ZW4gX2p1c3Rfb25lXyBvZiB0aGUgU01UIHNpYmxpbmdzIGlu IGEgY29yZSBpcyBub3QgaWRsZSwgYWxsIHRoZQo+ICsgKiAgICBiaXRzIGNvcnJlc3BvbmRpbmdz IHRvIGl0IGFuZCB0byBhbGwgaXRzIHNpYmxpbmdzIGFyZSBjbGVhciBpbiB0aGUKPiArICogICAg c210X2lkbGUgbWFzay4KPiArICoKPiArICogT25jZSB3ZSBoYXZlIHN1Y2ggYSBtYXNrLCBpdCBp cyBlYXN5IHRvIGltcGxlbWVudCBhIHBvbGljeSB0aGF0LCBlaXRoZXI6Cj4gKyAqICAtIHVzZXMg ZnVsbHkgaWRsZSBjb3JlcyBmaXJzdDogaXQgaXMgZW5vdWdoIHRvIHRyeSB0byBzY2hlZHVsZSB0 aGUgdmNwdXMKPiArICogICAgb24gcGNwdXMgZnJvbSBzbXRfaWRsZSBtYXNrIGZpcnN0LiBUaGlz IGlzIHdoYXQgaGFwcGVucyBpZgo+ICsgKiAgICBzY2hlZF9zbXRfcG93ZXJfc2F2aW5ncyB3YXMg bm90IHNldCBhdCBib290IChkZWZhdWx0KSwgYW5kIGl0IG1heGltaXplcwo+ICsgKiAgICB0cnVl IHBhcmFsbGVsaXNtLCBhbmQgaGVuY2UgcGVyZm9ybWFuY2U7Cj4gKyAqICAtIHVzZXMgYWxyZWFk eSBidXN5IGNvcmVzIGZpcnN0OiBpdCBpcyBlbm91Z2ggdG8gdHJ5IHRvIHNjaGVkdWxlIHRoZSB2 Y3B1cwo+ICsgKiAgICBvbiBwY3B1cyB0aGF0IGFyZSBpZGxlLCBidXQgYXJlIG5vdCBpbiBzbXRf aWRsZS4gVGhpcyBpcyB3aGF0IGhhcHBlbnMgaWYKPiArICogICAgc2NoZWRfc210X3Bvd2VyX3Nh dmluZ3MgaXMgc2V0IGF0IGJvb3QsIGFuZCBpdCBhbGxvd3MgYXMgbW9yZSBjb3JlcyBhcwo+ICsg KiAgICBwb3NzaWJsZSB0byBzdGF5IGluIGxvdyBwb3dlciBzdGF0ZXMsIG1pbmltaXppbmcgcG93 ZXIgY29uc3VtcHRpb24uCj4gKyAqCj4gKyAqIFRoaXMgbG9naWMgaXMgZW50aXJlbHkgaW1wbGVt ZW50ZWQgaW4gcnVucV90aWNrbGUoKSwgYW5kIHRoYXQgaXMgZW5vdWdoLgo+ICsgKiBJbiBmYWN0 LCBpbiB0aGlzIHNjaGVkdWxlciwgcGxhY2VtZW50IG9mIGEgdmNwdSBvbiBvbmUgb2YgdGhlIHBj cHVzIG9mIGEKPiArICogcnVucSwgX2Fsd2F5c18gaGFwcGVucyBieSBtZWFucyBvZiB0aWNrbGlu ZzoKPiArICogIC0gd2hlbiBhIHZjcHUgd2FrZXMgdXAsIGl0IGNhbGxzIGNzY2hlZDJfdmNwdV93 YWtlKCksIHdoaWNoIGNhbGxzCj4gKyAqICAgIHJ1bnFfdGlja2xlKCk7Cj4gKyAqICAtIHdoZW4g YSBtaWdyYXRpb24gaXMgaW5pdGlhdGVkIGluIHNjaGVkdWxlLmMsIHdlIGNhbGwgY3NjaGVkMl9j cHVfcGljaygpLAo+ICsgKiAgICBjc2NoZWQyX3ZjcHVfbWlncmF0ZSgpICh3aGljaCBjYWxscyBt aWdyYXRlKCkpIGFuZCBjc2NoZWQyX3ZjcHVfd2FrZSgpLgo+ICsgKiAgICBjc2NoZWQyX2NwdV9w aWNrKCkgbG9va3MgZm9yIHRoZSBsZWFzdCBsb2FkZWQgcnVucSBhbmQgcmV0dXJuIGp1c3QgYW55 Cj4gKyAqICAgIG9mIGl0cyBwcm9jZXNzb3JzLiBUaGVuLCBjc2NoZWQyX3ZjcHVfbWlncmF0ZSgp IGp1c3QgbW92ZXMgdGhlIHZjcHUgdG8KPiArICogICAgdGhlIGNob3NlbiBydW5xLCBhbmQgaXQg aXMgYWdhaW4gcnVucV90aWNrbGUoKSwgY2FsbGVkIGJ5Cj4gKyAqICAgIGNzY2hlZDJfdmNwdV93 YWtlKCkgdGhhdCBhY3R1YWxseSBkZWNpZGVzIHdoYXQgcGNwdSB0byB1c2Ugd2l0aGluIHRoZQo+ ICsgKiAgICBjaG9zZW4gcnVucTsKPiArICogIC0gd2hlbiBhIG1pZ3JhdGlvbiBpcyBpbml0aWF0 ZWQgaW4gc2NoZWRfY3JlZGl0Mi5jLCBieSBjYWxsaW5nICBtaWdyYXRlKCkKPiArICogICAgZGly ZWN0bHksIHRoYXQgYWdhaW4gdGVtcG9yYXJpbHkgdXNlIGEgcmFuZG9tIHBjcHUgZnJvbSB0aGUg bmV3IHJ1bnEsCj4gKyAqICAgIGFuZCB0aGVuIGNhbGxzIHJ1bnFfdGlja2xlKCksIGJ5IGl0c2Vs Zi4KPiArICovCj4gKwo+ICsvKgo+ICsgKiBJZiBhbGwgdGhlIHNpYmxpbmdzIG9mIGNwdSAoaW5j bHVkaW5nIGNwdSBpdHNlbGYpIGFyZSBpbiBpZGxlcnMsCj4gKyAqIHNldCBhbGwgdGhlaXIgYml0 cyBpbiBtYXNrLgo+ICsgKgo+ICsgKiBJbiBvcmRlciB0byBwcm9wZXJseSB0YWtlIGludG8gYWNj b3VudCB0aWNrbGluZywgaWRsZXJzIG5lZWRzIHRvIGJlCj4gKyAqIHNldCBxZXVhbCB0byBzb21l dGhpbmcgbGlrZToKPiArICoKPiArICogIHJxZC0+aWRsZSAmICh+cnFkLT50aWNrbGVkKQo+ICsg Kgo+ICsgKiBUaGlzIGlzIGJlY2F1c2UgY3B1cyB0aGF0IGhhdmUgYmVlbiB0aWNrbGVkIHdpbGwg dmVyeSBsaWtlbHkgcGljayB1cCBzb21lCj4gKyAqIHdvcmsgYXMgc29vbiBhcyB0aGUgbWFuYWdl IHRvIHNjaGVkdWxlLCBhbmQgaGVuY2Ugd2Ugc2hvdWxkIHJlYWxseSBjb25zaWRlcgo+ICsgKiB0 aGVtIGFzIGJ1c3kuCj4gKyAqLwo+ICtzdGF0aWMgaW5saW5lCj4gK3ZvaWQgc210X2lkbGVfbWFz a19zZXQodW5zaWduZWQgaW50IGNwdSwgY3B1bWFza190ICppZGxlcnMsIGNwdW1hc2tfdCAqbWFz aykKPiArewo+ICsgICAgaWYgKCBjcHVtYXNrX3N1YnNldCggcGVyX2NwdShjcHVfc2libGluZ19t YXNrLCBjcHUpLCBpZGxlcnMpICkKPiArICAgICAgICBjcHVtYXNrX29yKG1hc2ssIG1hc2ssIHBl cl9jcHUoY3B1X3NpYmxpbmdfbWFzaywgY3B1KSk7Cj4gK30KPiArCj4gKy8qCj4gKyAqIENsZWFy IHRoZSBiaXRzIG9mIGFsbCB0aGUgc2libGluZ3Mgb2YgY3B1IGZyb20gbWFzay4KPiArICovCj4g K3N0YXRpYyBpbmxpbmUKPiArdm9pZCBzbXRfaWRsZV9tYXNrX2NsZWFyKHVuc2lnbmVkIGludCBj cHUsIGNwdW1hc2tfdCAqbWFzaykKPiArewo+ICsgICAgY3B1bWFza19hbmRub3QobWFzaywgbWFz aywgcGVyX2NwdShjcHVfc2libGluZ19tYXNrLCBjcHUpKTsKPiArfQo+ICsKPiArLyoKPiAgICAq IFdoZW4gYSBoYXJkIGFmZmluaXR5IGNoYW5nZSBvY2N1cnMsIHdlIG1heSBub3QgYmUgYWJsZSB0 byBjaGVjayBzb21lCj4gICAgKiAoYW55ISkgb2YgdGhlIG90aGVyIHJ1bnF1ZXVlcywgd2hlbiBs b29raW5nIGZvciB0aGUgYmVzdCBuZXcgcHJvY2Vzc29yCj4gICAgKiBmb3Igc3ZjIChhcyB0cnls b2NrLXMgaW4gY3NjaGVkMl9jcHVfcGljaygpIGNhbiBmYWlsKS4gSWYgdGhhdCBoYXBwZW5zLCB3 ZQo+IEBAIC04NTEsOSArOTE5LDMwIEBAIHJ1bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IGNzY2hlZDJfdmNwdSAqbmV3LCBzX3RpbWVfdCBub3cpCj4gICAgICAg fQo+Cj4gICAgICAgLyoKPiAtICAgICAqIEdldCBhIG1hc2sgb2YgaWRsZSwgYnV0IG5vdCB0aWNr bGVkLCBwcm9jZXNzb3JzIHRoYXQgbmV3IGlzCj4gLSAgICAgKiBhbGxvd2VkIHRvIHJ1biBvbi4g SWYgdGhhdCdzIG5vdCBlbXB0eSwgY2hvb3NlIHNvbWVvbmUgZnJvbSB0aGVyZQo+IC0gICAgICog KHByZWZlcnJhYmx5LCB0aGUgb25lIHdlcmUgbmV3IHdhcyBydW5uaW5nIG9uIGFscmVhZHkpLgo+ ICsgICAgICogRmlyc3Qgb2YgYWxsLCBjb25zaWRlciBpZGxlIGNwdXMsIGNoZWNraW5nIGlmIHdl IGNhbiBqdXN0Cj4gKyAgICAgKiByZS11c2UgdGhlIHBjcHUgd2hlcmUgd2Ugd2VyZSBydW5uaW5n IGJlZm9yZS4KPiArICAgICAqCj4gKyAgICAgKiBJZiB0aGVyZSBhcmUgY29yZXMgd2hlcmUgYWxs IHRoZSBzaWJsaW5ncyBhcmUgaWRsZSwgY29uc2lkZXIKPiArICAgICAqIHRoZW0gZmlyc3QsIGhv bm9yaW5nIHdoYXRldmVyIHRoZSBzcHJlYWRpbmctdnMtY29uc29saWRhdGlvbgo+ICsgICAgICog U01UIHBvbGljeSB3YW50cyB1cyB0byBkby4KPiArICAgICAqLwo+ICsgICAgaWYgKCB1bmxpa2Vs eShzY2hlZF9zbXRfcG93ZXJfc2F2aW5ncykgKQo+ICsgICAgICAgIGNwdW1hc2tfYW5kbm90KCZt YXNrLCAmcnFkLT5pZGxlLCAmcnFkLT5zbXRfaWRsZSk7Cj4gKyAgICBlbHNlCj4gKyAgICAgICAg Y3B1bWFza19jb3B5KCZtYXNrLCAmcnFkLT5zbXRfaWRsZSk7Cj4gKyAgICBjcHVtYXNrX2FuZCgm bWFzaywgJm1hc2ssIG5ldy0+dmNwdS0+Y3B1X2hhcmRfYWZmaW5pdHkpOwo+ICsgICAgaSA9IGNw dW1hc2tfdGVzdF9vcl9jeWNsZShjcHUsICZtYXNrKTsKPiArICAgIGlmICggaSA8IG5yX2NwdV9p ZHMgKQo+ICsgICAgewo+ICsgICAgICAgIFNDSEVEX1NUQVRfQ1JBTksodGlja2xlZF9pZGxlX2Nw dSk7Cj4gKyAgICAgICAgaXBpZCA9IGk7Cj4gKyAgICAgICAgZ290byB0aWNrbGU7Cj4gKyAgICB9 Cj4gKwo+ICsgICAgLyoKPiArICAgICAqIElmIHRoZXJlIGFyZSBubyBmdWxseSBpZGxlIGNvcmVz LCBjaGVjayBhbGwgaWRsZXJzLCBhZnRlcgo+ICsgICAgICogaGF2aW5nIGZpbHRlcmVkIG91dCBw Y3B1cyB0aGF0IGhhdmUgYmVlbiB0aWNrbGVkIGJ1dCBoYXZlbid0Cj4gKyAgICAgKiBnb25lIHRo cm91Z2ggdGhlIHNjaGVkdWxlciB5ZXQuCj4gICAgICAgICovCj4gICAgICAgY3B1bWFza19hbmRu b3QoJm1hc2ssICZycWQtPmlkbGUsICZycWQtPnRpY2tsZWQpOwo+ICAgICAgIGNwdW1hc2tfYW5k KCZtYXNrLCAmbWFzaywgbmV3LT52Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSk7Cj4gQEAgLTk0NSw2 ICsxMDM0LDcgQEAgcnVucV90aWNrbGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1 Y3QgY3NjaGVkMl92Y3B1ICpuZXcsIHNfdGltZV90IG5vdykKPiAgICAgICAgICAgICAgICAgICAg ICAgKHVuc2lnbmVkIGNoYXIgKikmZCk7Cj4gICAgICAgfQo+ICAgICAgIF9fY3B1bWFza19zZXRf Y3B1KGlwaWQsICZycWQtPnRpY2tsZWQpOwo+ICsgICAgLy9zbXRfaWRsZV9tYXNrX2NsZWFyKGlw aWQsICZycWQtPnNtdF9pZGxlKTsgWFhYCj4gICAgICAgY3B1X3JhaXNlX3NvZnRpcnEoaXBpZCwg U0NIRURVTEVfU09GVElSUSk7Cj4gICB9Cj4KPiBAQCAtMTQzNSwxMyArMTUyNSwxNSBAQCBjc2No ZWQyX2NwdV9waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZj KQo+Cj4gICAgICAgaWYgKCAhcmVhZF90cnlsb2NrKCZwcnYtPmxvY2spICkKPiAgICAgICB7Cj4g LSAgICAgICAgLyogV2UgbWF5IGJlIGhlcmUgYmVjYXVzZSBzb21lb24gcmVxdWVzdGVkIHVzIHRv IG1pZ3JhdGUgKi8KPiArICAgICAgICAvKiBXZSBtYXkgYmUgaGVyZSBiZWNhdXNlIHNvbWVvbmUg cmVxdWVzdGVkIHVzIHRvIG1pZ3JhdGUgKi8KPiAgICAgICAgICAgX19jbGVhcl9iaXQoX19DU0ZM QUdfcnVucV9taWdyYXRlX3JlcXVlc3QsICZzdmMtPmZsYWdzKTsKPiAgICAgICAgICAgcmV0dXJu IGdldF9mYWxsYmFja19jcHUoc3ZjKTsKPiAgICAgICB9Cj4KPiAtICAgIC8qIEZpcnN0IGNoZWNr IHRvIHNlZSBpZiB3ZSdyZSBoZXJlIGJlY2F1c2Ugc29tZW9uZSBlbHNlIHN1Z2dlc3RlZCBhIHBs YWNlCj4gLSAgICAgKiBmb3IgdXMgdG8gbW92ZS4gKi8KPiArICAgIC8qCj4gKyAgICAgKiBGaXJz dCBjaGVjayB0byBzZWUgaWYgd2UncmUgaGVyZSBiZWNhdXNlIHNvbWVvbmUgZWxzZSBzdWdnZXN0 ZWQgYSBwbGFjZQo+ICsgICAgICogZm9yIHVzIHRvIG1vdmUuCj4gKyAgICAgKi8KPiAgICAgICBp ZiAoIF9fdGVzdF9hbmRfY2xlYXJfYml0KF9fQ1NGTEFHX3J1bnFfbWlncmF0ZV9yZXF1ZXN0LCAm c3ZjLT5mbGFncykgKQo+ICAgICAgIHsKPiAgICAgICAgICAgaWYgKCB1bmxpa2VseShzdmMtPm1p Z3JhdGVfcnFkLT5pZCA8IDApICkKPiBAQCAtMTQ2Miw3ICsxNTU0LDcgQEAgY3NjaGVkMl9jcHVf cGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKPgo+ICAg ICAgIG1pbl9hdmdsb2FkID0gTUFYX0xPQUQ7Cj4KPiAtICAgIC8qIEZpbmQgdGhlIHJ1bnF1ZXVl IHdpdGggdGhlIGxvd2VzdCBpbnN0YW50YW5lb3VzIGxvYWQgKi8KPiArICAgIC8qIEZpbmQgdGhl IHJ1bnF1ZXVlIHdpdGggdGhlIGxvd2VzdCBhdmVyYWdlIGxvYWQuICovCj4gICAgICAgZm9yX2Vh Y2hfY3B1KGksICZwcnYtPmFjdGl2ZV9xdWV1ZXMpCj4gICAgICAgewo+ICAgICAgICAgICBzdHJ1 Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQ7Cj4gQEAgLTE1MDUsMTYgKzE1OTcsMTcgQEAg Y3NjaGVkMl9jcHVfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1 ICp2YykKPgo+ICAgICAgIC8qIFdlIGRpZG4ndCBmaW5kIGFueW9uZSAobW9zdCBsaWtlbHkgYmVj YXVzZSBvZiBzcGlubG9jayBjb250ZW50aW9uKS4gKi8KPiAgICAgICBpZiAoIG1pbl9ycWkgPT0g LTEgKQo+IC0gICAgICAgIG5ld19jcHUgPSBnZXRfZmFsbGJhY2tfY3B1KHN2Yyk7Cj4gLSAgICBl bHNlCj4gICAgICAgewo+IC0gICAgICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaCwgdmMt PmNwdV9oYXJkX2FmZmluaXR5LAo+IC0gICAgICAgICAgICAgICAgICAgICZwcnYtPnJxZFttaW5f cnFpXS5hY3RpdmUpOwo+IC0gICAgICAgIG5ld19jcHUgPSBjcHVtYXNrX2FueShjcHVtYXNrX3Nj cmF0Y2gpOwo+IC0gICAgICAgIEJVR19PTihuZXdfY3B1ID49IG5yX2NwdV9pZHMpOwo+ICsgICAg ICAgIG5ld19jcHUgPSBnZXRfZmFsbGJhY2tfY3B1KHN2Yyk7Cj4gKyAgICAgICAgZ290byBvdXRf dXA7Cj4gICAgICAgfQo+Cj4gLW91dF91cDoKPiArICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2Ny YXRjaCwgdmMtPmNwdV9oYXJkX2FmZmluaXR5LAo+ICsgICAgICAgICAgICAgICAgJnBydi0+cnFk W21pbl9ycWldLmFjdGl2ZSk7Cj4gKyAgICBuZXdfY3B1ID0gY3B1bWFza19hbnkoY3B1bWFza19z Y3JhdGNoKTsKPiArICAgIEJVR19PTihuZXdfY3B1ID49IG5yX2NwdV9pZHMpOwo+ICsKPiArIG91 dF91cDoKPiAgICAgICByZWFkX3VubG9jaygmcHJ2LT5sb2NrKTsKPgo+ICAgICAgIGlmICggdW5s aWtlbHkodGJfaW5pdF9kb25lKSApCj4gQEAgLTIxNjYsNyArMjI1OSwxMSBAQCBjc2NoZWQyX3Nj aGVkdWxlKAo+Cj4gICAgICAgLyogQ2xlYXIgInRpY2tsZWQiIGJpdCBub3cgdGhhdCB3ZSd2ZSBi ZWVuIHNjaGVkdWxlZCAqLwo+ICAgICAgIGlmICggY3B1bWFza190ZXN0X2NwdShjcHUsICZycWQt PnRpY2tsZWQpICkKPiArICAgIHsKPiAgICAgICAgICAgX19jcHVtYXNrX2NsZWFyX2NwdShjcHUs ICZycWQtPnRpY2tsZWQpOwo+ICsgICAgICAgIGNwdW1hc2tfYW5kbm90KGNwdW1hc2tfc2NyYXRj aCwgJnJxZC0+aWRsZSwgJnJxZC0+dGlja2xlZCk7Cj4gKyAgICAgICAgc210X2lkbGVfbWFza19z ZXQoY3B1LCBjcHVtYXNrX3NjcmF0Y2gsICZycWQtPnNtdF9pZGxlKTsgLy8gWFhYCj4gKyAgICB9 Cj4KPiAgICAgICAvKiBVcGRhdGUgY3JlZGl0cyAqLwo+ICAgICAgIGJ1cm5fY3JlZGl0cyhycWQs IHNjdXJyLCBub3cpOwo+IEBAIC0yMjI4LDcgKzIzMjUsMTAgQEAgY3NjaGVkMl9zY2hlZHVsZSgK Pgo+ICAgICAgICAgICAvKiBDbGVhciB0aGUgaWRsZSBtYXNrIGlmIG5lY2Vzc2FyeSAqLwo+ICAg ICAgICAgICBpZiAoIGNwdW1hc2tfdGVzdF9jcHUoY3B1LCAmcnFkLT5pZGxlKSApCj4gKyAgICAg ICAgewo+ICAgICAgICAgICAgICAgX19jcHVtYXNrX2NsZWFyX2NwdShjcHUsICZycWQtPmlkbGUp Owo+ICsgICAgICAgICAgICBzbXRfaWRsZV9tYXNrX2NsZWFyKGNwdSwgJnJxZC0+c210X2lkbGUp Owo+ICsgICAgICAgIH0KPgo+ICAgICAgICAgICBzbmV4dC0+c3RhcnRfdGltZSA9IG5vdzsKPgo+ IEBAIC0yMjUwLDEwICsyMzUwLDE3IEBAIGNzY2hlZDJfc2NoZWR1bGUoCj4gICAgICAgICAgIGlm ICggdGFza2xldF93b3JrX3NjaGVkdWxlZCApCj4gICAgICAgICAgIHsKPiAgICAgICAgICAgICAg IGlmICggY3B1bWFza190ZXN0X2NwdShjcHUsICZycWQtPmlkbGUpICkKPiArICAgICAgICAgICAg ewo+ICAgICAgICAgICAgICAgICAgIF9fY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmcnFkLT5pZGxl KTsKPiArICAgICAgICAgICAgICAgIHNtdF9pZGxlX21hc2tfY2xlYXIoY3B1LCAmcnFkLT5zbXRf aWRsZSk7Cj4gKyAgICAgICAgICAgIH0KPiAgICAgICAgICAgfQo+ICAgICAgICAgICBlbHNlIGlm ICggIWNwdW1hc2tfdGVzdF9jcHUoY3B1LCAmcnFkLT5pZGxlKSApCj4gKyAgICAgICAgewo+ICAg ICAgICAgICAgICAgX19jcHVtYXNrX3NldF9jcHUoY3B1LCAmcnFkLT5pZGxlKTsKPiArICAgICAg ICAgICAgY3B1bWFza19hbmRub3QoY3B1bWFza19zY3JhdGNoLCAmcnFkLT5pZGxlLCAmcnFkLT50 aWNrbGVkKTsKPiArICAgICAgICAgICAgc210X2lkbGVfbWFza19zZXQoY3B1LCBjcHVtYXNrX3Nj cmF0Y2gsICZycWQtPnNtdF9pZGxlKTsKPiArICAgICAgICB9Cj4gICAgICAgICAgIC8qIE1ha2Ug c3VyZSBhdmdsb2FkIGdldHMgdXBkYXRlZCBwZXJpb2RpY2FsbHkgZXZlbgo+ICAgICAgICAgICAg KiBpZiB0aGVyZSdzIG5vIGFjdGl2aXR5ICovCj4gICAgICAgICAgIHVwZGF0ZV9sb2FkKG9wcywg cnFkLCBOVUxMLCAwLCBub3cpOwo+IEBAIC0yMzgzLDYgKzI0OTAsOCBAQCBjc2NoZWQyX2R1bXAo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQo+ICAgICAgICAgICBwcmludGsoIlx0aWRsZXJz OiAlc1xuIiwgY3B1c3RyKTsKPiAgICAgICAgICAgY3B1bWFza19zY25wcmludGYoY3B1c3RyLCBz aXplb2YoY3B1c3RyKSwgJnBydi0+cnFkW2ldLnRpY2tsZWQpOwo+ICAgICAgICAgICBwcmludGso Ilx0dGlja2xlZDogJXNcbiIsIGNwdXN0cik7Cj4gKyAgICAgICAgY3B1bWFza19zY25wcmludGYo Y3B1c3RyLCBzaXplb2YoY3B1c3RyKSwgJnBydi0+cnFkW2ldLnNtdF9pZGxlKTsKPiArICAgICAg ICBwcmludGsoIlx0ZnVsbHkgaWRsZSBjb3JlczogJXNcbiIsIGNwdXN0cik7Cj4gICAgICAgfQo+ Cj4gICAgICAgcHJpbnRrKCJEb21haW4gaW5mbzpcbiIpOwo+IEBAIC0yNTM2LDYgKzI2NDUsNyBA QCBpbml0X3BkYXRhKHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBydiwgdW5zaWduZWQgaW50IGNw dSkKPiAgICAgICBfX2NwdW1hc2tfc2V0X2NwdShjcHUsICZycWQtPmlkbGUpOwo+ICAgICAgIF9f Y3B1bWFza19zZXRfY3B1KGNwdSwgJnJxZC0+YWN0aXZlKTsKPiAgICAgICBfX2NwdW1hc2tfc2V0 X2NwdShjcHUsICZwcnYtPmluaXRpYWxpemVkKTsKPiArICAgIF9fY3B1bWFza19zZXRfY3B1KGNw dSwgJnJxZC0+c210X2lkbGUpOwo+Cj4gICAgICAgcmV0dXJuIHJxaTsKPiAgIH0KPiBAQCAtMjY0 MSw2ICsyNzUxLDcgQEAgY3NjaGVkMl9kZWluaXRfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCB2b2lkICpwY3B1LCBpbnQgY3B1KQo+ICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyAi UmVtb3ZpbmcgY3B1ICVkIGZyb20gcnVucXVldWUgJWRcbiIsIGNwdSwgcnFpKTsKPgo+ICAgICAg IF9fY3B1bWFza19jbGVhcl9jcHUoY3B1LCAmcnFkLT5pZGxlKTsKPiArICAgIF9fY3B1bWFza19j bGVhcl9jcHUoY3B1LCAmcnFkLT5zbXRfaWRsZSk7Cj4gICAgICAgX19jcHVtYXNrX2NsZWFyX2Nw dShjcHUsICZycWQtPmFjdGl2ZSk7Cj4KPiAgICAgICBpZiAoIGNwdW1hc2tfZW1wdHkoJnJxZC0+ YWN0aXZlKSApCj4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=