From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [PATCH v3 08/11] xen: sched: allow for choosing credit2 runqueues configuration at boot Date: Fri, 8 Apr 2016 09:39:52 +0200 Message-ID: <57076048.4040107@suse.com> References: <20160408011204.10762.14241.stgit@Solace.fritz.box> <20160408012420.10762.61178.stgit@Solace.fritz.box> <57073128.3030803@suse.com> <1460100925.13871.6.camel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1aoR1J-0000By-6u for xen-devel@lists.xenproject.org; Fri, 08 Apr 2016 07:39:57 +0000 In-Reply-To: <1460100925.13871.6.camel@citrix.com> 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 , Uma Sharma List-Id: xen-devel@lists.xenproject.org T24gMDgvMDQvMTYgMDk6MzUsIERhcmlvIEZhZ2dpb2xpIHdyb3RlOgo+IE9uIEZyaSwgMjAxNi0w NC0wOCBhdCAwNjoxOCArMDIwMCwgSnVlcmdlbiBHcm9zcyB3cm90ZToKPj4gT24gMDgvMDQvMTYg MDM6MjQsIERhcmlvIEZhZ2dpb2xpIHdyb3RlOgo+Pj4KPj4+IEluIGZhY3QsIGNyZWRpdDIgdXNl cyBDUFUgdG9wb2xvZ3kgdG8gZGVjaWRlIGhvdyB0byBhcnJhbmdlCj4+PiBpdHMgaW50ZXJuYWwg cnVucXVldWVzLiBCZWZvcmUgdGhpcyBjaGFuZ2UsIG9ubHkgJ29uZSBydW5xdWV1ZQo+Pj4gcGVy IHNvY2tldCcgd2FzIGFsbG93ZWQuIEhvd2V2ZXIsIGV4cGVyaW1lbnRzIGhhdmUgc2hvd24gdGhh dCwKPj4+IGZvciBpbnN0YW5jZSwgaGF2aW5nIG9uZSBydW5xdWV1ZSBwZXIgcGh5c2ljYWwgY29y ZSBpbXByb3Zlcwo+Pj4gcGVyZm9ybWFuY2UsIGVzcGVjaWFsbHkgaW4gY2FzZSBoeXBlcnRocmVh ZGluZyBpcyBhdmFpbGFibGUuCj4+Pgo+Pj4gSW4gZ2VuZXJhbCwgaXQgbWFrZXMgc2Vuc2UgdG8g YWxsb3cgdXNlcnMgdG8gcGljayBvbmUgcnVucXVldWUKPj4+IGFycmFuZ2VtZW50IGF0IGJvb3Qg dGltZSwgc28gdGhhdDoKPj4+ICAtIG1vcmUgZXhwZXJpbWVudHMgY2FuIGJlIGVhc2lseSBwZXJm b3JtZWQgdG8gZXZlbiBiZXR0ZXIKPj4+ICAgIGFzc2VzcyBhbmQgaW1wcm92ZSBwZXJmb3JtYW5j ZTsKPj4+ICAtIG9uZSBjYW4gc2VsZWN0IHRoZSBiZXN0IGNvbmZpZ3VyYXRpb24gZm9yIGhpcyBz cGVjaWZpYwo+Pj4gICAgdXNlIGNhc2UgYW5kL29yIGhhcmR3YXJlLgo+Pj4KPj4+IFRoaXMgcGF0 Y2ggZW5hYmxlcyB0aGUgYWJvdmUuCj4+Pgo+Pj4gTm90ZSB0aGF0LCBmb3IgY29ycmVjdGx5IGFy cmFuZ2luZyBydW5xdWV1ZXMgdG8gYmUgcGVyLWNvcmUsCj4+PiBqdXN0IGNoZWNraW5nIGNwdV90 b19jb3JlKCkgb24gdGhlIGhvc3QgQ1BVcyBpcyBub3QgZW5vdWdoLgo+Pj4gSW4gZmFjdCwgY29y ZXMgKGFuZCBoeXBlcnRocmVhZHMpIG9uIGRpZmZlcmVudCBzb2NrZXRzLCBjYW4KPj4+IGhhdmUg dGhlIHNhbWUgY29yZSAoYW5kIHRocmVhZCkgSURzISBXZSwgdGhlcmVmb3JlLCBuZWVkIHRvCj4+ PiBjaGVjayB3aGV0aGVyIHRoZSBmdWxsIHRvcG9sb2d5IG9mIHR3byBDUFVzIG1hdGNoZXMsIGZv cgo+Pj4gdGhlbSB0byBiZSBwdXQgaW4gdGhlIHNhbWUgcnVucXVldWUuCj4+Pgo+Pj4gTm90ZSBh bHNvIHRoYXQgdGhlIGRlZmF1bHQgKGFsdGhvdWdoIG5vdCBmdW5jdGlvbmFsKSBmb3IKPj4+IGNy ZWRpdDIsIHNpbmNlIG5vdywgaGFzIGJlZW4gcGVyLXNvY2tldCBydW5xdWV1ZS4gVGhpcyBwYXRj aAo+Pj4gbGVhdmVzIHRoaW5ncyB0aGF0IHdheSwgdG8gYXZvaWQgbWl4aW5nIHBvbGljeSBhbmQg dGVjaG5pY2FsCj4+PiBjaGFuZ2VzLgo+Pj4KPj4+IEZpbmFsbHksIGl0IHdvdWxkIGJlIGEgbmlj ZSBmZWF0dXJlIHRvIGJlIGFibGUgdG8gc2VsZWN0Cj4+PiBhIHBhcnRpY3VsYXIgcnVucXVldWUg YXJyYW5nZW1lbnQsIGV2ZW4gd2hlbiBjcmVhdGluZyBhCj4+PiBDcmVkaXQyIGNwdXBvb2wuIFRo aXMgaXMgbGVmdCBhcyBmdXR1cmUgd29yay4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBEYXJpbyBG YWdnaW9saSA8ZGFyaW8uZmFnZ2lvbGlAY2l0cml4LmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6IFVt YSBTaGFybWEgPHVtYS5zaGFybWE1MjNAZ21haWwuY29tPgo+Pgo+PiBTb21lIG5pdHMgYmVsb3cu Cj4+Cj4gVGhhbmtzIGZvciB0aGUgcXVpY2sgcmV2aWV3IQo+IAo+IEEgcmV2aXNlZCB2ZXJzaW9u IG9mIHRoaXMgcGF0Y2ggaXMgcHJvdmlkZWQgaGVyZSAoYm90aCBpbmxpbmVkIGFuZAo+IGF0dGFj aGVkKSwgYW5kIGEgYnJhbmNoIHdpdGggdGhlIHJlbWFpbmluZyB0byBiZSBjb21taXR0ZWQgcGF0 Y2hlcyBvZgo+IHRoaXMgc2VyaWVzLCBhbmQgd2l0aCB0aGlzIHBhdGNoIGNoYW5nZWQgYXMgeW91 IHN1Z2dlc3QsIGlzIGF2YWlsYWJsZQo+IGF0Ogo+IAo+ICBnaXQ6Ly94ZW5iaXRzLnhlbi5vcmcv cGVvcGxlL2RhcmlvZi94ZW4uZ2l0IHJlbC9zY2hlZC9jcmVkaXQyL2ZpeC1ydW5xLWFuZC1oYWZm LXY0Cj4gIGh0dHA6Ly94ZW5iaXRzLnhlbi5vcmcvZ2l0d2ViLz9wPXBlb3BsZS9kYXJpb2YveGVu LmdpdDthPXNob3J0bG9nO2g9cmVmcy9oZWFkcy9yZWwvc2NoZWQvY3JlZGl0Mi9maXgtcnVucS1h bmQtaGFmZi12NAoKVGhhbmtzLgoKUmV2aWV3ZWQtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0Bz dXNlLmNvbT4KCj4gCj4gUmVnYXJkcywKPiBEYXJpbwo+IC0tLQo+IGNvbW1pdCA3ZjQ5MTQ4OGJi ZmYxY2MzYWYwMjFjZDI5ZmNhN2UwZmJhMzIxZTAyCj4gQXV0aG9yOiBEYXJpbyBGYWdnaW9saSA8 ZGFyaW8uZmFnZ2lvbGlAY2l0cml4LmNvbT4KPiBEYXRlOiAgIFR1ZSBTZXAgMjkgMTQ6MDU6MDkg MjAxNSArMDIwMAo+IAo+ICAgICB4ZW46IHNjaGVkOiBhbGxvdyBmb3IgY2hvb3NpbmcgY3JlZGl0 MiBydW5xdWV1ZXMgY29uZmlndXJhdGlvbiBhdCBib290Cj4gICAgIAo+ICAgICBJbiBmYWN0LCBj cmVkaXQyIHVzZXMgQ1BVIHRvcG9sb2d5IHRvIGRlY2lkZSBob3cgdG8gYXJyYW5nZQo+ICAgICBp dHMgaW50ZXJuYWwgcnVucXVldWVzLiBCZWZvcmUgdGhpcyBjaGFuZ2UsIG9ubHkgJ29uZSBydW5x dWV1ZQo+ICAgICBwZXIgc29ja2V0JyB3YXMgYWxsb3dlZC4gSG93ZXZlciwgZXhwZXJpbWVudHMg aGF2ZSBzaG93biB0aGF0LAo+ICAgICBmb3IgaW5zdGFuY2UsIGhhdmluZyBvbmUgcnVucXVldWUg cGVyIHBoeXNpY2FsIGNvcmUgaW1wcm92ZXMKPiAgICAgcGVyZm9ybWFuY2UsIGVzcGVjaWFsbHkg aW4gY2FzZSBoeXBlcnRocmVhZGluZyBpcyBhdmFpbGFibGUuCj4gICAgIAo+ICAgICBJbiBnZW5l cmFsLCBpdCBtYWtlcyBzZW5zZSB0byBhbGxvdyB1c2VycyB0byBwaWNrIG9uZSBydW5xdWV1ZQo+ ICAgICBhcnJhbmdlbWVudCBhdCBib290IHRpbWUsIHNvIHRoYXQ6Cj4gICAgICAtIG1vcmUgZXhw ZXJpbWVudHMgY2FuIGJlIGVhc2lseSBwZXJmb3JtZWQgdG8gZXZlbiBiZXR0ZXIKPiAgICAgICAg YXNzZXNzIGFuZCBpbXByb3ZlIHBlcmZvcm1hbmNlOwo+ICAgICAgLSBvbmUgY2FuIHNlbGVjdCB0 aGUgYmVzdCBjb25maWd1cmF0aW9uIGZvciBoaXMgc3BlY2lmaWMKPiAgICAgICAgdXNlIGNhc2Ug YW5kL29yIGhhcmR3YXJlLgo+ICAgICAKPiAgICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSBhYm92 ZS4KPiAgICAgCj4gICAgIE5vdGUgdGhhdCwgZm9yIGNvcnJlY3RseSBhcnJhbmdpbmcgcnVucXVl dWVzIHRvIGJlIHBlci1jb3JlLAo+ICAgICBqdXN0IGNoZWNraW5nIGNwdV90b19jb3JlKCkgb24g dGhlIGhvc3QgQ1BVcyBpcyBub3QgZW5vdWdoLgo+ICAgICBJbiBmYWN0LCBjb3JlcyAoYW5kIGh5 cGVydGhyZWFkcykgb24gZGlmZmVyZW50IHNvY2tldHMsIGNhbgo+ICAgICBoYXZlIHRoZSBzYW1l IGNvcmUgKGFuZCB0aHJlYWQpIElEcyEgV2UsIHRoZXJlZm9yZSwgbmVlZCB0bwo+ICAgICBjaGVj ayB3aGV0aGVyIHRoZSBmdWxsIHRvcG9sb2d5IG9mIHR3byBDUFVzIG1hdGNoZXMsIGZvcgo+ICAg ICB0aGVtIHRvIGJlIHB1dCBpbiB0aGUgc2FtZSBydW5xdWV1ZS4KPiAgICAgCj4gICAgIE5vdGUg YWxzbyB0aGF0IHRoZSBkZWZhdWx0IChhbHRob3VnaCBub3QgZnVuY3Rpb25hbCkgZm9yCj4gICAg IGNyZWRpdDIsIHNpbmNlIG5vdywgaGFzIGJlZW4gcGVyLXNvY2tldCBydW5xdWV1ZS4gVGhpcyBw YXRjaAo+ICAgICBsZWF2ZXMgdGhpbmdzIHRoYXQgd2F5LCB0byBhdm9pZCBtaXhpbmcgcG9saWN5 IGFuZCB0ZWNobmljYWwKPiAgICAgY2hhbmdlcy4KPiAgICAgCj4gICAgIEZpbmFsbHksIGl0IHdv dWxkIGJlIGEgbmljZSBmZWF0dXJlIHRvIGJlIGFibGUgdG8gc2VsZWN0Cj4gICAgIGEgcGFydGlj dWxhciBydW5xdWV1ZSBhcnJhbmdlbWVudCwgZXZlbiB3aGVuIGNyZWF0aW5nIGEKPiAgICAgQ3Jl ZGl0MiBjcHVwb29sLiBUaGlzIGlzIGxlZnQgYXMgZnV0dXJlIHdvcmsuCj4gICAgIAo+ICAgICBT aWduZWQtb2ZmLWJ5OiBEYXJpbyBGYWdnaW9saSA8ZGFyaW8uZmFnZ2lvbGlAY2l0cml4LmNvbT4K PiAgICAgU2lnbmVkLW9mZi1ieTogVW1hIFNoYXJtYSA8dW1hLnNoYXJtYTUyM0BnbWFpbC5jb20+ Cj4gICAgIC0tLQo+ICAgICBDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRy aXguY29tPgo+ICAgICBDYzogVW1hIFNoYXJtYSA8dW1hLnNoYXJtYTUyM0BnbWFpbC5jb20+Cj4g ICAgIENjOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Cj4gICAgIC0tLQo+ICAgICBD aGFuZ2VzIGZyb20gdjM6Cj4gICAgICAqIGZpeCB0eXBlIGFuZCBvdGhlciBpc3N1ZSBpbiBjb21t ZW50czsKPiAgICAgICAgdXNlIEFSUkFZX1NJWkUgd2hlbiBpdGVyYXRpbmcgdGhlIHBhcmFtZXRl ciBzdHJpbmcgYXJyYXkuCj4gICAgIAo+ICAgICBDaGFuZ2VzIGZyb20gdjI6Cj4gICAgICAqIHZh bGlkIHN0cmluZ3MgIGFyZSBub3cgaW4gYW4gYXJyYXksIHRoYXQgd2Ugc2NhbiBkdXJpbmcKPiAg ICAgICAgcGFyYW1ldGVyIHBhcnNpbmcsIGFzIHN1Z2dlc3RlZCBkdXJpbmcgcmV2aWV3Lgo+ICAg ICAKPiAgICAgQ2FobmdlcyBmcm9tIHYxOgo+ICAgICAgKiBmaXggYnVnIGluIHBhcmFtZXRlciBw YXJzaW5nLCBhbmQgc3RhcnQgdXNpbmcgc3RyY21wKCkKPiAgICAgICAgZm9yIHRoYXQsIGFzIHJl cXVlc3RlZCBkdXJpbmcgcmV2aWV3Lgo+IAo+IGRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93biBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3du Cj4gaW5kZXggY2E3N2UzYi4uMDA0N2Y5NCAxMDA2NDQKPiAtLS0gYS9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bgo+ICsrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1h cmtkb3duCj4gQEAgLTQ2OSw2ICs0NjksMjUgQEAgY29tYmluYXRpb24gd2l0aCB0aGUgYGxvd19j cmFzaGluZm9gIGNvbW1hbmQgbGluZSBvcHRpb24uCj4gICMjIyBjcmVkaXQyXF9sb2FkXF93aW5k b3dcX3NoaWZ0Cj4gID4gYD0gPGludGVnZXI+YAo+ICAKPiArIyMjIGNyZWRpdDJcX3J1bnF1ZXVl Cj4gKz4gYD0gY29yZSB8IHNvY2tldCB8IG5vZGUgfCBhbGxgCj4gKwo+ICs+IERlZmF1bHQ6IGBz b2NrZXRgCj4gKwo+ICtTcGVjaWZ5IGhvdyBob3N0IENQVXMgYXJlIGFycmFuZ2VkIGluIHJ1bnF1 ZXVlcy4gUnVucXVldWVzIGFyZSBrZXB0Cj4gK2JhbGFuY2VkIHdpdGggcmVzcGVjdCB0byB0aGUg bG9hZCBnZW5lcmF0ZWQgYnkgdGhlIHZDUFVzIHJ1bm5pbmcgb24KPiArdGhlbS4gU21hbGxlciBy dW5xdWV1ZXMgKGFzIGluIHdpdGggYGNvcmVgKSBtZWFucyBtb3JlIGFjY3VyYXRlIGxvYWQKPiAr YmFsYW5jaW5nIChmb3IgaW5zdGFuY2UsIGl0IHdpbGwgZGVhbCBiZXR0ZXIgd2l0aCBoeXBlcnRo cmVhZGluZyksCj4gK2J1dCBhbHNvIG1vcmUgb3ZlcmhlYWQuCj4gKwo+ICtBdmFpbGFibGUgYWx0 ZXJuYXRpdmVzLCB3aXRoIHRoZWlyIG1lYW5pbmcsIGFyZToKPiArKiBgY29yZWA6IG9uZSBydW5x dWV1ZSBwZXIgZWFjaCBwaHlzaWNhbCBjb3JlIG9mIHRoZSBob3N0Owo+ICsqIGBzb2NrZXRgOiBv bmUgcnVucXVldWUgcGVyIGVhY2ggcGh5c2ljYWwgc29ja2V0ICh3aGljaCBvZnRlbiwKPiArICAg ICAgICAgICAgYnV0IG5vdCBhbHdheXMsIG1hdGNoZXMgYSBOVU1BIG5vZGUpIG9mIHRoZSBob3N0 Owo+ICsqIGBub2RlYDogb25lIHJ1bnF1ZXVlIHBlciBlYWNoIE5VTUEgbm9kZSBvZiB0aGUgaG9z dDsKPiArKiBgYWxsYDoganVzdCBvbmUgcnVucXVldWUgc2hhcmVkIGJ5IGFsbCB0aGUgbG9naWNh bCBwQ1BVcyBvZgo+ICsgICAgICAgICB0aGUgaG9zdAo+ICsKPiAgIyMjIGRiZ3AKPiAgPiBgPSBl aGNpWyA8aW50ZWdlcj4gfCBAcGNpPGJ1cz46PHNsb3Q+LjxmdW5jPiBdYAo+ICAKPiBkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRp dDIuYwo+IGluZGV4IGE2MWE0NWEuLmQ0M2Y2N2EgMTAwNjQ0Cj4gLS0tIGEveGVuL2NvbW1vbi9z Y2hlZF9jcmVkaXQyLmMKPiArKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwo+IEBAIC04 MSwxMCArODEsNiBAQAo+ICAgKiBDcmVkaXRzIGFyZSAicmVzZXQiIHdoZW4gdGhlIG5leHQgdmNw dSBpbiB0aGUgcnVucXVldWUgaXMgbGVzcyB0aGFuCj4gICAqIG9yIGVxdWFsIHRvIHplcm8uICBB dCB0aGF0IHBvaW50LCBldmVyeW9uZSdzIGNyZWRpdHMgYXJlICJjbGlwcGVkIgo+ICAgKiB0byBh IHNtYWxsIHZhbHVlLCBhbmQgYSBmaXhlZCBjcmVkaXQgaXMgYWRkZWQgdG8gZXZlcnlvbmUuCj4g LSAqCj4gLSAqIFRoZSBwbGFuIGlzIGZvciBhbGwgY29yZXMgdGhhdCBzaGFyZSBhbiBMMiB3aWxs IHNoYXJlIHRoZSBzYW1lCj4gLSAqIHJ1bnF1ZXVlLiAgQXQgdGhlIG1vbWVudCwgdGhlcmUgaXMg b25lIGdsb2JhbCBydW5xdWV1ZSBmb3IgYWxsCj4gLSAqIGNvcmVzLgo+ICAgKi8KPiAgCj4gIC8q Cj4gQEAgLTE5Myw2ICsxODksNjMgQEAgc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IG9wdF9vdmVy bG9hZF9iYWxhbmNlX3RvbGVyYW5jZSA9IC0zOwo+ICBpbnRlZ2VyX3BhcmFtKCJjcmVkaXQyX2Jh bGFuY2Vfb3ZlciIsIG9wdF9vdmVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZSk7Cj4gIAo+ICAvKgo+ ICsgKiBSdW5xdWV1ZSBvcmdhbml6YXRpb24uCj4gKyAqCj4gKyAqIFRoZSB2YXJpb3VzIGNwdXMg YXJlIHRvIGJlIGFzc2lnbmVkIGVhY2ggb25lIHRvIGEgcnVucXVldWUsIGFuZCB3ZQo+ICsgKiB3 YW50IHRoYXQgdG8gaGFwcGVuIGJhc2luZyBvbiB0b3BvbG9neS4gQXQgdGhlIG1vbWVudCwgaXQg aXMgcG9zc2libGUKPiArICogdG8gY2hvb3NlIHRvIGFycmFuZ2UgcnVucXVldWVzIHRvIGJlOgo+ ICsgKgo+ICsgKiAtIHBlci1jb3JlOiBtZWFuaW5nIHRoYXQgdGhlcmUgd2lsbCBiZSBvbmUgcnVu cXVldWUgcGVyIGVhY2ggcGh5c2ljYWwKPiArICogICAgICAgICAgICAgY29yZSBvZiB0aGUgaG9z dC4gVGhpcyB3aWxsIGhhcHBlbiBpZiB0aGUgb3B0X3J1bnF1ZXVlCj4gKyAqICAgICAgICAgICAg IHBhcmFtZXRlciBpcyBzZXQgdG8gJ2NvcmUnOwo+ICsgKgo+ICsgKiAtIHBlci1zb2NrZXQ6IG1l YW5pbmcgdGhhdCB0aGVyZSB3aWxsIGJlIG9uZSBydW5xdWV1ZSBwZXIgZWFjaCBwaHlzaWNhbAo+ ICsgKiAgICAgICAgICAgICAgIHNvY2tldCAoQUtBIHBhY2thZ2UsIHdoaWNoIG9mdGVuLCBidXQg bm90IGFsd2F5cywgYWxzbwo+ICsgKiAgICAgICAgICAgICAgIG1hdGNoZXMgYSBOVU1BIG5vZGUp IG9mIHRoZSBob3N0OyBUaGlzIHdpbGwgaGFwcGVuIGlmCj4gKyAqICAgICAgICAgICAgICAgdGhl IG9wdF9ydW5xdWV1ZSBwYXJhbWV0ZXIgaXMgc2V0IHRvICdzb2NrZXQnOwo+ICsgKgo+ICsgKiAt IHBlci1ub2RlOiBtZWFuaW5nIHRoYXQgdGhlcmUgd2lsbCBiZSBvbmUgcnVucXVldWUgcGVyIGVh Y2ggcGh5c2ljYWwKPiArICogICAgICAgICAgICAgTlVNQSBub2RlIG9mIHRoZSBob3N0LiBUaGlz IHdpbGwgaGFwcGVuIGlmIHRoZSBvcHRfcnVucXVldWUKPiArICogICAgICAgICAgICAgcGFyYW1l dGVyIGlzIHNldCB0byAnbm9kZSc7Cj4gKyAqCj4gKyAqIC0gZ2xvYmFsOiBtZWFuaW5nIHRoYXQg dGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBydW5xdWV1ZSB0byB3aGljaCBhbGwgdGhlCj4gKyAqICAg ICAgICAgICAobG9naWNhbCkgcHJvY2Vzc29ycyBvZiB0aGUgaG9zdCBiZWxvbmcuIFRoaXMgd2ls bCBoYXBwZW4gaWYKPiArICogICAgICAgICAgIHRoZSBvcHRfcnVucXVldWUgcGFyYW1ldGVyIGlz IHNldCB0byAnYWxsJy4KPiArICoKPiArICogRGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiBvcHRf cnVucXVldWUsIHRoZXJlZm9yZSwgY3B1cyB0aGF0IGFyZSBwYXJ0IG9mCj4gKyAqIGVpdGhlciB0 aGUgc2FtZSBwaHlzaWNhbCBjb3JlLCB0aGUgc2FtZSBwaHlzaWNhbCBzb2NrZXQsIHRoZSBzYW1l IE5VTUEKPiArICogbm9kZSwgb3IganVzdCBhbGwgb2YgdGhlbSwgd2lsbCBiZSBwdXQgdG9nZXRo ZXIgdG8gZm9ybSBydW5xdWV1ZXMuCj4gKyAqLwo+ICsjZGVmaW5lIE9QVF9SVU5RVUVVRV9DT1JF ICAgMAo+ICsjZGVmaW5lIE9QVF9SVU5RVUVVRV9TT0NLRVQgMQo+ICsjZGVmaW5lIE9QVF9SVU5R VUVVRV9OT0RFICAgMgo+ICsjZGVmaW5lIE9QVF9SVU5RVUVVRV9BTEwgICAgMwo+ICtzdGF0aWMg Y29uc3QgY2hhciAqY29uc3Qgb3B0X3J1bnF1ZXVlX3N0cltdID0gewo+ICsgICAgW09QVF9SVU5R VUVVRV9DT1JFXSA9ICJjb3JlIiwKPiArICAgIFtPUFRfUlVOUVVFVUVfU09DS0VUXSA9ICJzb2Nr ZXQiLAo+ICsgICAgW09QVF9SVU5RVUVVRV9OT0RFXSA9ICJub2RlIiwKPiArICAgIFtPUFRfUlVO UVVFVUVfQUxMXSA9ICJhbGwiCj4gK307Cj4gK3N0YXRpYyBpbnQgX19yZWFkX21vc3RseSBvcHRf cnVucXVldWUgPSBPUFRfUlVOUVVFVUVfU09DS0VUOwo+ICsKPiArc3RhdGljIHZvaWQgcGFyc2Vf Y3JlZGl0Ml9ydW5xdWV1ZShjb25zdCBjaGFyICpzKQo+ICt7Cj4gKyAgICB1bnNpZ25lZCBpbnQg aTsKPiArCj4gKyAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUob3B0X3J1bnF1ZXVlX3N0 cik7IGkrKyApCj4gKyAgICB7Cj4gKyAgICAgICAgaWYgKCAhc3RyY21wKHMsIG9wdF9ydW5xdWV1 ZV9zdHJbaV0pICkKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIG9wdF9ydW5xdWV1ZSA9IGk7 Cj4gKyAgICAgICAgICAgIHJldHVybjsKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAg cHJpbnRrKCJXQVJOSU5HLCB1bnJlY29nbml6ZWQgdmFsdWUgb2YgY3JlZGl0Ml9ydW5xdWV1ZSBv cHRpb24hXG4iKTsKPiArfQo+ICtjdXN0b21fcGFyYW0oImNyZWRpdDJfcnVucXVldWUiLCBwYXJz ZV9jcmVkaXQyX3J1bnF1ZXVlKTsKPiArCj4gKy8qCj4gICAqIFBlci1ydW5xdWV1ZSBkYXRhCj4g ICAqLwo+ICBzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhIHsKPiBAQCAtMTk3NCw2ICsyMDI3 LDIyIEBAIHN0YXRpYyB2b2lkIGRlYWN0aXZhdGVfcnVucXVldWUoc3RydWN0IGNzY2hlZDJfcHJp dmF0ZSAqcHJ2LCBpbnQgcnFpKQo+ICAgICAgY3B1bWFza19jbGVhcl9jcHUocnFpLCAmcHJ2LT5h Y3RpdmVfcXVldWVzKTsKPiAgfQo+ICAKPiArc3RhdGljIGlubGluZSBib29sX3Qgc2FtZV9ub2Rl KHVuc2lnbmVkIGludCBjcHVhLCB1bnNpZ25lZCBpbnQgY3B1YikKPiArewo+ICsgICAgcmV0dXJu IGNwdV90b19ub2RlKGNwdWEpID09IGNwdV90b19ub2RlKGNwdWIpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW5saW5lIGJvb2xfdCBzYW1lX3NvY2tldCh1bnNpZ25lZCBpbnQgY3B1YSwgdW5zaWduZWQg aW50IGNwdWIpCj4gK3sKPiArICAgIHJldHVybiBjcHVfdG9fc29ja2V0KGNwdWEpID09IGNwdV90 b19zb2NrZXQoY3B1Yik7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgYm9vbF90IHNhbWVfY29y ZSh1bnNpZ25lZCBpbnQgY3B1YSwgdW5zaWduZWQgaW50IGNwdWIpCj4gK3sKPiArICAgIHJldHVy biBzYW1lX3NvY2tldChjcHVhLCBjcHViKSAmJgo+ICsgICAgICAgICAgIGNwdV90b19jb3JlKGNw dWEpID09IGNwdV90b19jb3JlKGNwdWIpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdW5zaWduZWQgaW50 Cj4gIGNwdV90b19ydW5xdWV1ZShzdHJ1Y3QgY3NjaGVkMl9wcml2YXRlICpwcnYsIHVuc2lnbmVk IGludCBjcHUpCj4gIHsKPiBAQCAtMjAwNiw3ICsyMDc1LDEwIEBAIGNwdV90b19ydW5xdWV1ZShz dHJ1Y3QgY3NjaGVkMl9wcml2YXRlICpwcnYsIHVuc2lnbmVkIGludCBjcHUpCj4gICAgICAgICAg QlVHX09OKGNwdV90b19zb2NrZXQoY3B1KSA9PSBYRU5fSU5WQUxJRF9TT0NLRVRfSUQgfHwKPiAg ICAgICAgICAgICAgICAgY3B1X3RvX3NvY2tldChwZWVyX2NwdSkgPT0gWEVOX0lOVkFMSURfU09D S0VUX0lEKTsKPiAgCj4gLSAgICAgICAgaWYgKCBjcHVfdG9fc29ja2V0KGNwdW1hc2tfZmlyc3Qo JnJxZC0+YWN0aXZlKSkgPT0gY3B1X3RvX3NvY2tldChjcHUpICkKPiArICAgICAgICBpZiAoIG9w dF9ydW5xdWV1ZSA9PSBPUFRfUlVOUVVFVUVfQUxMIHx8Cj4gKyAgICAgICAgICAgICAob3B0X3J1 bnF1ZXVlID09IE9QVF9SVU5RVUVVRV9DT1JFICYmIHNhbWVfY29yZShwZWVyX2NwdSwgY3B1KSkg fHwKPiArICAgICAgICAgICAgIChvcHRfcnVucXVldWUgPT0gT1BUX1JVTlFVRVVFX1NPQ0tFVCAm JiBzYW1lX3NvY2tldChwZWVyX2NwdSwgY3B1KSkgfHwKPiArICAgICAgICAgICAgIChvcHRfcnVu cXVldWUgPT0gT1BUX1JVTlFVRVVFX05PREUgJiYgc2FtZV9ub2RlKHBlZXJfY3B1LCBjcHUpKSAp Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgfQo+ICAKPiBAQCAtMjE3MCw2ICsyMjQyLDcg QEAgY3NjaGVkMl9pbml0KHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKPiAgICAgIHByaW50aygiIGxv YWRfd2luZG93X3NoaWZ0OiAlZFxuIiwgb3B0X2xvYWRfd2luZG93X3NoaWZ0KTsKPiAgICAgIHBy aW50aygiIHVuZGVybG9hZF9iYWxhbmNlX3RvbGVyYW5jZTogJWRcbiIsIG9wdF91bmRlcmxvYWRf YmFsYW5jZV90b2xlcmFuY2UpOwo+ICAgICAgcHJpbnRrKCIgb3ZlcmxvYWRfYmFsYW5jZV90b2xl cmFuY2U6ICVkXG4iLCBvcHRfb3ZlcmxvYWRfYmFsYW5jZV90b2xlcmFuY2UpOwo+ICsgICAgcHJp bnRrKCIgcnVucXVldWVzIGFycmFuZ2VtZW50OiAlc1xuIiwgb3B0X3J1bnF1ZXVlX3N0cltvcHRf cnVucXVldWVdKTsKPiAgCj4gICAgICBpZiAoIG9wdF9sb2FkX3dpbmRvd19zaGlmdCA8IExPQURB VkdfV0lORE9XX1NISUZUX01JTiApCj4gICAgICB7Cj4gCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK