From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: Re: [PATCH] credi2-ratelimit: Implement rate limit for credit2 scheduler Date: Thu, 7 Jul 2016 11:59:11 +0200 Message-ID: <1467885551.23985.40.camel@citrix.com> References: <1467826414-17337-1-git-send-email-anshul.makkar@citrix.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1712977192300098157==" Return-path: In-Reply-To: <1467826414-17337-1-git-send-email-anshul.makkar@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: anshul.makkar@citrix.com, xen-devel@lists.xen.org Cc: george.dunlap@eu.citrix.com List-Id: xen-devel@lists.xenproject.org --===============1712977192300098157== Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="=-uAxqkVDoRkKPGJ+YKfDs" --=-uAxqkVDoRkKPGJ+YKfDs Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 T24gV2VkLCAyMDE2LTA3LTA2IGF0IDE4OjMzICswMTAwLCBhbnNodWwubWFra2FyQGNpdHJpeC5j b20gd3JvdGU6Cj4gRnJvbTogQW5zaHVsIE1ha2thciA8YW5zaHVsLm1ha2thckBjaXRyaXguY29t Pgo+IApIZXksIEFuc2h1bCwKClRoYW5rcyBmb3IgZG9pbmcgdGhpcyEKCj4gUmF0ZSBsaW1pdCBh c3N1cmVzIHRoYXQgYSB2Y3B1IHdpbGwgZXhlY3V0ZSBmb3IgYSBtaW5pbXVtIGFtb3VudCBvZgo+ IHRpbWUgYmVmb3JlCj4gYmVpbmcgcHV0IGF0IHRoZSBiYWNrIG9mIGEgcXVldWUgb3IgYmVpbmcg cHJlZW1wdGVkIGJ5IGhpZ2hlcgo+IHByaW9yaXR5IHRocmVhZC4KPiAKSSdkIHNheSAiYmVmb3Jl IGEgY29udGV4dCBzd2l0Y2ggb2NjdXJzIiwgb3IgImJlZm9yZSBhIGNvbnRleHQgc3dpdGNoCmlz IGFsbG93ZWQiLgoKPiBJdCBpbnRyb2R1Y2VzIGEgbWluaW11bSBhbW91bnQgb2YgbGF0ZW5jeSB0 byBlbmFibGUgYSBWTSB0byBiYXRjaCBpdHMKPiB3b3JrIGFuZAo+IGl0IGFsc28gZW5zdXJlcyB0 aGF0IHN5c3RlbSBpcyBub3Qgc3BlbmRpbmcgbW9zdCBvZiBpdHMgdGltZSBpbgo+IFZNRVhJVC9W TUVOVFJZIGJlY2F1c2Ugb2YgVk0gdGhhdCBpcyB3YWtpbmcvc2xlZXBpbmcgYXQgaGlnaCByYXRl Lgo+IApBZ2Fpbiwgc29tZXRoaW5nIGxpa2UsICJlbnN1cmVzIHRoYXQgY29udGV4dCBzd2l0Y2hl cyBkb2VzIG5vdCBoYXBwZW4KdG9vIGZyZXF1ZW50bHkiIHNlZW1zIG1vcmUgYWNjdXJhdGUgYW5k IHVzZWZ1bCBhcyBhIGRlc2NyaXB0aW9uLgoKSSBhbHNvIHdvdWxkbid0IHVzZSB0aGUgd29yZCAi bGF0ZW5jeSIsIGFib3ZlLCB0byBkZXNjcmliZSB0aGUgdGltZSBhClZNIGhhcyB0byBjYXJyeSBv biBzb21lIHdvcmsgdW5pbnRlcnJ1cHRlZC4KCj4gcmF0ZWxpbWl0IGNhbiBiZSBkaXNhYmxlZCBi eSBzZXR0aW5nIGl0IHRvIDAuCj4gCkdvb2QuCgo+IC0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3Jl ZGl0Mi5jCj4gKysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKPiBAQCAtMTcxLDYgKzE3 MSwxMSBAQCBpbnRlZ2VyX3BhcmFtKCJzY2hlZF9jcmVkaXQyX21pZ3JhdGVfcmVzaXN0IiwKPiBv cHRfbWlncmF0ZV9yZXNpc3QpOwo+IMKgI2RlZmluZSBjMnIoX29wcywgX2NwdSnCoMKgwqDCoMKg KENTQ0hFRDJfUFJJVihfb3BzKS0+cnVucV9tYXBbKF9jcHUpXSkKPiDCoC8qIENQVSB0byBydW5x dWV1ZSBzdHJ1Y3QgbWFjcm8gKi8KPiDCoCNkZWZpbmUgUlFEKF9vcHMsIF9jcHUpwqDCoMKgwqDC oCgmQ1NDSEVEMl9QUklWKF9vcHMpLT5ycWRbYzJyKF9vcHMsCj4gX2NwdSldKQo+ICsvKiBGaW5k IHRoZSBtYXggb2YgdGltZSBzbGljZSAqLwo+ICsjZGVmaW5lIE1BWF9UU0xJQ0UodDEsIHQyKcKg wqBcCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKHsgdHlwZW9mICh0 MSkgX3QxID0gKHQxKTsgXAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHR5cGVvZiAodDEpIF90MiA9ICh0Mik7IFwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBfdDEgPiBfdDIgPyBfdDEgPCAwID8gMCA6IF90MSA6IF90 MiA8IDAgPyAwIDoKPiBfdDI7IH0pCj4gCkknbSBiYWQgYXQgdGhpcyB0aGluZ3MsIGJ1dCBpc24n dCBzdWJ0cmFjdGluZyB0aGUgdHdvIHZhbHVlcyBhIG1vcmUKZWZmaWNpZW50LCBlZmZlY3RpdmUg YW5kIGVhc2llciB0byByZWFkIHdheSB0byBkbyB0aGlzPwoKQWxzbywgSSB0aGluayB0aGlzIG1h Y3JvIGNhbiBiZSBjYWxsZWQgc29tZXRoaW5nIGxpa2UgTUFYX1NUSU1FKCksIG9yClNUSU1FX0JF Rk9SRSAob3Igc29tZXRoaW5nIGxpa2UgdGhhdCkgYW5kIGJlIHB1dCBpbiB0aW1lLmguCgo+IEBA IC0yODAsNiArMjg1LDcgQEAgc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSB7Cj4gwqDCoMKgwqDCoHN0 cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgcnFkW05SX0NQVVNdOwo+IMKgCj4gwqDCoMKgwqDC oHVuc2lnbmVkIGludCBsb2FkX3dpbmRvd19zaGlmdDsKPiArwqDCoMKgwqB1bnNpZ25lZCByYXRl bGltaXRfdXM7IC8qIGVhY2ggY3B1cG9vbCBjYW4gaGF2ZSBpdHMgb253Cj4gcmF0ZWxpbWl0ICov Cj4gwqB9Owo+IMKgCj4gwqAvKgo+IEBAIC0xNTg4LDYgKzE1OTQsMzQgQEAgY3NjaGVkMl9kb21f Y250bCgKPiDCoMKgwqDCoMKgcmV0dXJuIHJjOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyBpbnQgY3Nj aGVkMl9zeXNfY250bChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0IHhlbl9z eXNjdGxfc2NoZWR1bGVyX29wICpzYykKPiArewo+ICvCoMKgwqDCoGludCByYyA9IC1FSU5WQUw7 Cj4gK8KgwqDCoMKgeGVuX3N5c2N0bF9jcmVkaXRfc2NoZWR1bGVfdCAqcGFyYW1zID0gJnNjLT51 LnNjaGVkX2NyZWRpdDsKPiArwqDCoMKgwqBzdHJ1Y3QgY3NjaGVkMl9wcml2YXRlICpwcnYgPSBD U0NIRUQyX1BSSVYob3BzKTsKPiArwqDCoMKgwqB1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICsKPiAr wqDCoMKgwqBzd2l0Y2ggKHNjLT5jbWQgKQo+ICvCoMKgwqDCoHsKPiArwqDCoMKgwqDCoMKgwqDC oGNhc2UgWEVOX1NZU0NUTF9TQ0hFRE9QX3B1dGluZm86Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGlmICggcGFyYW1zLT5yYXRlbGltaXRfdXMgJiYKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAoIHBhcmFtcy0+cmF0ZWxpbWl0X3VzIDwgQ1NDSEVEMl9NSU5fVElNRVIgfHwK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGFyYW1zLT5yYXRlbGltaXRf dXMgPgo+IE1JQ1JPU0VDUyhDU0NIRUQyX01BWF9USU1FUikgKSkKPgpJIHNlZSB0aGUgbGluayB3 aXRoIENTQ0hFRDJfTUlOX1RJTUVSLiBTdGlsbCwgSSB0aGluayB3ZSBjYW4ganVzdApyZXVzZSBY RU5fU1lTQ1RMX1NDSEVEX1JBVEVMSU1JVF9NQVggYW5kIF9NSU4gZnJvbSBzeXNjdGwuaC4KCklu IGZhY3QsIHRoZSBtaW5pbXVtIGludGVydmFsIG9mIHRpbWUgZm9yIHByb2dyYW1taW5nIGEgdGlt ZXIgYW5kIHRoZQptaW5pbXVtICh0aGVvcmV0aWNhbCkgdmFsdWUgdXNhYmxlIGZvciByYXRlLWxp bWl0aW5nIGFyZSwgbG9naWNhbGx5LAp0d28gZGlmZmVyZW50IHRoaW5ncy4gTm90IHRvIG1lbnRp b24sIHRoYXQgTUlOX1RJTUVSIGlzIGFuIGludGVybmFsLAppbXBsZW1lbnRhdGlvbiBkZXRhaWws IHdoaWNoIHdlIG1heSB3YW50IHRvIGNoYW5nZSBhdCBzb21lIHBvaW50LCBmb3IKdmFyaW91cyBy ZWFzb25zLCBhbmQgaXQncyBub3QgZ29vZCB0byBoYXZlIG9uZSB1c2VyIGZhY2luZyBwYXJhbWV0 ZXIKYm91bmQgdG8gc29tZXRoaW5nIGxpa2UgdGhhdCwgSU1PLgoKVGhpcyBhbHNvIHdpbGwgbWFr ZSB0aGluZ3MgbW9yZSBjb25zaXN0ZW50IChiZXR3ZWVuIENyZWRpdDEgYW5kCkNyZWRpdDIpLgoK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gcmM7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHJ2LT5yYXRlbGltaXRfdXMgPSBwYXJhbXMtPnJhdGVs aW1pdF91czsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmcHJ2LT5sb2NrLCBmbGFncyk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGJyZWFrOwo+ ICsKSW4gQ3JlZGl0MSwgdGhpcyBicmVhayBpcyBub3QgdGhlcmUsIGFuZCBwdXRpbmZvIGFsc28g cmV0dXJucyBiYWNrIHRoZQp2YWx1ZSB0aGF0IGl0IGhhcyBqdXN0IHdyaXR0ZW4uIEkgZG9uJ3Qg ZmVlbCBsaWtlIHRoaXMgaXMgdGVycmlibHkKaW1wb3J0YW50LCBidXQsIGFzIHNhaWQsIHRoZXJl J3MgdmFsdWUgaW4ga2VlcGluZyB0aGUgdHdvIHNjaGVkdWxlcnMgaW4Kc3luYywgd2l0aCByZXNw ZWN0IHRvIHRoZSBpbnRlcmZhY2UgdG8gdGhpcy4KCj4gQEAgLTE2ODAsNiArMTcxNywxNCBAQCBj c2NoZWQyX3J1bnRpbWUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAo+IGludCBjcHUsIHN0 cnVjdCBjc2NoZWQyX3ZjcHUgKnNuZXh0Cj4gwqAKPiDCoMKgwqDCoMKgLyogMSkgQmFzaWMgdGlt ZTogUnVuIHVudGlsIGNyZWRpdCBpcyAwLiAqLwo+IMKgwqDCoMKgwqBydF9jcmVkaXQgPSBzbmV4 dC0+Y3JlZGl0Owo+ICvCoMKgwqDCoGlmIChzbmV4dC0+dmNwdS0+aXNfcnVubmluZykKPiArwqDC oMKgwqDCoMKgwqDCoHJ1bnRpbWUgPSBub3cgLSBzbmV4dC0+dmNwdS0+cnVuc3RhdGUuc3RhdGVf ZW50cnlfdGltZTsKPiArwqDCoMKgwqBpZiAoIHJ1bnRpbWUgPCAwICkKPiArwqDCoMKgwqB7Cj4g K8KgwqDCoMKgwqDCoMKgwqBydW50aW1lID0gMDsKPiArwqDCoMKgwqDCoMKgwqDCoGQycHJpbnRr KCIlczogVGltZSB3ZW50IGJhY2t3YXJkcz8gbm93ICUiUFJJX3N0aW1lIgo+IHN0YXRlX2VudHJ5 X3RpbWUgJSJQUklfc3RpbWUiXG4iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBfZnVuY19fLCBub3csIHNuZXh0LT5ydW5zdGF0ZS5zdGF0ZV9lbnRyeV90aW1lKTsKPiAr wqDCoMKgwqB9Cj4gwqAKPiDCoMKgwqDCoMKgLyogMikgSWYgdGhlcmUncyBzb21lb25lIHdhaXRp bmcgd2hvc2UgY3JlZGl0IGlzIHBvc2l0aXZlLAo+IMKgwqDCoMKgwqDCoCogcnVuIHVudGlsIHlv dXIgY3JlZGl0IH49IGhpcyAqLwo+IEBAIC0xNjk1LDExICsxNzQwLDI0IEBAIGNzY2hlZDJfcnVu dGltZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCj4gaW50IGNwdSwgc3RydWN0IGNzY2hl ZDJfdmNwdSAqc25leHQKPiDCoMKgwqDCoMKgfQo+IMKgCj4gwqDCoMKgwqDCoC8qIFRoZSBuZXh0 IGd1eSBtYXkgYWN0dWFsbHkgaGF2ZSBhIGhpZ2hlciBjcmVkaXQsIGlmIHdlJ3ZlCj4gdHJpZWQg dG8KPiAtwqDCoMKgwqDCoCogYXZvaWQgbWlncmF0aW5nIGhpbSBmcm9tIGEgZGlmZmVyZW50IGNw dS7CoMKgRFRSVC7CoMKgKi8KPiArwqDCoMKgwqDCoCogYXZvaWQgbWlncmF0aW5nIGhpbSBmcm9t IGEgZGlmZmVyZW50IGNwdS7CoMKgRFRSVC4KPiArwqDCoMKgwqDCoCogRXZlbiBpZiB0aGUgbmV4 dCBndXkgaGFzIGhpZ2hlciBjcmVkaXQgYW5kIGN1cnJlbnQgdmNwdSBoYXMKPiBleGVjdXRlZAo+ ICvCoMKgwqDCoMKgKiBmb3IgbGVzcyBhbW91bnQgb2YgdGltZSB0aGFuIHJhdGUgbGltaXQsIGFs bG93IGl0IHRvIHJ1biBmb3IKPiBtaW5pbXVtCj4gK8KgwqDCoMKgwqAqIGFtb3VudCBvZiB0aW1l Lgo+ICvCoMKgwqDCoMKgKi8KPiDCoMKgwqDCoMKgaWYgKCBydF9jcmVkaXQgPD0gMCApCj4gwqDC oMKgwqDCoHsKPiAtwqDCoMKgwqDCoMKgwqDCoHRpbWUgPSBDU0NIRUQyX01JTl9USU1FUjsKPiAt wqDCoMKgwqDCoMKgwqDCoFNDSEVEX1NUQVRfQ1JBTksocnVudGltZV9taW5fdGltZXIpOwo+ICvC oMKgwqDCoMKgwqDCoMKgaWYgKCBzbmV4dC0+dmNwdS0+aXNfcnVubmluZyAmJiBwcnYtPnJhdGVs aW1pdF91cykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIGltcGxpZXMgdGhlIGN1cnJlbnQg b25lIGhhcyBleGVjdXRlZCBmb3IgdGltZSA8Cj4gcmF0ZWxpbWl0IGFuZCB0aHVzCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCogaXQgaGFzIG5lZW4gc2VsY3RlZCBpbnQgcnVucV9jYW5kaWRh dGUgdG8gcnVuIG5leHQuCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCogTm8gbmVlZCB0byBj aGVjayBmb3IgdGhpcyBjb25kaXRpb24gYWdhaW4uCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpbWUgPSBNQVhfVFNMSUNFKENTQ0hFRDJf TUlOX1RJTUVSLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoE1JQ1JPU0VDUyhwcnYtPnJhdGVsaW1pdF91cykgLQo+IHJ1bnRp bWUpOwo+ICvCoMKgwqDCoMKgwqDCoMKgZWxzZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0 aW1lID0gTUFYX1RTTElDRShDU0NIRUQyX01JTl9USU1FUiwgTUlDUk9TRUNTKHBydi0KPiA+cmF0 ZWxpbWl0X3VzKSk7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgU0NIRURfU1RBVF9DUkFOSyh0aW1l KTsKPgpJZiB5b3Ugd2FudCB0byBkZWZpbmUgYSBuZXcgcGVyZm9ybWFuY2UgY291bnRlciwgeW91 IG5lZWQgbW9yZSB0aGFuCmp1c3QgdGhpcy4gQnV0IEkgdGhpbmsgeW91IHNob3VsZCBqdXN0IG5v dCBkbyB0aGF0IGZvciBub3cuLi4KCj4gwqDCoMKgwqDCoH0KPiDCoMKgwqDCoMKgZWxzZQo+IMKg wqDCoMKgwqB7Cj4gQEAgLTE3MDksMTcgKzE3NjcsMjIgQEAgY3NjaGVkMl9ydW50aW1lKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKPiBpbnQgY3B1LCBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpz bmV4dAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgKiBhdCBhIGRpZmZlcmVudCByYXRlLiAqLwo+IMKg wqDCoMKgwqDCoMKgwqDCoHRpbWUgPSBjMnQocnFkLCBydF9jcmVkaXQsIHNuZXh0KTsKPiDCoAo+ IC3CoMKgwqDCoMKgwqDCoMKgLyogQ2hlY2sgbGltaXRzICovCj4gLcKgwqDCoMKgwqDCoMKgwqBp ZiAoIHRpbWUgPCBDU0NIRUQyX01JTl9USU1FUiApCj4gLcKgwqDCoMKgwqDCoMKgwqB7Cj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpbWUgPSBDU0NIRUQyX01JTl9USU1FUjsKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgU0NIRURfU1RBVF9DUkFOSyhydW50aW1lX21pbl90aW1lcik7Cj4g LcKgwqDCoMKgwqDCoMKgwqB9Cj4gLcKgwqDCoMKgwqDCoMKgwqBlbHNlIGlmICggdGltZSA+IENT Q0hFRDJfTUFYX1RJTUVSICkKPiArwqDCoMKgwqDCoMKgwqDCoC8qIENoZWNrIGxpbWl0cy4KPiAr wqDCoMKgwqDCoMKgwqDCoMKgKiB0aW1lID4gcmF0ZWxpbWl0IC0tPiB0aW1lID4gTUlOLgo+ICvC oMKgwqDCoMKgwqDCoMKgwqAqLwo+ICvCoMKgwqDCoMKgwqDCoMKgaWYgKCB0aW1lID4gQ1NDSEVE Ml9NQVhfVElNRVIgKQo+IMKgwqDCoMKgwqDCoMKgwqDCoHsKPiArCj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqB0aW1lID0gQ1NDSEVEMl9NQVhfVElNRVI7Cj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBTQ0hFRF9TVEFUX0NSQU5LKHJ1bnRpbWVfbWF4X3RpbWVyKTsKPiDCoMKgwqDCoMKg wqDCoMKgwqB9Cj4gK8KgwqDCoMKgwqDCoMKgwqBlbHNlCj4gK8KgwqDCoMKgwqDCoMKgwqB7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpbWUgPSBNQVhfVFNMSUNFKE1BWF9UU0xJQ0UoQ1ND SEVEMl9NSU5fVElNRVIsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoE1JQ1JPU0VDUyhw cnYtCj4gPnJhdGVsaW1pdF91cykpLCB0aW1lKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg U0NIRURfU1RBVF9DUkFOSyh0aW1lKTsKPiArwqDCoMKgwqDCoMKgwqDCoH0KPiArCj4gwqDCoMKg wqDCoH0KPiDCoApTbywgSSd2ZSBiZWVuIHRoaW5raW5nLi4uIFdoeSBkb24ndCB3ZSAianVzdCIg Zml4dXAsIHJpZ2h0IGhlcmUsIHRoZQp2YWx1ZSB0aGF0IHdlIGFyZSBhYm91dCB0byByZXR1cm4/ CgpJLmUuLCBiYXNpY2FsbHkgd2UgcmV0dXJuIHRoZSBtYXggYmV0d2VlbiB0aW1lIGFuZApwcnYt PnJ1bnRpbWVfdXMgLSBydW50aW1lICh3aXRoIHJ1bnRpbWUgYmVpbmcgPTAgaW4gY2FzZSBzbmV4 dCBoYXNuJ3QKcnVuIHlldCkuIE9yIGFtIEkgbWlzc2luZyBzb21ldGhpbmc/Cgo+IMKgwqDCoMKg wqByZXR1cm4gdGltZTsKCj4gQEAgLTE3NjIsOSArMTgzNSwxMyBAQCBydW5xX2NhbmRpZGF0ZShz dHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhCj4gKnJxZCwKPiDCoMKgwqDCoMKgwqDCoMKgwqB9 Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgwqAvKiBJZiB0aGUgbmV4dCBvbmUgb24gdGhlIGxpc3Qg aGFzIG1vcmUgY3JlZGl0IHRoYW4gY3VycmVudAo+IC3CoMKgwqDCoMKgwqDCoMKgwqAqIChvciBp ZGxlLCBpZiBjdXJyZW50IGlzIG5vdCBydW5uYWJsZSksIGNob29zZSBpdC4gKi8KPiArwqDCoMKg wqDCoMKgwqDCoMKgKiAob3IgaWRsZSwgaWYgY3VycmVudCBpcyBub3QgcnVubmFibGUpIGFuZCBj dXJyZW50IG9uZSBoYXMKPiBhbHJlYWR5Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoCogZXhlY3V0ZWQg Zm9yIG1vcmUgdGhhbiByYXRlbGltaXQuIGNob29zZSBpdC4KPiArwqDCoMKgwqDCoMKgwqDCoMKg KiBDb250cm9sIGhhcyByZWFjaGVkIGhlcmUgbWVhbnMgdGhhdCBjdXJyZW50IHZjcHUgaGFzCj4g ZXhlY3V0ZWQgPgo+ICvCoMKgwqDCoMKgwqDCoMKgwqAqIHJhdGVsaW1pdF91cyBvciByYXRlbGlt aXQgaXMgb2ZmLCBzbyBjaG9zZSB0aGUgbmV4dCBvbmUuCj4gK8KgwqDCoMKgwqDCoMKgwqDCoCov Cj4gwqDCoMKgwqDCoMKgwqDCoMKgaWYgKCBzdmMtPmNyZWRpdCA+IHNuZXh0LT5jcmVkaXQgKQo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzbmV4dCA9IHN2YzsKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBzbmV4dCA9IHN2YzsKPiDCoApJIGRvbid0IHRoaW5rIEkgc2VlIHRo ZSBuZWVkIGZvciB0aGVzZSBjaGFuZ2VzICh3aXRoIHRoaXMgbGluZSBoZXJlCmFib3ZlIGJlaW5n IG1vcmUgd3JvbmcgdGhhbiBwb2ludGxlc3MsIGFjdHVhbGx5KS4KCj4gQEAgLTIzNTMsNiArMjQz MSw4IEBAIGNzY2hlZDJfaW5pdChzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCj4gwqDCoMKgwqDCoMKg wqDCoMKgcHJ2LT5ydW5xX21hcFtpXSA9IC0xOwo+IMKgwqDCoMKgwqDCoMKgwqDCoHBydi0+cnFk W2ldLmlkID0gLTE7Cj4gwqDCoMKgwqDCoH0KPiArwqDCoMKgwqAvKiBpbml0aWFsaXplIHJhdGVs aW1pdCAqLwo+ICvCoMKgwqDCoHBydi0+cmF0ZWxpbWl0X3VzID0gMTAwMCAqIENTQ0hFRDJfTUlO X1RJTUVSOwo+IMKgCj4gwqDCoMKgwqDCoHBydi0+bG9hZF93aW5kb3dfc2hpZnQgPSBvcHRfbG9h ZF93aW5kb3dfc2hpZnQ7Cj4KTW1tLi4uIEknZCByYXRoZXIgc2V0IHRoaXMgdG8gZWl0aGVyIDAg KHNvLCBkaXNhYmxlZCkKb3LCoFhFTl9TWVNDVExfQ1NDSEVEX1RTTElDRV9NSU4gKGJ1dCBJIGlu ZGVlZCBwcmVmZXIgMCkgYnkgZGVmYXVsdC4KVGhlbiBkbyBzb21lIGV4cGVyaW1lbnRzLCBzZWUg aWYgaXQgaGVscHMgYW5kIHRyeSB0byBjb21lIHVwIHdpdGggYQpyZWFzb25hYmxlIHZhbHVlLgoK VGhhbmtzIGFuZCByZWdhcmRzLApEYXJpbwotLSAKPDxUaGlzIGhhcHBlbnMgYmVjYXVzZSBJIGNo b29zZSBpdCB0byBoYXBwZW4hPj4gKFJhaXN0bGluIE1hamVyZSkKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRGFyaW8gRmFn Z2lvbGksIFBoLkQsIGh0dHA6Ly9hYm91dC5tZS9kYXJpby5mYWdnaW9saQpTZW5pb3IgU29mdHdh cmUgRW5naW5lZXIsIENpdHJpeCBTeXN0ZW1zIFImRCBMdGQuLCBDYW1icmlkZ2UgKFVLKQoK --=-uAxqkVDoRkKPGJ+YKfDs Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCAAGBQJXfifvAAoJEBZCeImluHPu5FcQAOl2sEP/UGWgBKun62gbZbrD vs0PshL211jjOD34vnjxzgO52MokRZgHJpTMYlOiOuGMI9IqPda6DLFZ3Bzyv1Od q1f5Z/sGvNTh8x2DKgOGgd1eHdHp36qN2WAAcI0xnrVvCprviRDnYy8AFlhd/Jpy VjI97bzXRQv+NYaXdbBYa1jjOd6rEdQFGdOp2I6y9xTgdvr2mlxkESAK15E0iNKz IISnlsgrIcCa+hK5VOPHNeqQx0zHmwkfX449bPcluBFkNlu1dDyeuT8a23EVIoEj uSMyqVmVTWMPx9E37OubZCw4Me4SmSvrURHe+pDFjI9VI0msTkfqL8wEXZEJvFY6 StVkiFfcAx7/j2QjfN6x1DOEubOU/QzufaCfLR1/0UqVreq9LaZXr3Akdy23zGf7 qX4hoqrNa/6Rc0rqteRxYlXJKdJcZSL6N6psGGGxINZ/wNhKrRdlmMPlEkyitRf4 wXwOiyCv3Rq90uMdsJP+BhUs3lXHYCQ7N+M+kIU0VkcbsMxc7LJGKs4ZVgzb3ogs tyKDQx8lfShfvwRwf0Qj8Z6wmzo5UzrBugMWZ0UOdikdY63+/pHGc8BwIDRMu031 oKFrRnE1ScI3r8cFx7Av7v2M2V68QOQHWbAEzvO+pk8VbhbVDvmmyYEQqcszOCXD 2EusvWSv93bs5kFeGjqJ =e5a3 -----END PGP SIGNATURE----- --=-uAxqkVDoRkKPGJ+YKfDs-- --===============1712977192300098157== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg== --===============1712977192300098157==--