From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH] credi2-ratelimit: Implement rate limit for credit2 scheduler Date: Wed, 6 Jul 2016 18:33:34 +0100 Message-ID: <1467826414-17337-1-git-send-email-anshul.makkar@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: george.dunlap@eu.citrix.com, dario.faggioli@citrix.com, Anshul Makkar List-Id: xen-devel@lists.xenproject.org RnJvbTogQW5zaHVsIE1ha2thciA8YW5zaHVsLm1ha2thckBjaXRyaXguY29tPgoKUmF0ZSBsaW1p dCBhc3N1cmVzIHRoYXQgYSB2Y3B1IHdpbGwgZXhlY3V0ZSBmb3IgYSBtaW5pbXVtIGFtb3VudCBv ZiB0aW1lIGJlZm9yZQpiZWluZyBwdXQgYXQgdGhlIGJhY2sgb2YgYSBxdWV1ZSBvciBiZWluZyBw cmVlbXB0ZWQgYnkgaGlnaGVyIHByaW9yaXR5IHRocmVhZC4KCkl0IGludHJvZHVjZXMgYSBtaW5p bXVtIGFtb3VudCBvZiBsYXRlbmN5IHRvIGVuYWJsZSBhIFZNIHRvIGJhdGNoIGl0cyB3b3JrIGFu ZAppdCBhbHNvIGVuc3VyZXMgdGhhdCBzeXN0ZW0gaXMgbm90IHNwZW5kaW5nIG1vc3Qgb2YgaXRz IHRpbWUgaW4KVk1FWElUL1ZNRU5UUlkgYmVjYXVzZSBvZiBWTSB0aGF0IGlzIHdha2luZy9zbGVl cGluZyBhdCBoaWdoIHJhdGUuCgpyYXRlbGltaXQgY2FuIGJlIGRpc2FibGVkIGJ5IHNldHRpbmcg aXQgdG8gMC4KClNpZ25lZC1vZmYtYnk6IEFuc2h1bCBNYWtrYXIgPGFuc2h1bC5tYWtrYXJAY2l0 cml4LmNvbT4KLS0tCi0tLQogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgfCAxMTUgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg OTggaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwppbmRleCAxOTMz ZmYxLi42NzE4NTc0IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYworKysg Yi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwpAQCAtMTcxLDYgKzE3MSwxMSBAQCBpbnRlZ2Vy X3BhcmFtKCJzY2hlZF9jcmVkaXQyX21pZ3JhdGVfcmVzaXN0Iiwgb3B0X21pZ3JhdGVfcmVzaXN0 KTsKICNkZWZpbmUgYzJyKF9vcHMsIF9jcHUpICAgICAoQ1NDSEVEMl9QUklWKF9vcHMpLT5ydW5x X21hcFsoX2NwdSldKQogLyogQ1BVIHRvIHJ1bnF1ZXVlIHN0cnVjdCBtYWNybyAqLwogI2RlZmlu ZSBSUUQoX29wcywgX2NwdSkgICAgICgmQ1NDSEVEMl9QUklWKF9vcHMpLT5ycWRbYzJyKF9vcHMs IF9jcHUpXSkKKy8qIEZpbmQgdGhlIG1heCBvZiB0aW1lIHNsaWNlICovCisjZGVmaW5lIE1BWF9U U0xJQ0UodDEsIHQyKSAgXAorICAgICAgICAgICAgICAgICAgICh7IHR5cGVvZiAodDEpIF90MSA9 ICh0MSk7IFwKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YgKHQxKSBfdDIgPSAodDIpOyBc CisgICAgICAgICAgICAgICAgICAgICAgX3QxID4gX3QyID8gX3QxIDwgMCA/IDAgOiBfdDEgOiBf dDIgPCAwID8gMCA6IF90MjsgfSkKIAogLyoKICAqIFNoaWZ0cyBmb3IgbG9hZCBhdmVyYWdlLgpA QCAtMjgwLDYgKzI4NSw3IEBAIHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgewogICAgIHN0cnVjdCBj c2NoZWQyX3J1bnF1ZXVlX2RhdGEgcnFkW05SX0NQVVNdOwogCiAgICAgdW5zaWduZWQgaW50IGxv YWRfd2luZG93X3NoaWZ0OworICAgIHVuc2lnbmVkIHJhdGVsaW1pdF91czsgLyogZWFjaCBjcHVw b29sIGNhbiBoYXZlIGl0cyBvbncgcmF0ZWxpbWl0ICovCiB9OwogCiAvKgpAQCAtMTU4OCw2ICsx NTk0LDM0IEBAIGNzY2hlZDJfZG9tX2NudGwoCiAgICAgcmV0dXJuIHJjOwogfQogCitzdGF0aWMg aW50IGNzY2hlZDJfc3lzX2NudGwoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4ZW5fc3lzY3RsX3NjaGVkdWxlcl9vcCAqc2Mp Cit7CisgICAgaW50IHJjID0gLUVJTlZBTDsKKyAgICB4ZW5fc3lzY3RsX2NyZWRpdF9zY2hlZHVs ZV90ICpwYXJhbXMgPSAmc2MtPnUuc2NoZWRfY3JlZGl0OworICAgIHN0cnVjdCBjc2NoZWQyX3By aXZhdGUgKnBydiA9IENTQ0hFRDJfUFJJVihvcHMpOworICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7 CisKKyAgICBzd2l0Y2ggKHNjLT5jbWQgKQorICAgIHsKKyAgICAgICAgY2FzZSBYRU5fU1lTQ1RM X1NDSEVET1BfcHV0aW5mbzoKKyAgICAgICAgICAgIGlmICggcGFyYW1zLT5yYXRlbGltaXRfdXMg JiYKKyAgICAgICAgICAgICAgICAoIHBhcmFtcy0+cmF0ZWxpbWl0X3VzIDwgQ1NDSEVEMl9NSU5f VElNRVIgfHwKKyAgICAgICAgICAgICAgICAgIHBhcmFtcy0+cmF0ZWxpbWl0X3VzID4gTUlDUk9T RUNTKENTQ0hFRDJfTUFYX1RJTUVSKSApKQorICAgICAgICAgICAgICAgIHJldHVybiByYzsKKyAg ICAgICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKKyAgICAgICAg ICAgIHBydi0+cmF0ZWxpbWl0X3VzID0gcGFyYW1zLT5yYXRlbGltaXRfdXM7CisgICAgICAgICAg ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKKyAgICAgICAgICAg IGJyZWFrOworCisgICAgICAgIGNhc2UgWEVOX1NZU0NUTF9TQ0hFRE9QX2dldGluZm86CisgICAg ICAgICAgICBwYXJhbXMtPnJhdGVsaW1pdF91cyA9IHBydi0+cmF0ZWxpbWl0X3VzOworICAgICAg ICAgICAgcmMgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiByYzsK K30KKwogc3RhdGljIHZvaWQgKgogY3NjaGVkMl9hbGxvY19kb21kYXRhKGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywgc3RydWN0IGRvbWFpbiAqZG9tKQogewpAQCAtMTY1NywxMiArMTY5MSwx NSBAQCBjc2NoZWQyX2RvbV9kZXN0cm95KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IGRvbWFpbiAqZG9tKQogCiAvKiBIb3cgbG9uZyBzaG91bGQgd2UgbGV0IHRoaXMgdmNwdSBy dW4gZm9yPyAqLwogc3RhdGljIHNfdGltZV90Ci1jc2NoZWQyX3J1bnRpbWUoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1LCBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzbmV4dCkKK2Nz Y2hlZDJfcnVudGltZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUsCisgICAg ICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc25leHQsIHNfdGltZV90IG5vdykKIHsK LSAgICBzX3RpbWVfdCB0aW1lOyAKKyAgICBzX3RpbWVfdCB0aW1lOwogICAgIGludCBydF9jcmVk aXQ7IC8qIFByb3Bvc2VkIHJ1bnRpbWUgbWVhc3VyZWQgaW4gY3JlZGl0cyAqLwogICAgIHN0cnVj dCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCA9IFJRRChvcHMsIGNwdSk7CiAgICAgc3RydWN0 IGxpc3RfaGVhZCAqcnVucSA9ICZycWQtPnJ1bnE7CisgICAgc190aW1lX3QgcnVudGltZSA9IDA7 CisgICAgc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2ID0gQ1NDSEVEMl9QUklWKG9wcyk7CiAK ICAgICAvKgogICAgICAqIElmIHdlJ3JlIGlkbGUsIGp1c3Qgc3RheSBzby4gT3RoZXJzIChvciBl eHRlcm5hbCBldmVudHMpCkBAIC0xNjgwLDYgKzE3MTcsMTQgQEAgY3NjaGVkMl9ydW50aW1lKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSwgc3RydWN0IGNzY2hlZDJfdmNwdSAq c25leHQKIAogICAgIC8qIDEpIEJhc2ljIHRpbWU6IFJ1biB1bnRpbCBjcmVkaXQgaXMgMC4gKi8K ICAgICBydF9jcmVkaXQgPSBzbmV4dC0+Y3JlZGl0OworICAgIGlmIChzbmV4dC0+dmNwdS0+aXNf cnVubmluZykKKyAgICAgICAgcnVudGltZSA9IG5vdyAtIHNuZXh0LT52Y3B1LT5ydW5zdGF0ZS5z dGF0ZV9lbnRyeV90aW1lOworICAgIGlmICggcnVudGltZSA8IDAgKQorICAgIHsKKyAgICAgICAg cnVudGltZSA9IDA7CisgICAgICAgIGQycHJpbnRrKCIlczogVGltZSB3ZW50IGJhY2t3YXJkcz8g bm93ICUiUFJJX3N0aW1lIiBzdGF0ZV9lbnRyeV90aW1lICUiUFJJX3N0aW1lIlxuIiwKKyAgICAg ICAgICAgICAgICAgIF9mdW5jX18sIG5vdywgc25leHQtPnJ1bnN0YXRlLnN0YXRlX2VudHJ5X3Rp bWUpOworICAgIH0KIAogICAgIC8qIDIpIElmIHRoZXJlJ3Mgc29tZW9uZSB3YWl0aW5nIHdob3Nl IGNyZWRpdCBpcyBwb3NpdGl2ZSwKICAgICAgKiBydW4gdW50aWwgeW91ciBjcmVkaXQgfj0gaGlz ICovCkBAIC0xNjk1LDExICsxNzQwLDI0IEBAIGNzY2hlZDJfcnVudGltZShjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsIGludCBjcHUsIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnNuZXh0CiAgICAg fQogCiAgICAgLyogVGhlIG5leHQgZ3V5IG1heSBhY3R1YWxseSBoYXZlIGEgaGlnaGVyIGNyZWRp dCwgaWYgd2UndmUgdHJpZWQgdG8KLSAgICAgKiBhdm9pZCBtaWdyYXRpbmcgaGltIGZyb20gYSBk aWZmZXJlbnQgY3B1LiAgRFRSVC4gICovCisgICAgICogYXZvaWQgbWlncmF0aW5nIGhpbSBmcm9t IGEgZGlmZmVyZW50IGNwdS4gIERUUlQuCisgICAgICogRXZlbiBpZiB0aGUgbmV4dCBndXkgaGFz IGhpZ2hlciBjcmVkaXQgYW5kIGN1cnJlbnQgdmNwdSBoYXMgZXhlY3V0ZWQKKyAgICAgKiBmb3Ig bGVzcyBhbW91bnQgb2YgdGltZSB0aGFuIHJhdGUgbGltaXQsIGFsbG93IGl0IHRvIHJ1biBmb3Ig bWluaW11bQorICAgICAqIGFtb3VudCBvZiB0aW1lLgorICAgICAqLwogICAgIGlmICggcnRfY3Jl ZGl0IDw9IDAgKQogICAgIHsKLSAgICAgICAgdGltZSA9IENTQ0hFRDJfTUlOX1RJTUVSOwotICAg ICAgICBTQ0hFRF9TVEFUX0NSQU5LKHJ1bnRpbWVfbWluX3RpbWVyKTsKKyAgICAgICAgaWYgKCBz bmV4dC0+dmNwdS0+aXNfcnVubmluZyAmJiBwcnYtPnJhdGVsaW1pdF91cykKKyAgICAgICAgICAg LyogaW1wbGllcyB0aGUgY3VycmVudCBvbmUgaGFzIGV4ZWN1dGVkIGZvciB0aW1lIDwgcmF0ZWxp bWl0IGFuZCB0aHVzCisgICAgICAgICAgICAqIGl0IGhhcyBuZWVuIHNlbGN0ZWQgaW50IHJ1bnFf Y2FuZGlkYXRlIHRvIHJ1biBuZXh0LgorICAgICAgICAgICAgKiBObyBuZWVkIHRvIGNoZWNrIGZv ciB0aGlzIGNvbmRpdGlvbiBhZ2Fpbi4KKyAgICAgICAgICAgICovCisgICAgICAgICAgICB0aW1l ID0gTUFYX1RTTElDRShDU0NIRUQyX01JTl9USU1FUiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNSUNST1NFQ1MocHJ2LT5yYXRlbGltaXRfdXMpIC0gcnVudGltZSk7CisgICAgICAg IGVsc2UKKyAgICAgICAgICAgIHRpbWUgPSBNQVhfVFNMSUNFKENTQ0hFRDJfTUlOX1RJTUVSLCBN SUNST1NFQ1MocHJ2LT5yYXRlbGltaXRfdXMpKTsKKworICAgICAgICBTQ0hFRF9TVEFUX0NSQU5L KHRpbWUpOwogICAgIH0KICAgICBlbHNlCiAgICAgewpAQCAtMTcwOSwxNyArMTc2NywyMiBAQCBj c2NoZWQyX3J1bnRpbWUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1LCBzdHJ1 Y3QgY3NjaGVkMl92Y3B1ICpzbmV4dAogICAgICAgICAgKiBhdCBhIGRpZmZlcmVudCByYXRlLiAq LwogICAgICAgICB0aW1lID0gYzJ0KHJxZCwgcnRfY3JlZGl0LCBzbmV4dCk7CiAKLSAgICAgICAg LyogQ2hlY2sgbGltaXRzICovCi0gICAgICAgIGlmICggdGltZSA8IENTQ0hFRDJfTUlOX1RJTUVS ICkKLSAgICAgICAgewotICAgICAgICAgICAgdGltZSA9IENTQ0hFRDJfTUlOX1RJTUVSOwotICAg ICAgICAgICAgU0NIRURfU1RBVF9DUkFOSyhydW50aW1lX21pbl90aW1lcik7Ci0gICAgICAgIH0K LSAgICAgICAgZWxzZSBpZiAoIHRpbWUgPiBDU0NIRUQyX01BWF9USU1FUiApCisgICAgICAgIC8q IENoZWNrIGxpbWl0cy4KKyAgICAgICAgICogdGltZSA+IHJhdGVsaW1pdCAtLT4gdGltZSA+IE1J Ti4KKyAgICAgICAgICovCisgICAgICAgIGlmICggdGltZSA+IENTQ0hFRDJfTUFYX1RJTUVSICkK ICAgICAgICAgeworCiAgICAgICAgICAgICB0aW1lID0gQ1NDSEVEMl9NQVhfVElNRVI7CiAgICAg ICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHJ1bnRpbWVfbWF4X3RpbWVyKTsKICAgICAgICAgfQor ICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIHRpbWUgPSBNQVhfVFNMSUNFKE1B WF9UU0xJQ0UoQ1NDSEVEMl9NSU5fVElNRVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNSUNST1NFQ1MocHJ2LT5yYXRlbGltaXRfdXMpKSwgdGltZSk7CisgICAg ICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHRpbWUpOworICAgICAgICB9CisKICAgICB9CiAKICAg ICByZXR1cm4gdGltZTsKQEAgLTE3MzMsNyArMTc5Niw3IEBAIHZvaWQgX19kdW1wX2V4ZWNzdGF0 ZSh2b2lkICp1bnVzZWQpOwogc3RhdGljIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKgogcnVucV9jYW5k aWRhdGUoc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkLAogICAgICAgICAgICAgICAg c3RydWN0IGNzY2hlZDJfdmNwdSAqc2N1cnIsCi0gICAgICAgICAgICAgICBpbnQgY3B1LCBzX3Rp bWVfdCBub3cpCisgICAgICAgICAgICAgICBpbnQgY3B1LCBzX3RpbWVfdCBub3csIHN0cnVjdCBj c2NoZWQyX3ByaXZhdGUgKnBydikKIHsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICppdGVyOwogICAg IHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnNuZXh0ID0gTlVMTDsKQEAgLTE3NDQsNiArMTgwNywxNiBA QCBydW5xX2NhbmRpZGF0ZShzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQsCiAgICAg ZWxzZQogICAgICAgICBzbmV4dCA9IENTQ0hFRDJfVkNQVShpZGxlX3ZjcHVbY3B1XSk7CiAKKyAg ICAvKiByZXR1cm4gdGhlIGN1cnJlbnQgdmNwdSBpZiBpdCBoYXMgZXhlY3V0ZWQgZm9yIGxlc3Mg dGhhbiByYXRlbGltaXQuCisgICAgICogQWRqdXN0c3RtZW50IGZvciB0aGUgc2VsZWN0ZWQgdmNw dSdzIGNyZWRpdCBhbmQgZGVjaXNpb24KKyAgICAgKiBmb3IgaG93IGxvbmcgaXQgd2lsbCBydW4g d2lsbCBiZSB0YWtlbiBpbiBjc2NoZWQyX3J1bnRpbWUuCisgICAgICovCisgICAgaWYgKCBwcnYt PnJhdGVsaW1pdF91cyAmJiAhaXNfaWRsZV92Y3B1KHNjdXJyLT52Y3B1KSAmJgorICAgICAgICAg dmNwdV9ydW5uYWJsZShzY3Vyci0+dmNwdSkgJiYKKyAgICAgICAgIChub3cgLSBzY3Vyci0+dmNw dS0+cnVuc3RhdGUuc3RhdGVfZW50cnlfdGltZSkgPAorICAgICAgICAgIE1JQ1JPU0VDUyhwcnYt PnJhdGVsaW1pdF91cykgKQorICAgICAgICByZXR1cm4gc2N1cnI7CisKICAgICBsaXN0X2Zvcl9l YWNoKCBpdGVyLCAmcnFkLT5ydW5xICkKICAgICB7CiAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3Zj cHUgKiBzdmMgPSBsaXN0X2VudHJ5KGl0ZXIsIHN0cnVjdCBjc2NoZWQyX3ZjcHUsIHJ1bnFfZWxl bSk7CkBAIC0xNzYyLDkgKzE4MzUsMTMgQEAgcnVucV9jYW5kaWRhdGUoc3RydWN0IGNzY2hlZDJf cnVucXVldWVfZGF0YSAqcnFkLAogICAgICAgICB9CiAKICAgICAgICAgLyogSWYgdGhlIG5leHQg b25lIG9uIHRoZSBsaXN0IGhhcyBtb3JlIGNyZWRpdCB0aGFuIGN1cnJlbnQKLSAgICAgICAgICog KG9yIGlkbGUsIGlmIGN1cnJlbnQgaXMgbm90IHJ1bm5hYmxlKSwgY2hvb3NlIGl0LiAqLworICAg ICAgICAgKiAob3IgaWRsZSwgaWYgY3VycmVudCBpcyBub3QgcnVubmFibGUpIGFuZCBjdXJyZW50 IG9uZSBoYXMgYWxyZWFkeQorICAgICAgICAgKiBleGVjdXRlZCBmb3IgbW9yZSB0aGFuIHJhdGVs aW1pdC4gY2hvb3NlIGl0LgorICAgICAgICAgKiBDb250cm9sIGhhcyByZWFjaGVkIGhlcmUgbWVh bnMgdGhhdCBjdXJyZW50IHZjcHUgaGFzIGV4ZWN1dGVkID4KKyAgICAgICAgICogcmF0ZWxpbWl0 X3VzIG9yIHJhdGVsaW1pdCBpcyBvZmYsIHNvIGNob3NlIHRoZSBuZXh0IG9uZS4KKyAgICAgICAg ICovCiAgICAgICAgIGlmICggc3ZjLT5jcmVkaXQgPiBzbmV4dC0+Y3JlZGl0ICkKLSAgICAgICAg ICAgIHNuZXh0ID0gc3ZjOworICAgICAgICAgICAgICAgIHNuZXh0ID0gc3ZjOwogCiAgICAgICAg IC8qIEluIGFueSBjYXNlLCBpZiB3ZSBnb3QgdGhpcyBmYXIsIGJyZWFrLiAqLwogICAgICAgICBi cmVhazsKQEAgLTE3ODcsNiArMTg2NCw3IEBAIGNzY2hlZDJfc2NoZWR1bGUoCiAgICAgc3RydWN0 IGNzY2hlZDJfdmNwdSAqIGNvbnN0IHNjdXJyID0gQ1NDSEVEMl9WQ1BVKGN1cnJlbnQpOwogICAg IHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnNuZXh0ID0gTlVMTDsKICAgICBzdHJ1Y3QgdGFza19zbGlj ZSByZXQ7CisgICAgc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2ID0gQ1NDSEVEMl9QUklWKG9w cyk7CiAKICAgICBTQ0hFRF9TVEFUX0NSQU5LKHNjaGVkdWxlKTsKICAgICBDU0NIRUQyX1ZDUFVf Q0hFQ0soY3VycmVudCk7CkBAIC0xODU3LDcgKzE5MzUsNyBAQCBjc2NoZWQyX3NjaGVkdWxlKAog ICAgICAgICBzbmV4dCA9IENTQ0hFRDJfVkNQVShpZGxlX3ZjcHVbY3B1XSk7CiAgICAgfQogICAg IGVsc2UKLSAgICAgICAgc25leHQ9cnVucV9jYW5kaWRhdGUocnFkLCBzY3VyciwgY3B1LCBub3cp OworICAgICAgICBzbmV4dD1ydW5xX2NhbmRpZGF0ZShycWQsIHNjdXJyLCBjcHUsIG5vdywgcHJ2 KTsKIAogICAgIC8qIElmIHN3aXRjaGluZyBmcm9tIGEgbm9uLWlkbGUgcnVubmFibGUgdmNwdSwg cHV0IGl0CiAgICAgICogYmFjayBvbiB0aGUgcnVucXVldWUuICovCkBAIC0xOTIxLDcgKzE5OTks NyBAQCBjc2NoZWQyX3NjaGVkdWxlKAogICAgIC8qCiAgICAgICogUmV0dXJuIHRhc2sgdG8gcnVu IG5leHQuLi4KICAgICAgKi8KLSAgICByZXQudGltZSA9IGNzY2hlZDJfcnVudGltZShvcHMsIGNw dSwgc25leHQpOworICAgIHJldC50aW1lID0gY3NjaGVkMl9ydW50aW1lKG9wcywgY3B1LCBzbmV4 dCwgbm93KTsKICAgICByZXQudGFzayA9IHNuZXh0LT52Y3B1OwogCiAgICAgQ1NDSEVEMl9WQ1BV X0NIRUNLKHJldC50YXNrKTsKQEAgLTIzNTMsNiArMjQzMSw4IEBAIGNzY2hlZDJfaW5pdChzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMpCiAgICAgICAgIHBydi0+cnVucV9tYXBbaV0gPSAtMTsKICAgICAg ICAgcHJ2LT5ycWRbaV0uaWQgPSAtMTsKICAgICB9CisgICAgLyogaW5pdGlhbGl6ZSByYXRlbGlt aXQgKi8KKyAgICBwcnYtPnJhdGVsaW1pdF91cyA9IDEwMDAgKiBDU0NIRUQyX01JTl9USU1FUjsK IAogICAgIHBydi0+bG9hZF93aW5kb3dfc2hpZnQgPSBvcHRfbG9hZF93aW5kb3dfc2hpZnQ7CiAK QEAgLTIzODUsNiArMjQ2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyIHNjaGVk X2NyZWRpdDJfZGVmID0gewogICAgIC53YWtlICAgICAgICAgICA9IGNzY2hlZDJfdmNwdV93YWtl LAogCiAgICAgLmFkanVzdCAgICAgICAgID0gY3NjaGVkMl9kb21fY250bCwKKyAgICAuYWRqdXN0 X2dsb2JhbCAgPSBjc2NoZWQyX3N5c19jbnRsLAogCiAgICAgLnBpY2tfY3B1ICAgICAgID0gY3Nj aGVkMl9jcHVfcGljaywKICAgICAubWlncmF0ZSAgICAgICAgPSBjc2NoZWQyX3ZjcHVfbWlncmF0 ZSwKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==