From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chong Li Subject: [PATCH v7 for Xen 4.7 1/4] xen: enable per-VCPU parameter settings for RTDS scheduler Date: Wed, 16 Mar 2016 11:47:48 -0500 Message-ID: <1458146871-2813-2-git-send-email-lichong659@gmail.com> References: <1458146871-2813-1-git-send-email-lichong659@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458146871-2813-1-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: xen-devel@lists.xen.org Cc: Chong Li , Sisu Xi , george.dunlap@eu.citrix.com, dario.faggioli@citrix.com, Meng Xu , jbeulich@suse.com, lichong659@gmail.com, dgolomb@seas.upenn.edu List-Id: xen-devel@lists.xenproject.org QWRkIFhFTl9ET01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbyBhbmQgX3B1dHZjcHVpbmZvIGh5cGVy Y2FsbHMKdG8gaW5kZXBlbmRlbnRseSBnZXQgYW5kIHNldCB0aGUgc2NoZWR1bGluZyBwYXJhbWV0 ZXJzIG9mIGVhY2gKdkNQVSBvZiBhIGRvbWFpbgoKU2lnbmVkLW9mZi1ieTogQ2hvbmcgTGkgPGNo b25nLmxpQHd1c3RsLmVkdT4KU2lnbmVkLW9mZi1ieTogTWVuZyBYdSA8bWVuZ3h1QGNpcy51cGVu bi5lZHU+ClNpZ25lZC1vZmYtYnk6IFNpc3UgWGkgPHhpc2lzdUBnbWFpbC5jb20+CgotLS0KQ2hh bmdlcyBvbiBQQVRDSCB2NjoKMSkgQWRkIGV4cGxhaW4gZm9yIG5yX3ZjcHVzIGluIHN0cnVjdCB4 ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcCwgYmVjYXVzZSBpdCBpcyB1c2VkCmluIGJvdGggSU4gYW5k IE9VVCB3YXlzLgoyKSBSZW1vdmUgdGhlIGNoZWNrIGFuZCB3YXJuaW5nIGZvciB2Y3B1IHNldHRp bmdzIHdpdGggbG93IGJ1ZGdldCBvciBidWRnZXQuIE1ha2luZyB0aGlzCmZlYXR1cmUgInBlci1k b21haW4iIG9yICJwZXItb3BlcmF0aW9uIiBpcyBvbmUgb2YgdGhlIGZ1dHVyZSB3b3JrLgozKSBJ biB0aGUgKmNudGwoKSBmdW5jdGlvbnMgaW4gc2NoZWRfY3JlZGl0LmMgYW5kIHNjaGVkX2NyZWRp dDIuYywgY2hhbmdlIHRoZSAiaWYtZWxzZSIKc3RydWN0dXJlIHRvICJzd2l0Y2giIHN0cnVjdHVy ZS4KNCkgSW4gcnRfZG9tX2NudGwoKSwgdXNlIGNvcHlfdG9fZ3Vlc3QqIGluc3RlYWQgb2YgX19j b3B5X3RvX2d1ZXN0KiwgYmVjYXVzZSB0aGUgbGF0dGVyIG9uZQpyZXF1aXJlcyBsb2NrIHByb3Rl Y3Rpb24uCgpDaGFuZ2VzIG9uIFBBVENIIHY1OgoxKSBXaGVuIHByb2Nlc3NpbmcgWEVOX0RPTUNU TF9TQ0hFRE9QX2dldC9wdXR2Y3B1aW5mbywgd2UgZG8KcHJlZW1wdGlvbiBjaGVjayBpbiBhIHNp bWlsYXIgd2F5IHRvIFhFTl9TWVNDVExfcGNpdG9wb2luZm8KCkNoYW5nZXMgb24gUEFUQ0ggdjQ6 CjEpIEFkZCB1aW50MzJfdCB2Y3B1X2luZGV4IHRvIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkdWxl cl9vcC4KV2hlbiBwcm9jZXNzaW5nIFhFTl9ET01DVExfU0NIRURPUF9nZXQvcHV0dmNwdWluZm8s IHdlIGNhbGwKaHlwZXJjYWxsX3ByZWVtcHRpb25fY2hlY2sgaW4gY2FzZSB0aGUgY3VycmVudCBo eXBlcmNhbGwgbGFzdHMKdG9vIGxvbmcuIElmIHdlIGRlY2lkZSB0byBwcmVlbXB0IHRoZSBjdXJy ZW50IGh5cGVyY2FsbCwgd2UgcmVjb3JkCnRoZSBpbmRleCBvZiB0aGUgbW9zdC1yZWNlbnQgZmlu aXNoZWQgdmNwdSBpbnRvIHRoZSB2Y3B1X2luZGV4IG9mCnN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVk dWxlcl9vcC4gU28gd2hlbiB3ZSByZXN1bWUgdGhlIGh5cGVyY2FsbCBhZnRlcgpwcmVlbXB0aW9u LCB3ZSBzdGFydCBwcm9jZXNzaW5nIGZyb20gdGhlIHBvc2lvbiBzcGVjaWZpZWQgYnkgdmNwdV9p bmRleCwKYW5kIGRvbid0IG5lZWQgdG8gcmVwZWF0IHRoZSB3b3JrIHRoYXQgaGFzIGFscmVhZHkg YmVlbiBkb25lIGluIHRoZQpoeXBlcmNhbGwgYmVmb3JlIHRoZSBwcmVlbXB0aW9uLgooVGhpcyBk ZXNpZ24gaXMgYmFzZWQgb24gdGhlIGRvX2dyYW50X3RhYmxlX29wKCkgaW4gZ3JhbnRfdGFibGUu YykKCjIpIENvZGluZyBzdHlsZSBjaGFuZ2VzCgpDaGFuZ2VzIG9uIFBBVENIIHYzOgoxKSBSZW1v dmUgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRwYXJhbV90LgoKMikgQ2hhbmdlIHN0cnVjdCB4ZW5f ZG9tY3RsX3NjaGVkdWxlcl9vcC4KCjMpIENoZWNrIGlmIHBlcmlvZC9idWRnZXQgaXMgd2l0aGlu IGEgdmFsaWRhdGVkIHJhbmdlCgpDaGFuZ2VzIG9uIFBBVENIIHYyOgoxKSBDaGFuZ2Ugc3RydWN0 IHhlbl9kb21jdGxfc2NoZWR1bGVyX29wLCBmb3IgdHJhbnNmZXJyaW5nIHBlci12Y3B1IHBhcmFt ZXRlcnMKYmV0d2VlbiBsaWJ4YyBhbmQgaHlwZXJ2aXNvci4KCjIpIEhhbmRsZXIgb2YgWEVOX0RP TUNUTF9TQ0hFRE9QX2dldGluZm8gbm93IGp1c3QgcmV0dXJucyB0aGUgZGVmYXVsdCBidWRnZXQg YW5kCnBlcmlvZCB2YWx1ZXMgb2YgUlREUyBzY2hlZHVsZXIuCgozKSBIYW5kbGVyIG9mIFhFTl9E T01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbyBub3cgY2FuIHJldHVybiBhIHJhbmRvbSBzdWJzZXQg b2YKdGhlIHBhcmFtZXRlcnMgb2YgdGhlIFZDUFVzIG9mIGEgc3BlY2lmaWMgZG9tYWluCgpDQzog PGRhcmlvLmZhZ2dpb2xpQGNpdHJpeC5jb20+CkNDOiA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXgu Y29tPgpDQzogPGRnb2xvbWJAc2Vhcy51cGVubi5lZHU+CkNDOiA8bWVuZ3h1QGNpcy51cGVubi5l ZHU+CkNDOiA8amJldWxpY2hAc3VzZS5jb20+CkNDOiA8bGljaG9uZzY1OUBnbWFpbC5jb20+Ci0t LQogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYyAgIHwgIDE3ICsrKystLS0KIHhlbi9jb21tb24v c2NoZWRfY3JlZGl0Mi5jICB8ICAxNiArKysrLS0tCiB4ZW4vY29tbW9uL3NjaGVkX3J0LmMgICAg ICAgfCAxMTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHhl bi9jb21tb24vc2NoZWR1bGUuYyAgICAgICB8ICAxNSArKysrLS0KIHhlbi9pbmNsdWRlL3B1Ymxp Yy9kb21jdGwuaCB8ICA2MyArKysrKysrKysrKysrKysrKysrLS0tLS0KIDUgZmlsZXMgY2hhbmdl ZCwgMTgzIGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vc2NoZWRfY3JlZGl0LmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCmluZGV4IDBk Y2U3OTAuLjgyYjBkMTQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKKysr IGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYwpAQCAtMTA1NCwxNSArMTA1NCwxNiBAQCBjc2No ZWRfZG9tX2NudGwoCiAgICAgICogbG9jay4gUnVucSBsb2NrIG5vdCBuZWVkZWQgYW55d2hlcmUg aW4gaGVyZS4gKi8KICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAK LSAgICBpZiAoIG9wLT5jbWQgPT0gWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gKQorICAgIHN3 aXRjaCAoIG9wLT5jbWQgKQogICAgIHsKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9wdXR2 Y3B1aW5mbzoKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbzoKKyAgICAg ICAgcmV0dXJuIC1FSU5WQUw7CisgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0aW5mbzoK ICAgICAgICAgb3AtPnUuY3JlZGl0LndlaWdodCA9IHNkb20tPndlaWdodDsKICAgICAgICAgb3At PnUuY3JlZGl0LmNhcCA9IHNkb20tPmNhcDsKLSAgICB9Ci0gICAgZWxzZQotICAgIHsKLSAgICAg ICAgQVNTRVJUKG9wLT5jbWQgPT0gWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dGluZm8pOwotCisgICAg ICAgIGJyZWFrOworICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dGluZm86CiAgICAgICAg IGlmICggb3AtPnUuY3JlZGl0LndlaWdodCAhPSAwICkKICAgICAgICAgewogICAgICAgICAgICAg aWYgKCAhbGlzdF9lbXB0eSgmc2RvbS0+YWN0aXZlX3Nkb21fZWxlbSkgKQpAQCAtMTA3NSw3ICsx MDc2LDkgQEAgY3NjaGVkX2RvbV9jbnRsKAogCiAgICAgICAgIGlmICggb3AtPnUuY3JlZGl0LmNh cCAhPSAodWludDE2X3QpfjBVICkKICAgICAgICAgICAgIHNkb20tPmNhcCA9IG9wLT51LmNyZWRp dC5jYXA7Ci0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIC1F SU5WQUw7CiAgICAgfQogCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBm bGFncyk7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYyBiL3hlbi9jb21t b24vc2NoZWRfY3JlZGl0Mi5jCmluZGV4IDNjNDlmZmEuLjQ2ZDU0YmMgMTAwNjQ0Ci0tLSBhL3hl bi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5j CkBAIC0xNDIxLDE0ICsxNDIxLDE1IEBAIGNzY2hlZDJfZG9tX2NudGwoCiAgICAgICogcnVucSBs b2NrIHRvIHVwZGF0ZSBjc3Zjcy4gKi8KICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2Nr LCBmbGFncyk7CiAKLSAgICBpZiAoIG9wLT5jbWQgPT0gWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGlu Zm8gKQorICAgIHN3aXRjaCAoIG9wLT5jbWQgKQogICAgIHsKKyAgICBjYXNlIFhFTl9ET01DVExf U0NIRURPUF9wdXR2Y3B1aW5mbzoKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9nZXR2Y3B1 aW5mbzoKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVE T1BfZ2V0aW5mbzoKICAgICAgICAgb3AtPnUuY3JlZGl0Mi53ZWlnaHQgPSBzZG9tLT53ZWlnaHQ7 Ci0gICAgfQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcC0+Y21kID09IFhFTl9E T01DVExfU0NIRURPUF9wdXRpbmZvKTsKLQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFhFTl9E T01DVExfU0NIRURPUF9wdXRpbmZvOgogICAgICAgICBpZiAoIG9wLT51LmNyZWRpdDIud2VpZ2h0 ICE9IDAgKQogICAgICAgICB7CiAgICAgICAgICAgICBzdHJ1Y3QgdmNwdSAqdjsKQEAgLTE0NTcs NiArMTQ1OCw5IEBAIGNzY2hlZDJfZG9tX2NudGwoCiAgICAgICAgICAgICAgICAgdmNwdV9zY2hl ZHVsZV91bmxvY2sobG9jaywgc3ZjLT52Y3B1KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQor ICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAg ICB9CiAKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKZGlm ZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBiL3hlbi9jb21tb24vc2NoZWRfcnQuYwpp bmRleCAzZjFkMDQ3Li4zNTljMmRiIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMK KysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBAIC04Niw2ICs4NiwyMiBAQAogI2RlZmluZSBS VERTX0RFRkFVTFRfUEVSSU9EICAgICAoTUlDUk9TRUNTKDEwMDAwKSkKICNkZWZpbmUgUlREU19E RUZBVUxUX0JVREdFVCAgICAgKE1JQ1JPU0VDUyg0MDAwKSkKIAorLyoKKyAqIE1heCBwZXJpb2Q6 IG1heCBkZWx0YSBvZiB0aW1lIHR5cGUsIGJlY2F1c2UgcGVyaW9kIGlzIGFkZGVkIHRvIHRoZSB0 aW1lCisgKiBhIHZjcHUgYWN0aXZhdGVzLCBzbyB0aGlzIG11c3Qgbm90IG92ZXJmbG93LgorICog TWluIHBlcmlvZDogMTAgdXMsIGNvbnNpZGVyaW5nIHRoZSBzY2hlZHVsaW5nIG92ZXJoZWFkICh3 aGVuIHBlcmlvZCBpcworICogdG9vIGxvdywgc2NoZWR1bGluZyBpcyBpbnZva2VkIHRvbyBmcmVx dWVudGx5LCBjYXVzaW5nIGhpZ2ggb3ZlcmhlYWQpLgorICovCisjZGVmaW5lIFJURFNfTUFYX1BF UklPRCAgICAgKFNUSU1FX0RFTFRBX01BWCkKKyNkZWZpbmUgUlREU19NSU5fUEVSSU9EICAgICAo TUlDUk9TRUNTKDEwKSkKKworLyoKKyAqIE1pbiBidWRnZXQ6IDEwIHVzLCBjb25zaWRlcmluZyB0 aGUgc2NoZWR1bGluZyBvdmVyaGVhZCAod2hlbiBidWRnZXQgaXMKKyAqIGNvbnN1bWVkIHRvbyBm YXN0LCBzY2hlZHVsaW5nIGlzIGludm9rZWQgdG9vIGZyZXF1ZW50bHksIGNhdXNpbmcKKyAqIGhp Z2ggb3ZlcmhlYWQpLgorICovCisjZGVmaW5lIFJURFNfTUlOX0JVREdFVCAgICAgKE1JQ1JPU0VD UygxMCkpCisKICNkZWZpbmUgVVBEQVRFX0xJTUlUX1NISUZUICAgICAgMTAKICNkZWZpbmUgTUFY X1NDSEVEVUxFICAgICAgICAgICAgKE1JTExJU0VDUygxKSkKIC8qCkBAIC0xMTI5LDI0ICsxMTQ1 LDIyIEBAIHJ0X2RvbV9jbnRsKAogICAgIHN0cnVjdCB2Y3B1ICp2OwogICAgIHVuc2lnbmVkIGxv bmcgZmxhZ3M7CiAgICAgaW50IHJjID0gMDsKKyAgICB4ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNw dV90IGxvY2FsX3NjaGVkOworICAgIHNfdGltZV90IHBlcmlvZCwgYnVkZ2V0OworICAgIHVpbnQz Ml90IGluZGV4ID0gMDsKIAogICAgIHN3aXRjaCAoIG9wLT5jbWQgKQogICAgIHsKICAgICBjYXNl IFhFTl9ET01DVExfU0NIRURPUF9nZXRpbmZvOgotICAgICAgICBpZiAoIGQtPm1heF92Y3B1cyA+ IDAgKQotICAgICAgICB7Ci0gICAgICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2Nr LCBmbGFncyk7Ci0gICAgICAgICAgICBzdmMgPSBydF92Y3B1KGQtPnZjcHVbMF0pOwotICAgICAg ICAgICAgb3AtPnUucnRkcy5wZXJpb2QgPSBzdmMtPnBlcmlvZCAvIE1JQ1JPU0VDUygxKTsKLSAg ICAgICAgICAgIG9wLT51LnJ0ZHMuYnVkZ2V0ID0gc3ZjLT5idWRnZXQgLyBNSUNST1NFQ1MoMSk7 Ci0gICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsK LSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8qIElmIHdl IGRvbid0IGhhdmUgdmNwdXMgeWV0LCBsZXQncyBqdXN0IHJldHVybiB0aGUgZGVmYXVsdHMuICov Ci0gICAgICAgICAgICBvcC0+dS5ydGRzLnBlcmlvZCA9IFJURFNfREVGQVVMVF9QRVJJT0Q7Ci0g ICAgICAgICAgICBvcC0+dS5ydGRzLmJ1ZGdldCA9IFJURFNfREVGQVVMVF9CVURHRVQ7Ci0gICAg ICAgIH0KKyAgICAgICAgLyogUmV0dXJuIHRoZSBkZWZhdWx0IHBhcmFtZXRlcnMuCisgICAgICAg ICAqIEEgcHJldmlvdXMgYnVnIGZpeGVkIGhlcmU6CisgICAgICAgICAqIFRoZSBkZWZhdWx0IFBF UklPRCBvciBCVURHRVQgc2hvdWxkIGJlIGRpdmlkZWQgYnkgTUlDUk9TRUNTKDEpLAorICAgICAg ICAgKiBiZWZvcmUgcmV0dXJuZWQgdG8gdXBwZXIgY2FsbGVyLgorICAgICAgICAgKi8KKyAgICAg ICAgc3Bpbl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3MpOworICAgICAgICBvcC0+dS5y dGRzLnBlcmlvZCA9IFJURFNfREVGQVVMVF9QRVJJT0QgLyBNSUNST1NFQ1MoMSk7CisgICAgICAg IG9wLT51LnJ0ZHMuYnVkZ2V0ID0gUlREU19ERUZBVUxUX0JVREdFVCAvIE1JQ1JPU0VDUygxKTsK KyAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAgICAg ICAgIGJyZWFrOwogICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dGluZm86CiAgICAgICAg IGlmICggb3AtPnUucnRkcy5wZXJpb2QgPT0gMCB8fCBvcC0+dS5ydGRzLmJ1ZGdldCA9PSAwICkK QEAgLTExNjMsNiArMTE3Nyw3OCBAQCBydF9kb21fY250bCgKICAgICAgICAgfQogICAgICAgICBz cGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKICAgICAgICAgYnJlYWs7 CisgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0dmNwdWluZm86CisgICAgICAgIHdoaWxl ICggaW5kZXggPCBvcC0+dS52Lm5yX3ZjcHVzICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg KCBjb3B5X2Zyb21fZ3Vlc3Rfb2Zmc2V0KCZsb2NhbF9zY2hlZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvcC0+dS52LnZjcHVzLCBpbmRleCwgMSkgKQorICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgIHJjID0gLUVGQVVMVDsKKyAgICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICggbG9jYWxfc2NoZWQudmNwdWlk ID49IGQtPm1heF92Y3B1cyB8fAorICAgICAgICAgICAgICAgICBkLT52Y3B1W2xvY2FsX3NjaGVk LnZjcHVpZF0gPT0gTlVMTCApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmMgPSAt RUlOVkFMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAg ICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisgICAgICAgICAgICBz dmMgPSBydF92Y3B1KGQtPnZjcHVbbG9jYWxfc2NoZWQudmNwdWlkXSk7CisgICAgICAgICAgICBs b2NhbF9zY2hlZC51LnJ0ZHMuYnVkZ2V0ID0gc3ZjLT5idWRnZXQgLyBNSUNST1NFQ1MoMSk7Cisg ICAgICAgICAgICBsb2NhbF9zY2hlZC51LnJ0ZHMucGVyaW9kID0gc3ZjLT5wZXJpb2QgLyBNSUNS T1NFQ1MoMSk7CisgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ss IGZsYWdzKTsKKworICAgICAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0X29mZnNldChvcC0+dS52 LnZjcHVzLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm bG9jYWxfc2NoZWQsIDEpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByYyA9IC1F RkFVTFQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg ICBpZiAoICgrK2luZGV4ID4gMHgzZikgJiYgaHlwZXJjYWxsX3ByZWVtcHRfY2hlY2soKSApCisg ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCAhcmMgKSAvKiBu b3RpZnkgdXBwZXIgY2FsbGVyIGhvdyBtYW55IHZjcHVzIGhhdmUgYmVlbiBwcm9jZXNzZWQgKi8K KyAgICAgICAgICAgIG9wLT51LnYubnJfdmNwdXMgPSBpbmRleDsKKyAgICAgICAgYnJlYWs7CisK KyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9wdXR2Y3B1aW5mbzoKKyAgICAgICAgd2hpbGUg KCBpbmRleCA8IG9wLT51LnYubnJfdmNwdXMgKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo IGNvcHlfZnJvbV9ndWVzdF9vZmZzZXQoJmxvY2FsX3NjaGVkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9wLT51LnYudmNwdXMsIGluZGV4LCAxKSApCisgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxUOworICAgICAgICAgICAgICAgIGJy ZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCBsb2NhbF9zY2hlZC52Y3B1aWQg Pj0gZC0+bWF4X3ZjcHVzIHx8CisgICAgICAgICAgICAgICAgIGQtPnZjcHVbbG9jYWxfc2NoZWQu dmNwdWlkXSA9PSBOVUxMICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByYyA9IC1F SU5WQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAg ICAgIHBlcmlvZCA9IE1JQ1JPU0VDUyhsb2NhbF9zY2hlZC51LnJ0ZHMucGVyaW9kKTsKKyAgICAg ICAgICAgIGJ1ZGdldCA9IE1JQ1JPU0VDUyhsb2NhbF9zY2hlZC51LnJ0ZHMuYnVkZ2V0KTsKKyAg ICAgICAgICAgIGlmICggcGVyaW9kID4gUlREU19NQVhfUEVSSU9EIHx8IGJ1ZGdldCA8IFJURFNf TUlOX0JVREdFVCB8fAorICAgICAgICAgICAgICAgICBidWRnZXQgPiBwZXJpb2QgfHwgcGVyaW9k IDwgUlREU19NSU5fUEVSSU9EICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByYyA9 IC1FSU5WQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAg ICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKKyAgICAgICAgICAg IHN2YyA9IHJ0X3ZjcHUoZC0+dmNwdVtsb2NhbF9zY2hlZC52Y3B1aWRdKTsKKyAgICAgICAgICAg IHN2Yy0+cGVyaW9kID0gcGVyaW9kOworICAgICAgICAgICAgc3ZjLT5idWRnZXQgPSBidWRnZXQ7 CisgICAgICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsK KworICAgICAgICAgICAgaWYgKCAoKytpbmRleCA+IDB4M2YpICYmIGh5cGVyY2FsbF9wcmVlbXB0 X2NoZWNrKCkgKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlm ICggIXJjICkgLyogbm90aWZ5IHVwcGVyIGNhbGxlciBob3cgbWFueSB2Y3B1cyBoYXZlIGJlZW4g cHJvY2Vzc2VkICovCisgICAgICAgICAgICBvcC0+dS52Lm5yX3ZjcHVzID0gaW5kZXg7CisgICAg ICAgIGJyZWFrOwogICAgIH0KIAogICAgIHJldHVybiByYzsKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vc2NoZWR1bGUuYyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwppbmRleCBjMTk1MTI5Li5jZDI1 ZTA4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMKKysrIGIveGVuL2NvbW1vbi9z Y2hlZHVsZS5jCkBAIC0xMTQ4LDExICsxMTQ4LDIwIEBAIGxvbmcgc2NoZWRfYWRqdXN0KHN0cnVj dCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcCAqb3ApCiAgICAgaWYg KCByZXQgKQogICAgICAgICByZXR1cm4gcmV0OwogCi0gICAgaWYgKCAob3AtPnNjaGVkX2lkICE9 IERPTTJPUChkKS0+c2NoZWRfaWQpIHx8Ci0gICAgICAgICAoKG9wLT5jbWQgIT0gWEVOX0RPTUNU TF9TQ0hFRE9QX3B1dGluZm8pICYmCi0gICAgICAgICAgKG9wLT5jbWQgIT0gWEVOX0RPTUNUTF9T Q0hFRE9QX2dldGluZm8pKSApCisgICAgaWYgKCBvcC0+c2NoZWRfaWQgIT0gRE9NMk9QKGQpLT5z Y2hlZF9pZCApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCisgICAgc3dpdGNoICggb3AtPmNt ZCApCisgICAgeworICAgIGNhc2UgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dGluZm86CisgICAgY2Fz ZSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0aW5mbzoKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURP UF9wdXR2Y3B1aW5mbzoKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbzoK KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cisg ICAgfQorCiAgICAgLyogTkI6IHRoZSBwbHVnZ2FibGUgc2NoZWR1bGVyIGNvZGUgbmVlZHMgdG8g dGFrZSBjYXJlCiAgICAgICogb2YgbG9ja2luZyBieSBpdHNlbGYuICovCiAgICAgaWYgKCAocmV0 ID0gU0NIRURfT1AoRE9NMk9QKGQpLCBhZGp1c3QsIGQsIG9wKSkgPT0gMCApCmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3Rs LmgKaW5kZXggN2E1NmIzZi4uOTI5N2MwMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGlj L2RvbWN0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaApAQCAtMzM4LDI0ICsz MzgsNjMgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9tYXhfdmNwdXNfdCk7 CiAjZGVmaW5lIFhFTl9TQ0hFRFVMRVJfQVJJTkM2NTMgNwogI2RlZmluZSBYRU5fU0NIRURVTEVS X1JURFMgICAgIDgKIAotLyogU2V0IG9yIGdldCBpbmZvPyAqLwordHlwZWRlZiBzdHJ1Y3QgeGVu X2RvbWN0bF9zY2hlZF9jcmVkaXQgeworICAgIHVpbnQxNl90IHdlaWdodDsKKyAgICB1aW50MTZf dCBjYXA7Cit9IHhlbl9kb21jdGxfc2NoZWRfY3JlZGl0X3Q7CisKK3R5cGVkZWYgc3RydWN0IHhl bl9kb21jdGxfc2NoZWRfY3JlZGl0MiB7CisgICAgdWludDE2X3Qgd2VpZ2h0OworfSB4ZW5fZG9t Y3RsX3NjaGVkX2NyZWRpdDJfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9y dGRzIHsKKyAgICB1aW50MzJfdCBwZXJpb2Q7CisgICAgdWludDMyX3QgYnVkZ2V0OworfSB4ZW5f ZG9tY3RsX3NjaGVkX3J0ZHNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZHBh cmFtX3ZjcHUgeworICAgIHVuaW9uIHsKKyAgICAgICAgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXRf dCBjcmVkaXQ7CisgICAgICAgIHhlbl9kb21jdGxfc2NoZWRfY3JlZGl0Ml90IGNyZWRpdDI7Cisg ICAgICAgIHhlbl9kb21jdGxfc2NoZWRfcnRkc190IHJ0ZHM7CisgICAgfSB1OworICAgIHVpbnQz Ml90IHZjcHVpZDsKKyAgICB1aW50MTZfdCBwYWRkaW5nWzJdOworfSB4ZW5fZG9tY3RsX3NjaGVk cGFyYW1fdmNwdV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9zY2hlZHBh cmFtX3ZjcHVfdCk7CisKKy8qCisgKiBTZXQgb3IgZ2V0IGluZm8/CisgKiBGb3Igc2NoZWR1bGVy cyBzdXBwb3J0aW5nIHBlci12Y3B1IHNldHRpbmdzIChlLmcuLCBSVERTKToKKyAqICBYRU5fRE9N Q1RMX1NDSEVET1BfcHV0aW5mbyBzZXRzIHBhcmFtcyBmb3IgYWxsIHZjcHVzOworICogIFhFTl9E T01DVExfU0NIRURPUF9nZXRpbmZvIGdldHMgZGVmYXVsdCBwYXJhbXM7CisgKiAgWEVOX0RPTUNU TF9TQ0hFRE9QX3B1dChnZXQpdmNwdWluZm8gc2V0cyAoZ2V0cykgcGFyYW1zIG9mIHZjcHVzOwor ICoKKyAqIEZvciBzY2hlZHVsZXJzIG5vdCBzdXBwb3J0aW5nIHBlci12Y3B1IHNldHRpbmdzOgor ICogIFhFTl9ET01DVExfU0NIRURPUF9wdXRpbmZvIHNldHMgcGFyYW1zIGZvciBhbGwgdmNwdXM7 CisgKiAgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gZ2V0cyBkb21haW4td2lzZSBwYXJhbXM7 CisgKiAgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dChnZXQpdmNwdWluZm8gcmV0dXJucyBlcnJvcjsK KyAqLwogI2RlZmluZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbyAwCiAjZGVmaW5lIFhFTl9E T01DVExfU0NIRURPUF9nZXRpbmZvIDEKKyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dHZj cHVpbmZvIDIKKyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZvIDMKIHN0cnVj dCB4ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcCB7CiAgICAgdWludDMyX3Qgc2NoZWRfaWQ7ICAvKiBY RU5fU0NIRURVTEVSXyogKi8KICAgICB1aW50MzJfdCBjbWQ7ICAgICAgIC8qIFhFTl9ET01DVExf U0NIRURPUF8qICovCiAgICAgdW5pb24gewotICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hl ZF9jcmVkaXQgewotICAgICAgICAgICAgdWludDE2X3Qgd2VpZ2h0OwotICAgICAgICAgICAgdWlu dDE2X3QgY2FwOwotICAgICAgICB9IGNyZWRpdDsKLSAgICAgICAgc3RydWN0IHhlbl9kb21jdGxf c2NoZWRfY3JlZGl0MiB7Ci0gICAgICAgICAgICB1aW50MTZfdCB3ZWlnaHQ7Ci0gICAgICAgIH0g Y3JlZGl0MjsKLSAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRfcnRkcyB7Ci0gICAgICAg ICAgICB1aW50MzJfdCBwZXJpb2Q7Ci0gICAgICAgICAgICB1aW50MzJfdCBidWRnZXQ7Ci0gICAg ICAgIH0gcnRkczsKKyAgICAgICAgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXRfdCBjcmVkaXQ7Cisg ICAgICAgIHhlbl9kb21jdGxfc2NoZWRfY3JlZGl0Ml90IGNyZWRpdDI7CisgICAgICAgIHhlbl9k b21jdGxfc2NoZWRfcnRkc190IHJ0ZHM7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICBY RU5fR1VFU1RfSEFORExFXzY0KHhlbl9kb21jdGxfc2NoZWRwYXJhbV92Y3B1X3QpIHZjcHVzOwor ICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIElOOiBOdW1iZXIgb2YgZWxlbWVudHMgaW4g dmNwdXMgYXJyYXkuCisgICAgICAgICAgICAgKiBPVVQ6IE51bWJlciBvZiBwcm9jZXNzZWQgZWxl bWVudHMgb2YgdmNwdXMgYXJyYXkuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHVpbnQz Ml90IG5yX3ZjcHVzOworICAgICAgICAgICAgdWludDMyX3QgcGFkZGluZzsKKyAgICAgICAgfSB2 OwogICAgIH0gdTsKIH07CiB0eXBlZGVmIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcCB4 ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcF90OwotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=