From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: Re: [PATCH v7 for Xen 4.7 4/4] xl: enable per-VCPU parameter settings for RTDS scheduler Date: Wed, 16 Mar 2016 19:24:35 +0000 Message-ID: <20160316192435.GM22103@citrix.com> References: <1458146871-2813-1-git-send-email-lichong659@gmail.com> <1458146871-2813-5-git-send-email-lichong659@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1458146871-2813-5-git-send-email-lichong659@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Chong Li Cc: Chong Li , wei.liu2@citrix.com, Sisu Xi , george.dunlap@eu.citrix.com, dario.faggioli@citrix.com, xen-devel@lists.xen.org, Meng Xu , dgolomb@seas.upenn.edu List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBNYXIgMTYsIDIwMTYgYXQgMTE6NDc6NTFBTSAtMDUwMCwgQ2hvbmcgTGkgd3JvdGU6 Cj4gLS0tCj4gIGRvY3MvbWFuL3hsLnBvZC4xICAgICAgICAgfCAgMzggKysrKysrCj4gIHRvb2xz L2xpYnhsL3hsX2NtZGltcGwuYyAgfCAzMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLQo+ICB0b29scy9saWJ4bC94bF9jbWR0YWJsZS5jIHwgIDE2ICsrLQo+ ICAzIGZpbGVzIGNoYW5nZWQsIDMyMCBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZG9jcy9tYW4veGwucG9kLjEgYi9kb2NzL21hbi94bC5wb2QuMQo+IGlu ZGV4IDQyNzljN2MuLjFhOGFhY2QgMTAwNjQ0Cj4gLS0tIGEvZG9jcy9tYW4veGwucG9kLjEKPiAr KysgYi9kb2NzL21hbi94bC5wb2QuMQo+IEBAIC0xMDUxLDYgKzEwNTEsMTAgQEAgQjxPUFRJT05T Pgo+ICBTcGVjaWZ5IGRvbWFpbiBmb3Igd2hpY2ggc2NoZWR1bGVyIHBhcmFtZXRlcnMgYXJlIHRv IGJlIG1vZGlmaWVkIG9yIHJldHJpZXZlZC4KPiAgTWFuZGF0b3J5IGZvciBtb2RpZnlpbmcgc2No ZWR1bGVyIHBhcmFtZXRlcnMuCj4gIAo+ICs9aXRlbSBCPC12IFZDUFVJRC9hbGw+LCBCPC0tdmNw dWlkPVZDUFVJRC9hbGw+Cj4gKwo+ICtTcGVjaWZ5IHZjcHUgZm9yIHdoaWNoIHNjaGVkdWxlciBw YXJhbWV0ZXJzIGFyZSB0byBiZSBtb2RpZmllZCBvciByZXRyaWV2ZWQuCj4gKwo+ICA9aXRlbSBC PC1wIFBFUklPRD4sIEI8LS1wZXJpb2Q9UEVSSU9EPgo+ICAKPiAgUGVyaW9kIG9mIHRpbWUsIGlu IG1pY3Jvc2Vjb25kcywgb3ZlciB3aGljaCB0byByZXBsZW5pc2ggdGhlIGJ1ZGdldC4KPiBAQCAt MTA2Niw2ICsxMDcwLDQwIEBAIFJlc3RyaWN0IG91dHB1dCB0byBkb21haW5zIGluIHRoZSBzcGVj aWZpZWQgY3B1cG9vbC4KPiAgCj4gID1iYWNrCj4gIAo+ICtCPEVYQU1QTEVTPgo+ICsKPiArPW92 ZXIgNAo+ICsKPiArPWl0ZW0gQjwtZCBbZG9taWRdPgo+ICsKPiArTGlzdCBkZWZhdWx0IHBlci1k b21haW4gcGFyYW1zIGZvciBhIGRvbWFpbgo+ICsKPiArPWl0ZW0gQjwtZCBbZG9taWRdIFtwYXJh bXMgKHBlcmlvZCBhbmQgYnVkZ2V0KV0+Cj4gKwo+ICtTZXQgcGVyLWRvbWFpbiBwYXJhbXMgZm9y IGEgZG9tYWluCj4gKwo+ICs9aXRlbSBCPC1kIFtkb21pZF0gLXYgW3ZjcHVpZF0gLXYgW3ZjcHVp ZF0gLi4uPgo+ICsKPiArTGlzdCBwZXItVkNQVSBwYXJhbXMgZm9yIGEgZG9tYWluCj4gKwo+ICs9 aXRlbSBCPC1kIFtkb21pZF0gLXYgYWxsPgo+ICsKPiArTGlzdCBhbGwgcGVyLVZDUFUgcGFyYW1z IGZvciBhIGRvbWFpbgo+ICsKPiArPWl0ZW0gQjwtdiBhbGw+Cj4gKwo+ICtMaXN0IGFsbCBwZXIt VkNQVSBwYXJhbXMgZm9yIGFsbCBkb21haW5zCj4gKwo+ICs9aXRlbSBCPC1kIFtkb21pZF0gLXYg W3ZjcHVpZF0gW3BhcmFtc10gLXYgW3ZjcHVpZF0gW3BhcmFtc10gLi4uPgo+ICsKPiArU2V0IHBl ci1WQ1BVIHBhcmFtcyBmb3IgYSBkb21haW4KPiArCj4gKz1pdGVtIEI8LWQgW2RvbWlkXSAtdiBh bGwgW3BhcmFtc10+Cj4gKwo+ICtTZXQgYWxsIHBlci1WQ1BVIHBhcmFtcyBmb3IgYSBkb21haW4K PiArCj4gKz1iYWNrCj4gKwoKVXJnaCwgdGhlcmUgbWlnaHQgYmUgc29tZSBtaXN1bmRlcnN0YW5k aW5nIGhlcmUuIFRoZXNlIGFyZSBleHBsYW5hdGlvbnMKdG8gc3BlY2lmaWMgY29tbWFuZHMsIHdo aWxlIEkgYXNrZWQgZm9yIHNvbWUgY29uY3JldGUgZXhhbXBsZXMuCgpTZWFyY2ggZm9yICJleGFt cGxlIiBpbiB4bCBtYW5wYWdlLgoKPiAgPWJhY2sKPiAgCj4gID1oZWFkMSBDUFVQT09MUyBDT01N QU5EUwo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4bC94bF9jbWRpbXBsLmMgYi90b29scy9saWJ4 bC94bF9jbWRpbXBsLmMKPiBpbmRleCAyYjYzNzFkLi4xMzE1NDFmIDEwMDY0NAo+IC0tLSBhL3Rv b2xzL2xpYnhsL3hsX2NtZGltcGwuYwo+ICsrKyBiL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwo+ IEBAIC01ODIzLDYgKzU4MjMsNTIgQEAgc3RhdGljIGludCBzY2hlZF9kb21haW5fc2V0KGludCBk b21pZCwgY29uc3QgbGlieGxfZG9tYWluX3NjaGVkX3BhcmFtcyAqc2NpbmZvKQo+ICAgICAgcmV0 dXJuIDA7Cj4gIH0KPiAgClsuLi5dCj4gIHN0YXRpYyBpbnQgc2NoZWRfcnRkc19wb29sX291dHB1 dCh1aW50MzJfdCBwb29saWQpCj4gIHsKPiAgICAgIGNoYXIgKnBvb2xuYW1lOwo+IEBAIC02MDE1 LDYgKzYwOTIsNjUgQEAgc3RhdGljIGludCBzY2hlZF9kb21haW5fb3V0cHV0KGxpYnhsX3NjaGVk dWxlciBzY2hlZCwgaW50ICgqb3V0cHV0KShpbnQpLAo+ICAgICAgcmV0dXJuIDA7Cj4gIH0KPiAg Cj4gK3N0YXRpYyBpbnQgc2NoZWRfdmNwdV9vdXRwdXQobGlieGxfc2NoZWR1bGVyIHNjaGVkLAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAoKm91dHB1dCkoaW50LCBsaWJ4bF92 Y3B1X3NjaGVkX3BhcmFtcyAqKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg KCpwb29sb3V0cHV0KSh1aW50MzJfdCksIGNvbnN0IGNoYXIgKmNwdXBvb2wpCj4gK3sKPiArICAg IGxpYnhsX2RvbWluZm8gKmluZm87Cj4gKyAgICBsaWJ4bF9jcHVwb29saW5mbyAqcG9vbGluZm8g PSBOVUxMOwo+ICsgICAgdWludDMyX3QgcG9vbGlkOwo+ICsgICAgaW50IG5iX2RvbWFpbiwgbl9w b29scyA9IDAsIGksIHA7Cj4gKyAgICBpbnQgcmMgPSAwOwo+ICsKPiArICAgIGlmIChjcHVwb29s KSB7Cj4gKyAgICAgICAgaWYgKGxpYnhsX2NwdXBvb2xfcXVhbGlmaWVyX3RvX2NwdXBvb2xpZChj dHgsIGNwdXBvb2wsICZwb29saWQsIE5VTEwpCj4gKyAgICAgICAgICAgIHx8ICFsaWJ4bF9jcHVw b29saWRfaXNfdmFsaWQoY3R4LCBwb29saWQpKSB7Cj4gKyAgICAgICAgICAgIGZwcmludGYoc3Rk ZXJyLCAidW5rbm93biBjcHVwb29sIFwnJXNcJ1xuIiwgY3B1cG9vbCk7Cj4gKyAgICAgICAgICAg IHJldHVybiAtRVJST1JfRkFJTDsKCk5vcm1hbGx5IHhsIHNob3VsZG4ndCB1c2UgbGlieGwncyBl cnJvciBjb2RlLiBBbmQgZm9yIHlvdXIgY29udmVuaWVuY2UKeW91IGNhbiBqdXN0IHJldHVybiAt MSBvciAxLgoKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAgaW5mbyA9IGxpYnhsX2xp c3RfZG9tYWluKGN0eCwgJm5iX2RvbWFpbik7Cj4gKyAgICBpZiAoIWluZm8pIHsKPiArICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgImxpYnhsX2xpc3RfZG9tYWluIGZhaWxlZC5cbiIpOwo+ICsgICAg ICAgIHJldHVybiAxOwo+ICsgICAgfQo+ICsgICAgcG9vbGluZm8gPSBsaWJ4bF9saXN0X2NwdXBv b2woY3R4LCAmbl9wb29scyk7Cj4gKyAgICBpZiAoIXBvb2xpbmZvKSB7Cj4gKyAgICAgICAgZnBy aW50ZihzdGRlcnIsICJlcnJvciBnZXR0aW5nIGNwdXBvb2wgaW5mb1xuIik7Cj4gKyAgICAgICAg bGlieGxfZG9taW5mb19saXN0X2ZyZWUoaW5mbywgbmJfZG9tYWluKTsKPiArICAgICAgICByZXR1 cm4gLUVSUk9SX05PTUVNOwoKU2FtZSBoZXJlLgoKPiArICAgIH0KPiArCj4gKyAgICBmb3IgKHAg PSAwOyAhcmMgJiYgKHAgPCBuX3Bvb2xzKTsgcCsrKSB7Cj4gKyAgICAgICAgaWYgKChwb29saW5m b1twXS5zY2hlZCAhPSBzY2hlZCkgfHwKPiArICAgICAgICAgICAgKGNwdXBvb2wgJiYgKHBvb2xp ZCAhPSBwb29saW5mb1twXS5wb29saWQpKSkKPiArICAgICAgICAgICAgY29udGludWU7Cj4gKwo+ ICsgICAgICAgIHBvb2xvdXRwdXQocG9vbGluZm9bcF0ucG9vbGlkKTsKPiArCj4gKyAgICAgICAg bGlieGxfdmNwdV9zY2hlZF9wYXJhbXMgc2NpbmZvX291dDsKPiArICAgICAgICBsaWJ4bF92Y3B1 X3NjaGVkX3BhcmFtc19pbml0KCZzY2luZm9fb3V0KTsKPiArICAgICAgICBvdXRwdXQoLTEsICZz Y2luZm9fb3V0KTsKPiArICAgICAgICBsaWJ4bF92Y3B1X3NjaGVkX3BhcmFtc19kaXNwb3NlKCZz Y2luZm9fb3V0KTsKPiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmJfZG9tYWluOyBpKyspIHsK PiArICAgICAgICAgICAgaWYgKGluZm9baV0uY3B1cG9vbCAhPSBwb29saW5mb1twXS5wb29saWQp Cj4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsKPiArICAgICAgICAgICAgbGlieGxfdmNwdV9z Y2hlZF9wYXJhbXMgc2NpbmZvOwo+ICsgICAgICAgICAgICBsaWJ4bF92Y3B1X3NjaGVkX3BhcmFt c19pbml0KCZzY2luZm8pOwo+ICsgICAgICAgICAgICBzY2luZm8ubnVtX3ZjcHVzID0gMDsKPiAr ICAgICAgICAgICAgcmMgPSBvdXRwdXQoaW5mb1tpXS5kb21pZCwgJnNjaW5mbyk7Cj4gKyAgICAg ICAgICAgIGxpYnhsX3ZjcHVfc2NoZWRfcGFyYW1zX2Rpc3Bvc2UoJnNjaW5mbyk7Cj4gKyAgICAg ICAgICAgIGlmIChyYykKPiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIH0KPiAr ICAgIH0KPiArCj4gKyAgICBsaWJ4bF9jcHVwb29saW5mb19saXN0X2ZyZWUocG9vbGluZm8sIG5f cG9vbHMpOwo+ICsgICAgbGlieGxfZG9taW5mb19saXN0X2ZyZWUoaW5mbywgbmJfZG9tYWluKTsK PiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICAvKiAKPiAgICogPG5vdGhpbmc+ICAgICAgICAg ICAgIDogTGlzdCBhbGwgZG9tYWluIHBhcmFtcyBhbmQgc2NoZWQgcGFyYW1zIGZyb20gYWxsIHBv b2xzCj4gICAqIC1kIFtkb21pZF0gICAgICAgICAgICA6IExpc3QgZG9tYWluIHBhcmFtcyBmb3Ig ZG9tYWluCj4gQEAgLTYyMTUsODQgKzYzNTEsMTgzIEBAIGludCBtYWluX3NjaGVkX2NyZWRpdDIo aW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAKPiAgLyoKPiAgICogPG5vdGhpbmc+ICAgICAgICAg ICAgOiBMaXN0IGFsbCBkb21haW4gcGFyYW10ZXJzIGFuZCBzY2hlZCBwYXJhbXMKPiAtICogLWQg W2RvbWlkXSAgICAgICAgICAgOiBMaXN0IGRvbWFpbiBwYXJhbXMgZm9yIGRvbWFpbgo+ICsgKiAt ZCBbZG9taWRdICAgICAgICAgICA6IExpc3QgZGVmYXVsdCBkb21haW4gcGFyYW1zIGZvciBkb21h aW4KPiAgICogLWQgW2RvbWlkXSBbcGFyYW1zXSAgOiBTZXQgZG9tYWluIHBhcmFtcyBmb3IgZG9t YWluCj4gKyAqIC1kIFtkb21pZF0gLXYgW3ZjcHVpZCAxXSAtdiBbdmNwdWlkIDJdIC4uLiAgOgo+ ICsgKiBMaXN0IHBlci1WQ1BVIHBhcmFtcyBmb3IgZG9tYWluCj4gKyAqIC1kIFtkb21pZF0gLXYg YWxsICA6IExpc3QgYWxsIHBlci1WQ1BVIHBhcmFtcyBmb3IgZG9tYWluCj4gKyAqIC12IGFsbCAg OiBMaXN0IGFsbCBwZXItVkNQVSBwYXJhbXMgZm9yIGFsbCBkb21haW5zCj4gKyAqIC1kIFtkb21p ZF0gLXYgW3ZjcHVpZCAxXSBbcGFyYW1zXSAtdiBbdmNwdWlkIDJdIFtwYXJhbXNdIC4uLiAgOgo+ ICsgKiBTZXQgcGVyLVZDUFUgcGFyYW1zIGZvciBkb21haW4KPiArICogLWQgW2RvbWlkXSAtdiBh bGwgW3BhcmFtc10gIDogU2V0IGFsbCBwZXItVkNQVSBwYXJhbXMgZm9yIGRvbWFpbgo+ICAgKi8K PiAgaW50IG1haW5fc2NoZWRfcnRkcyhpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gIHsKPiAgICAg IGNvbnN0IGNoYXIgKmRvbSA9IE5VTEw7Cj4gICAgICBjb25zdCBjaGFyICpjcHVwb29sID0gTlVM TDsKPiAtICAgIGludCBwZXJpb2QgPSAwOyAvKiBwZXJpb2QgaXMgaW4gbWljcm9zZWNvbmQgKi8K PiAtICAgIGludCBidWRnZXQgPSAwOyAvKiBidWRnZXQgaXMgaW4gbWljcm9zZWNvbmQgKi8KPiAr ICAgIGludCAqdmNwdXMgPSAoaW50ICopeG1hbGxvYyhzaXplb2YoaW50KSk7IC8qIElEcyBvZiBW Q1BVcyB0aGF0IGNoYW5nZSAqLwo+ICsgICAgaW50ICpwZXJpb2RzID0gKGludCAqKXhtYWxsb2Mo c2l6ZW9mKGludCkpOyAvKiBwZXJpb2QgaXMgaW4gbWljcm9zZWNvbmQgKi8KPiArICAgIGludCAq YnVkZ2V0cyA9IChpbnQgKil4bWFsbG9jKHNpemVvZihpbnQpKTsgLyogYnVkZ2V0IGlzIGluIG1p Y3Jvc2Vjb25kICovCj4gKyAgICBpbnQgdl9zaXplID0gMTsgLyogc2l6ZSBvZiB2Y3B1cyBhcnJh eSAqLwo+ICsgICAgaW50IHBfc2l6ZSA9IDE7IC8qIHNpemUgb2YgcGVyaW9kcyBhcnJheSAqLwo+ ICsgICAgaW50IGJfc2l6ZSA9IDE7IC8qIHNpemUgb2YgYnVkZ2V0cyBhcnJheSAqLwo+ICsgICAg aW50IHZfaW5kZXggPSAwOyAvKiBpbmRleCBpbiB2Y3B1cyBhcnJheSAqLwo+ICsgICAgaW50IHBf aW5kZXggPTA7IC8qIGluZGV4IGluIHBlcmlvZHMgYXJyYXkgKi8KPiArICAgIGludCBiX2luZGV4 ID0wOyAvKiBpbmRleCBmb3IgaW4gYnVkZ2V0cyBhcnJheSAqLwo+ICAgICAgYm9vbCBvcHRfcCA9 IGZhbHNlOwo+ICAgICAgYm9vbCBvcHRfYiA9IGZhbHNlOwo+IC0gICAgaW50IG9wdCwgcmM7Cj4g KyAgICBib29sIG9wdF92ID0gZmFsc2U7Cj4gKyAgICBib29sIG9wdF9hbGwgPSBmYWxzZTsgLyog b3V0cHV0IHBlci1kb20gcGFyYW1ldGVycyAqLwo+ICsgICAgaW50IG9wdCwgaSwgcmM7Cj4gICAg ICBzdGF0aWMgc3RydWN0IG9wdGlvbiBvcHRzW10gPSB7Cj4gICAgICAgICAgeyJkb21haW4iLCAx LCAwLCAnZCd9LAo+ICAgICAgICAgIHsicGVyaW9kIiwgMSwgMCwgJ3AnfSwKPiAgICAgICAgICB7 ImJ1ZGdldCIsIDEsIDAsICdiJ30sCj4gKyAgICAgICAgeyJ2Y3B1aWQiLDEsIDAsICd2J30sCj4g ICAgICAgICAgeyJjcHVwb29sIiwgMSwgMCwgJ2MnfSwKPiAgICAgICAgICBDT01NT05fTE9OR19P UFRTCj4gICAgICB9Owo+ICAKPiAtICAgIFNXSVRDSF9GT1JFQUNIX09QVChvcHQsICJkOnA6Yjpj OiIsIG9wdHMsICJzY2hlZC1ydGRzIiwgMCkgewo+ICsgICAgU1dJVENIX0ZPUkVBQ0hfT1BUKG9w dCwgImQ6cDpiOnY6YyIsIG9wdHMsICJzY2hlZC1ydGRzIiwgMCkgewo+ICAgICAgY2FzZSAnZCc6 Cj4gICAgICAgICAgZG9tID0gb3B0YXJnOwo+ICAgICAgICAgIGJyZWFrOwo+ICAgICAgY2FzZSAn cCc6Cj4gLSAgICAgICAgcGVyaW9kID0gc3RydG9sKG9wdGFyZywgTlVMTCwgMTApOwo+ICsgICAg ICAgIGlmIChwX2luZGV4ID49IHBfc2l6ZSkgewo+ICsgICAgICAgICAgICAvKiBwZXJpb2RzIGFy cmF5IGlzIGZ1bGwKPiArICAgICAgICAgICAgICogZG91YmxlIHRoZSBhcnJheSBzaXplIGZvciBu ZXcgZWxlbWVudHMKPiArICAgICAgICAgICAgICovCj4gKyAgICAgICAgICAgIHBfc2l6ZSAqPSAy Owo+ICsgICAgICAgICAgICBwZXJpb2RzID0geHJlYWxsb2MocGVyaW9kcywgcF9zaXplKTsKPiAr ICAgICAgICB9Cj4gKyAgICAgICAgcGVyaW9kc1twX2luZGV4KytdID0gc3RydG9sKG9wdGFyZywg TlVMTCwgMTApOwo+ICAgICAgICAgIG9wdF9wID0gMTsKPiAgICAgICAgICBicmVhazsKPiAgICAg IGNhc2UgJ2InOgo+IC0gICAgICAgIGJ1ZGdldCA9IHN0cnRvbChvcHRhcmcsIE5VTEwsIDEwKTsK PiArICAgICAgICBpZiAoYl9pbmRleCA+PSBiX3NpemUpIHsgLyogYnVkZ2V0cyBhcnJheSBpcyBm dWxsICovCj4gKyAgICAgICAgICAgIGJfc2l6ZSAqPSAyOwo+ICsgICAgICAgICAgICBidWRnZXRz ID0geHJlYWxsb2MoYnVkZ2V0cywgYl9zaXplKTsKPiArICAgICAgICB9Cj4gKyAgICAgICAgYnVk Z2V0c1tiX2luZGV4KytdID0gc3RydG9sKG9wdGFyZywgTlVMTCwgMTApOwo+ICAgICAgICAgIG9w dF9iID0gMTsKPiAgICAgICAgICBicmVhazsKPiArICAgIGNhc2UgJ3YnOgo+ICsgICAgICAgIGlm ICghc3RyY21wKG9wdGFyZywgImFsbCIpKSB7IC8qIGdldCBvciBzZXQgYWxsIHZjcHVzIG9mIGEg ZG9tYWluICovCj4gKyAgICAgICAgICAgIG9wdF9hbGwgPSAxOwo+ICsgICAgICAgICAgICBicmVh azsKPiArICAgICAgICB9Cj4gKyAgICAgICAgaWYgKHZfaW5kZXggPj0gdl9zaXplKSB7IC8qIHZj cHVzIGFycmF5IGlzIGZ1bGwgKi8KPiArICAgICAgICAgICAgdl9zaXplICo9IDI7Cj4gKyAgICAg ICAgICAgIHZjcHVzID0geHJlYWxsb2ModmNwdXMsIHZfc2l6ZSk7Cj4gKyAgICAgICAgfQo+ICsg ICAgICAgIHZjcHVzW3ZfaW5kZXgrK10gPSBzdHJ0b2wob3B0YXJnLCBOVUxMLCAxMCk7Cj4gKyAg ICAgICAgb3B0X3YgPSAxOwo+ICsgICAgICAgIGJyZWFrOwoKWW91IHNlZW1lZCB0byBtaXNzIG15 IHJlcXVlc3QgZm9yIGZhY3RvcmluZyBvdXQgYSBmdW5jdGlvbi4gQnV0IG5vdyBJCnRoaW5rIGFi b3V0IGl0LCB0aGF0IHByb2JhYmx5IHdvbid0IGJ1eSB1cyBtdWNoIGdvb2QuIFNvIEknbSBmaW5l IHdpdGgKY29kZSBsaWtlIHRoaXMgbm93LgoKPiAgICAgIGNhc2UgJ2MnOgo+ICAgICAgICAgIGNw dXBvb2wgPSBvcHRhcmc7Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICB9Cj4gIApbLi4uXQo+ICBp bnQgbWFpbl9kb21pZChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhsL3hsX2NtZHRhYmxlLmMgYi90b29scy9saWJ4bC94bF9jbWR0YWJsZS5jCj4gaW5kZXgg ZmRjMWFjNi4uMzRmNTI2MiAxMDA2NDQKPiAtLS0gYS90b29scy9saWJ4bC94bF9jbWR0YWJsZS5j Cj4gKysrIGIvdG9vbHMvbGlieGwveGxfY21kdGFibGUuYwo+IEBAIC0yNjgsMTAgKzI2OCwyMiBA QCBzdHJ1Y3QgY21kX3NwZWMgY21kX3RhYmxlW10gPSB7Cj4gICAgICB7ICJzY2hlZC1ydGRzIiwK PiAgICAgICAgJm1haW5fc2NoZWRfcnRkcywgMCwgMSwKPiAgICAgICAgIkdldC9zZXQgcnRkcyBz Y2hlZHVsZXIgcGFyYW1ldGVycyIsCj4gLSAgICAgICJbLWQgPERvbWFpbj4gWy1wWz1QRVJJT0Rd XSBbLWJbPUJVREdFVF1dXSIsCj4gKyAgICAgICJbLWQgPERvbWFpbj4gWy12Wz1WQ1BVSUQvYWxs XV0gWy1wWz1QRVJJT0RdXSBbLWJbPUJVREdFVF1dXSIsCj4gICAgICAgICItZCBET01BSU4sIC0t ZG9tYWluPURPTUFJTiAgICAgRG9tYWluIHRvIG1vZGlmeVxuIgo+ICsgICAgICAiLXYgVkNQVUlE L2FsbCwgLS12Y3B1aWQ9VkNQVUlEL2FsbCAgICBWQ1BVIHRvIG1vZGlmeSBvciBvdXRwdXQ7XG4i Cj4gKyAgICAgICIgICAgICAgICAgICAgICBVc2luZyAnLXYgYWxsJyB0byBtb2RpZnkvb3V0cHV0 IGFsbCB2Y3B1c1xuIgo+ICAgICAgICAiLXAgUEVSSU9ELCAtLXBlcmlvZD1QRVJJT0QgICAgIFBl cmlvZCAodXMpXG4iCj4gLSAgICAgICItYiBCVURHRVQsIC0tYnVkZ2V0PUJVREdFVCAgICAgQnVk Z2V0ICh1cylcbiIKPiArICAgICAgIi1iIEJVREdFVCwgLS1idWRnZXQ9QlVER0VUICAgICBCdWRn ZXQgKHVzKVxuXG4iCj4gKyAgICAgICJFeGFtcGxlczpcblxuIgo+ICsgICAgICAiLWQgW2RvbWlk XSAgICAgICAgICAgOiBMaXN0IGRlZmF1bHQgcGVyLWRvbWFpbiBwYXJhbXMgZm9yIGEgZG9tYWlu XG4iCj4gKyAgICAgICItZCBbZG9taWRdIFtwYXJhbXMgKHBlcmlvZCBhbmQgYnVkZ2V0KV0gIDog U2V0IHBlci1kb21haW4gcGFyYW1zIGZvciBhIGRvbWFpblxuIgo+ICsgICAgICAiLWQgW2RvbWlk XSAtdiBbdmNwdWlkXSAtdiBbdmNwdWlkXSAuLi4gIDogIgo+ICsgICAgICAiTGlzdCBwZXItVkNQ VSBwYXJhbXMgZm9yIGEgZG9tYWluXG4iCj4gKyAgICAgICItZCBbZG9taWRdIC12IGFsbCAgOiBM aXN0IGFsbCBwZXItVkNQVSBwYXJhbXMgZm9yIGEgZG9tYWluXG4iCj4gKyAgICAgICItdiBhbGwg IDogTGlzdCBhbGwgcGVyLVZDUFUgcGFyYW1zIGZvciBhbGwgZG9tYWluc1xuIgo+ICsgICAgICAi LWQgW2RvbWlkXSAtdiBbdmNwdWlkXSBbcGFyYW1zXSAtdiBbdmNwdWlkXSBbcGFyYW1zXSAuLi4g IDogIgo+ICsgICAgICAiU2V0IHBlci1WQ1BVIHBhcmFtcyBmb3IgYSBkb21haW5cbiIKPiArICAg ICAgIi1kIFtkb21pZF0gLXYgYWxsIFtwYXJhbXNdICA6IFNldCBhbGwgcGVyLVZDUFUgcGFyYW1z IGZvciBhIGRvbWFpblxuIgoKTm8gbmVlZCB0byBoYXZlIGV4YW1wbGUgaGVyZS4KCj4gICAgICB9 LAo+ICAgICAgeyAiZG9taWQiLAo+ICAgICAgICAmbWFpbl9kb21pZCwgMCwgMCwKPiAtLSAKPiAx LjkuMQo+IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gWGVuLWRldmVsIG1haWxpbmcgbGlzdAo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4g aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=