From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chong Li Subject: [PATCH v6 for Xen 4.7 1/4] xen: enable per-VCPU parameter settings for RTDS scheduler Date: Sun, 6 Mar 2016 11:55:55 -0600 Message-ID: <1457286958-5427-2-git-send-email-lichong659@gmail.com> References: <1457286958-5427-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: <1457286958-5427-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 bmdlcyBvbiBQQVRDSCB2NToKMSkgV2hlbiBwcm9jZXNzaW5nIFhFTl9ET01DVExfU0NIRURPUF9n ZXQvcHV0dmNwdWluZm8sIHdlIGRvCnByZWVtcHRpb24gY2hlY2sgaW4gYSBzaW1pbGFyIHdheSB0 byBYRU5fU1lTQ1RMX3BjaXRvcG9pbmZvCgpDaGFuZ2VzIG9uIFBBVENIIHY0OgoxKSBBZGQgdWlu dDMyX3QgdmNwdV9pbmRleCB0byBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZHVsZXJfb3AuCldoZW4g cHJvY2Vzc2luZyBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0L3B1dHZjcHVpbmZvLCB3ZSBjYWxsCmh5 cGVyY2FsbF9wcmVlbXB0aW9uX2NoZWNrIGluIGNhc2UgdGhlIGN1cnJlbnQgaHlwZXJjYWxsIGxh c3RzCnRvbyBsb25nLiBJZiB3ZSBkZWNpZGUgdG8gcHJlZW1wdCB0aGUgY3VycmVudCBoeXBlcmNh bGwsIHdlIHJlY29yZAp0aGUgaW5kZXggb2YgdGhlIG1vc3QtcmVjZW50IGZpbmlzaGVkIHZjcHUg aW50byB0aGUgdmNwdV9pbmRleCBvZgpzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZHVsZXJfb3AuIFNv IHdoZW4gd2UgcmVzdW1lIHRoZSBoeXBlcmNhbGwgYWZ0ZXIKcHJlZW1wdGlvbiwgd2Ugc3RhcnQg cHJvY2Vzc2luZyBmcm9tIHRoZSBwb3Npb24gc3BlY2lmaWVkIGJ5IHZjcHVfaW5kZXgsCmFuZCBk b24ndCBuZWVkIHRvIHJlcGVhdCB0aGUgd29yayB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gZG9uZSBp biB0aGUKaHlwZXJjYWxsIGJlZm9yZSB0aGUgcHJlZW1wdGlvbi4KKFRoaXMgZGVzaWduIGlzIGJh c2VkIG9uIHRoZSBkb19ncmFudF90YWJsZV9vcCgpIGluIGdyYW50X3RhYmxlLmMpCgoyKSBDb2Rp bmcgc3R5bGUgY2hhbmdlcwoKQ2hhbmdlcyBvbiBQQVRDSCB2MzoKMSkgUmVtb3ZlIHN0cnVjdCB4 ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdC4KCjIpIENoYW5nZSBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hl ZHVsZXJfb3AuCgozKSBDaGVjayBpZiBwZXJpb2QvYnVkZ2V0IGlzIHdpdGhpbiBhIHZhbGlkYXRl ZCByYW5nZQoKQ2hhbmdlcyBvbiBQQVRDSCB2MjoKMSkgQ2hhbmdlIHN0cnVjdCB4ZW5fZG9tY3Rs X3NjaGVkdWxlcl9vcCwgZm9yIHRyYW5zZmVycmluZyBwZXItdmNwdSBwYXJhbWV0ZXJzCmJldHdl ZW4gbGlieGMgYW5kIGh5cGVydmlzb3IuCgoyKSBIYW5kbGVyIG9mIFhFTl9ET01DVExfU0NIRURP UF9nZXRpbmZvIG5vdyBqdXN0IHJldHVybnMgdGhlIGRlZmF1bHQgYnVkZ2V0IGFuZApwZXJpb2Qg dmFsdWVzIG9mIFJURFMgc2NoZWR1bGVyLgoKMykgSGFuZGxlciBvZiBYRU5fRE9NQ1RMX1NDSEVE T1BfZ2V0dmNwdWluZm8gbm93IGNhbiByZXR1cm4gYSByYW5kb20gc3Vic2V0IG9mCnRoZSBwYXJh bWV0ZXJzIG9mIHRoZSBWQ1BVcyBvZiBhIHNwZWNpZmljIGRvbWFpbgoKQ0M6IDxkYXJpby5mYWdn aW9saUBjaXRyaXguY29tPgpDQzogPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KQ0M6IDxk Z29sb21iQHNlYXMudXBlbm4uZWR1PgpDQzogPG1lbmd4dUBjaXMudXBlbm4uZWR1PgpDQzogPGpi ZXVsaWNoQHN1c2UuY29tPgpDQzogPGxpY2hvbmc2NTlAZ21haWwuY29tPgotLS0KIHhlbi9jb21t b24vc2NoZWRfY3JlZGl0LmMgICB8ICAgNCArKwogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMg IHwgICA0ICsrCiB4ZW4vY29tbW9uL3NjaGVkX3J0LmMgICAgICAgfCAxMzAgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIHhlbi9jb21tb24vc2NoZWR1bGUuYyAg ICAgICB8ICAxNSArKysrLQogeGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIHwgIDU5ICsrKysr KysrKysrKysrKystLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspLCAzMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jIGIveGVu L2NvbW1vbi9zY2hlZF9jcmVkaXQuYwppbmRleCAwZGNlNzkwLi40NTVjNjg0IDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0 LmMKQEAgLTEwNTQsNiArMTA1NCwxMCBAQCBjc2NoZWRfZG9tX2NudGwoCiAgICAgICogbG9jay4g UnVucSBsb2NrIG5vdCBuZWVkZWQgYW55d2hlcmUgaW4gaGVyZS4gKi8KICAgICBzcGluX2xvY2tf aXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAKKyAgICBpZiAoIG9wLT5jbWQgPT0gWEVOX0RP TUNUTF9TQ0hFRE9QX3B1dHZjcHVpbmZvIHx8CisgICAgICAgICBvcC0+Y21kID09IFhFTl9ET01D VExfU0NIRURPUF9nZXR2Y3B1aW5mbyApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCiAgICAg aWYgKCBvcC0+Y21kID09IFhFTl9ET01DVExfU0NIRURPUF9nZXRpbmZvICkKICAgICB7CiAgICAg ICAgIG9wLT51LmNyZWRpdC53ZWlnaHQgPSBzZG9tLT53ZWlnaHQ7CmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL3NjaGVkX2NyZWRpdDIuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCmluZGV4 IDNjNDlmZmEuLmMzMDQ5YTAgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5j CisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCkBAIC0xNDIxLDYgKzE0MjEsMTAgQEAg Y3NjaGVkMl9kb21fY250bCgKICAgICAgKiBydW5xIGxvY2sgdG8gdXBkYXRlIGNzdmNzLiAqLwog ICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKIAorICAgIGlmICggb3At PmNtZCA9PSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0dmNwdWluZm8gfHwKKyAgICAgICAgIG9wLT5j bWQgPT0gWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZvICkKKyAgICAgICAgcmV0dXJuIC1F SU5WQUw7CisKICAgICBpZiAoIG9wLT5jbWQgPT0gWEVOX0RPTUNUTF9TQ0hFRE9QX2dldGluZm8g KQogICAgIHsKICAgICAgICAgb3AtPnUuY3JlZGl0Mi53ZWlnaHQgPSBzZG9tLT53ZWlnaHQ7CmRp ZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMgYi94ZW4vY29tbW9uL3NjaGVkX3J0LmMK aW5kZXggM2YxZDA0Ny4uNGZjYmY0MCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9ydC5j CisrKyBiL3hlbi9jb21tb24vc2NoZWRfcnQuYwpAQCAtODYsNiArODYsMjIgQEAKICNkZWZpbmUg UlREU19ERUZBVUxUX1BFUklPRCAgICAgKE1JQ1JPU0VDUygxMDAwMCkpCiAjZGVmaW5lIFJURFNf REVGQVVMVF9CVURHRVQgICAgIChNSUNST1NFQ1MoNDAwMCkpCiAKKy8qCisgKiBNYXggcGVyaW9k OiBtYXggZGVsdGEgb2YgdGltZSB0eXBlLCBiZWNhdXNlIHBlcmlvZCBpcyBhZGRlZCB0byB0aGUg dGltZQorICogYSB2Y3B1IGFjdGl2YXRlcywgc28gdGhpcyBtdXN0IG5vdCBvdmVyZmxvdy4KKyAq IE1pbiBwZXJpb2Q6IDEwIHVzLCBjb25zaWRlcmluZyB0aGUgc2NoZWR1bGluZyBvdmVyaGVhZCAo d2hlbiBwZXJpb2QgaXMKKyAqIHRvbyBsb3csIHNjaGVkdWxpbmcgaXMgaW52b2tlZCB0b28gZnJl cXVlbnRseSwgY2F1c2luZyBoaWdoIG92ZXJoZWFkKS4KKyAqLworI2RlZmluZSBSVERTX01BWF9Q RVJJT0QgICAgIChTVElNRV9ERUxUQV9NQVgpCisjZGVmaW5lIFJURFNfTUlOX1BFUklPRCAgICAg KE1JQ1JPU0VDUygxMCkpCisKKy8qCisgKiBNaW4gYnVkZ2V0OiAxMCB1cywgY29uc2lkZXJpbmcg dGhlIHNjaGVkdWxpbmcgb3ZlcmhlYWQgKHdoZW4gYnVkZ2V0IGlzCisgKiBjb25zdW1lZCB0b28g ZmFzdCwgc2NoZWR1bGluZyBpcyBpbnZva2VkIHRvbyBmcmVxdWVudGx5LCBjYXVzaW5nCisgKiBo aWdoIG92ZXJoZWFkKS4KKyAqLworI2RlZmluZSBSVERTX01JTl9CVURHRVQgICAgIChNSUNST1NF Q1MoMTApKQorCiAjZGVmaW5lIFVQREFURV9MSU1JVF9TSElGVCAgICAgIDEwCiAjZGVmaW5lIE1B WF9TQ0hFRFVMRSAgICAgICAgICAgIChNSUxMSVNFQ1MoMSkpCiAvKgpAQCAtMTEzMCwyMyArMTE0 NiwxNyBAQCBydF9kb21fY250bCgKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIGludCBy YyA9IDA7CiAKKyAgICB4ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNwdV90IGxvY2FsX3NjaGVkOwor ICAgIHNfdGltZV90IHBlcmlvZCwgYnVkZ2V0OworICAgIHVpbnQzMl90IGluZGV4ID0gMDsKKwog ICAgIHN3aXRjaCAoIG9wLT5jbWQgKQogICAgIHsKLSAgICBjYXNlIFhFTl9ET01DVExfU0NIRURP UF9nZXRpbmZvOgotICAgICAgICBpZiAoIGQtPm1heF92Y3B1cyA+IDAgKQotICAgICAgICB7Ci0g ICAgICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7Ci0gICAgICAg ICAgICBzdmMgPSBydF92Y3B1KGQtPnZjcHVbMF0pOwotICAgICAgICAgICAgb3AtPnUucnRkcy5w ZXJpb2QgPSBzdmMtPnBlcmlvZCAvIE1JQ1JPU0VDUygxKTsKLSAgICAgICAgICAgIG9wLT51LnJ0 ZHMuYnVkZ2V0ID0gc3ZjLT5idWRnZXQgLyBNSUNST1NFQ1MoMSk7Ci0gICAgICAgICAgICBzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKLSAgICAgICAgfQotICAgICAg ICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8qIElmIHdlIGRvbid0IGhhdmUgdmNwdXMg eWV0LCBsZXQncyBqdXN0IHJldHVybiB0aGUgZGVmYXVsdHMuICovCi0gICAgICAgICAgICBvcC0+ dS5ydGRzLnBlcmlvZCA9IFJURFNfREVGQVVMVF9QRVJJT0Q7Ci0gICAgICAgICAgICBvcC0+dS5y dGRzLmJ1ZGdldCA9IFJURFNfREVGQVVMVF9CVURHRVQ7Ci0gICAgICAgIH0KKyAgICBjYXNlIFhF Tl9ET01DVExfU0NIRURPUF9nZXRpbmZvOiAvKiByZXR1cm4gdGhlIGRlZmF1bHQgcGFyYW1ldGVy cyAqLworICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisgICAg ICAgIG9wLT51LnJ0ZHMucGVyaW9kID0gUlREU19ERUZBVUxUX1BFUklPRCAvIE1JQ1JPU0VDUygx KTsKKyAgICAgICAgb3AtPnUucnRkcy5idWRnZXQgPSBSVERTX0RFRkFVTFRfQlVER0VUIC8gTUlD Uk9TRUNTKDEpOworICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZs YWdzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5m bzoKICAgICAgICAgaWYgKCBvcC0+dS5ydGRzLnBlcmlvZCA9PSAwIHx8IG9wLT51LnJ0ZHMuYnVk Z2V0ID09IDAgKQpAQCAtMTE2Myw2ICsxMTczLDk2IEBAIHJ0X2RvbV9jbnRsKAogICAgICAgICB9 CiAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwogICAg ICAgICBicmVhazsKKyAgICBjYXNlIFhFTl9ET01DVExfU0NIRURPUF9nZXR2Y3B1aW5mbzoKKyAg ICAgICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbChvcC0+dS52LnZjcHVzKSApCisgICAgICAg IHsKKyAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg ICB9CisgICAgICAgIHdoaWxlICggaW5kZXggPCBvcC0+dS52Lm5yX3ZjcHVzICkKKyAgICAgICAg eworICAgICAgICAgICAgaWYgKCBjb3B5X2Zyb21fZ3Vlc3Rfb2Zmc2V0KCZsb2NhbF9zY2hlZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgb3AtPnUudi52Y3B1cywgaW5kZXgsIDEpICkKKyAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByYyA9IC1FRkFVTFQ7CisgICAgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIGxvY2FsX3NjaGVkLnZj cHVpZCA+PSBkLT5tYXhfdmNwdXMgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+dmNw dVtsb2NhbF9zY2hlZC52Y3B1aWRdID09IE5VTEwgKQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg IH0KKworICAgICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3MpOwor ICAgICAgICAgICAgc3ZjID0gcnRfdmNwdShkLT52Y3B1W2xvY2FsX3NjaGVkLnZjcHVpZF0pOwor ICAgICAgICAgICAgbG9jYWxfc2NoZWQucy5ydGRzLmJ1ZGdldCA9IHN2Yy0+YnVkZ2V0IC8gTUlD Uk9TRUNTKDEpOworICAgICAgICAgICAgbG9jYWxfc2NoZWQucy5ydGRzLnBlcmlvZCA9IHN2Yy0+ cGVyaW9kIC8gTUlDUk9TRUNTKDEpOworICAgICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisKKyAgICAgICAgICAgIGlmICggX19jb3B5X3RvX2d1ZXN0 X29mZnNldChvcC0+dS52LnZjcHVzLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgJmxvY2Fs X3NjaGVkLCAxKSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxU OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg KCAoKytpbmRleCA+IDB4M2YpICYmIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQorICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCAhcmMgJiYgKG9wLT51 LnYubnJfdmNwdXMgIT0gaW5kZXgpICkKKyAgICAgICAgICAgIG9wLT51LnYubnJfdmNwdXMgPSBp bmRleDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0dmNw dWluZm86CisgICAgICAgIGlmICggZ3Vlc3RfaGFuZGxlX2lzX251bGwob3AtPnUudi52Y3B1cykg KQorICAgICAgICB7CisgICAgICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgICAgICBicmVh azsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoIGluZGV4IDwgb3AtPnUudi5ucl92Y3B1cyAp CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0X29mZnNldCgmbG9j YWxfc2NoZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLT51LnYudmNwdXMsIGluZGV4 LCAxKSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxUOworICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCBsb2Nh bF9zY2hlZC52Y3B1aWQgPj0gZC0+bWF4X3ZjcHVzIHx8CisgICAgICAgICAgICAgICAgICAgICAg ICAgIGQtPnZjcHVbbG9jYWxfc2NoZWQudmNwdWlkXSA9PSBOVUxMICkKKyAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBlcmlvZCA9IE1JQ1JPU0VDUyhsb2NhbF9zY2hl ZC5zLnJ0ZHMucGVyaW9kKTsKKyAgICAgICAgICAgIGJ1ZGdldCA9IE1JQ1JPU0VDUyhsb2NhbF9z Y2hlZC5zLnJ0ZHMuYnVkZ2V0KTsKKyAgICAgICAgICAgIGlmICggcGVyaW9kID4gUlREU19NQVhf UEVSSU9EIHx8IGJ1ZGdldCA8IFJURFNfTUlOX0JVREdFVCB8fAorICAgICAgICAgICAgICAgICAg ICAgICAgICBidWRnZXQgPiBwZXJpb2QgfHwgcGVyaW9kIDwgUlREU19NSU5fUEVSSU9EICkKKyAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAg KiBXZSBhY2NlcHQgcGVyaW9kL2J1ZGdldCBsZXNzIHRoYW4gMTAwIHVzLCBidXQgd2lsbCB3YXJu IHVzZXJzIGFib3V0CisgICAgICAgICAgICAgKiB0aGUgbGFyZ2Ugc2NoZWR1bGluZyBvdmVyaGVh ZCBkdWUgdG8gaXQKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgaWYgKCBwZXJpb2QgPCBN SUNST1NFQ1MoMTAwKSB8fCBidWRnZXQgPCBNSUNST1NFQ1MoMTAwKSApCisgICAgICAgICAgICAg ICAgcHJpbnRrKCJXYXJuaW5nOiBwZXJpb2Qgb3IgYnVkZ2V0IHNldCB0byBsZXNzIHRoYW4gMTAw dXMuXG4iCisgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIG1heSByZXN1bHQgaW4gaGlnaCBz Y2hlZHVsaW5nIG92ZXJoZWFkLlxuIik7CisKKyAgICAgICAgICAgIHNwaW5fbG9ja19pcnFzYXZl KCZwcnYtPmxvY2ssIGZsYWdzKTsKKyAgICAgICAgICAgIHN2YyA9IHJ0X3ZjcHUoZC0+dmNwdVts b2NhbF9zY2hlZC52Y3B1aWRdKTsKKyAgICAgICAgICAgIHN2Yy0+cGVyaW9kID0gcGVyaW9kOwor ICAgICAgICAgICAgc3ZjLT5idWRnZXQgPSBidWRnZXQ7CisgICAgICAgICAgICBzcGluX3VubG9j a19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKKworICAgICAgICAgICAgaWYgKCAoKytp bmRleCA+IDB4M2YpICYmIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQorICAgICAgICAgICAg ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmICggIXJjICYmIChvcC0+dS52Lm5yX3Zj cHVzICE9IGluZGV4KSApCisgICAgICAgICAgICBvcC0+dS52Lm5yX3ZjcHVzID0gaW5kZXg7Cisg ICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIHJldHVybiByYzsKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vc2NoZWR1bGUuYyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwppbmRleCBjMTk1MTI5Li5m NGE0MDMyIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMKKysrIGIveGVuL2NvbW1v bi9zY2hlZHVsZS5jCkBAIC0xMTQ4LDEwICsxMTQ4LDE5IEBAIGxvbmcgc2NoZWRfYWRqdXN0KHN0 cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcCAqb3ApCiAgICAg aWYgKCByZXQgKQogICAgICAgICByZXR1cm4gcmV0OwogCi0gICAgaWYgKCAob3AtPnNjaGVkX2lk ICE9IERPTTJPUChkKS0+c2NoZWRfaWQpIHx8Ci0gICAgICAgICAoKG9wLT5jbWQgIT0gWEVOX0RP TUNUTF9TQ0hFRE9QX3B1dGluZm8pICYmCi0gICAgICAgICAgKG9wLT5jbWQgIT0gWEVOX0RPTUNU TF9TQ0hFRE9QX2dldGluZm8pKSApCisgICAgaWYgKCBvcC0+c2NoZWRfaWQgIT0gRE9NMk9QKGQp LT5zY2hlZF9pZCApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOworICAgIGVsc2UKKyAgICAgICAg c3dpdGNoICggb3AtPmNtZCApCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX1ND SEVET1BfcHV0aW5mbzoKKyAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfZ2V0aW5mbzoK KyAgICAgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0dmNwdWluZm86CisgICAgICAgIGNh c2UgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZvOgorICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgfQog CiAgICAgLyogTkI6IHRoZSBwbHVnZ2FibGUgc2NoZWR1bGVyIGNvZGUgbmVlZHMgdG8gdGFrZSBj YXJlCiAgICAgICogb2YgbG9ja2luZyBieSBpdHNlbGYuICovCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9wdWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKaW5kZXgg N2E1NmIzZi4uYjk5NzVmNiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5o CisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaApAQCAtMzM4LDI0ICszMzgsNTkgQEAg REVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9tYXhfdmNwdXNfdCk7CiAjZGVmaW5l IFhFTl9TQ0hFRFVMRVJfQVJJTkM2NTMgNwogI2RlZmluZSBYRU5fU0NIRURVTEVSX1JURFMgICAg IDgKIAotLyogU2V0IG9yIGdldCBpbmZvPyAqLwordHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9z Y2hlZF9jcmVkaXQgeworICAgIHVpbnQxNl90IHdlaWdodDsKKyAgICB1aW50MTZfdCBjYXA7Cit9 IHhlbl9kb21jdGxfc2NoZWRfY3JlZGl0X3Q7CisKK3R5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxf c2NoZWRfY3JlZGl0MiB7CisgICAgdWludDE2X3Qgd2VpZ2h0OworfSB4ZW5fZG9tY3RsX3NjaGVk X2NyZWRpdDJfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9ydGRzIHsKKyAg ICB1aW50MzJfdCBwZXJpb2Q7CisgICAgdWludDMyX3QgYnVkZ2V0OworfSB4ZW5fZG9tY3RsX3Nj aGVkX3J0ZHNfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHUg eworICAgIHVuaW9uIHsKKyAgICAgICAgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXRfdCBjcmVkaXQ7 CisgICAgICAgIHhlbl9kb21jdGxfc2NoZWRfY3JlZGl0Ml90IGNyZWRpdDI7CisgICAgICAgIHhl bl9kb21jdGxfc2NoZWRfcnRkc190IHJ0ZHM7CisgICAgfSBzOworICAgIHVpbnQxNl90IHZjcHVp ZDsKKyAgICB1aW50MTZfdCBwYWRkaW5nWzNdOworfSB4ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNw dV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHVf dCk7CisKKy8qCisgKiBTZXQgb3IgZ2V0IGluZm8/CisgKiBGb3Igc2NoZWR1bGVycyBzdXBwb3J0 aW5nIHBlci12Y3B1IHNldHRpbmdzIChlLmcuLCBSVERTKToKKyAqICBYRU5fRE9NQ1RMX1NDSEVE T1BfcHV0aW5mbyBzZXRzIHBhcmFtcyBmb3IgYWxsIHZjcHVzOworICogIFhFTl9ET01DVExfU0NI RURPUF9nZXRpbmZvIGdldHMgZGVmYXVsdCBwYXJhbXM7CisgKiAgWEVOX0RPTUNUTF9TQ0hFRE9Q X3B1dChnZXQpdmNwdWluZm8gc2V0cyAoZ2V0cykgcGFyYW1zIG9mIHZjcHVzOworICoKKyAqIEZv ciBzY2hlZHVsZXJzIG5vdCBzdXBwb3J0aW5nIHBlci12Y3B1IHNldHRpbmdzOgorICogIFhFTl9E T01DVExfU0NIRURPUF9wdXRpbmZvIHNldHMgcGFyYW1zIGZvciBhbGwgdmNwdXM7CisgKiAgWEVO X0RPTUNUTF9TQ0hFRE9QX2dldGluZm8gZ2V0cyBkb21haW4td2lzZSBwYXJhbXM7CisgKiAgWEVO X0RPTUNUTF9TQ0hFRE9QX3B1dChnZXQpdmNwdWluZm8gcmV0dXJucyBlcnJvcjsKKyAqLwogI2Rl ZmluZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbyAwCiAjZGVmaW5lIFhFTl9ET01DVExfU0NI RURPUF9nZXRpbmZvIDEKKyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX3B1dHZjcHVpbmZvIDIK KyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZvIDMKIHN0cnVjdCB4ZW5fZG9t Y3RsX3NjaGVkdWxlcl9vcCB7CiAgICAgdWludDMyX3Qgc2NoZWRfaWQ7ICAvKiBYRU5fU0NIRURV TEVSXyogKi8KICAgICB1aW50MzJfdCBjbWQ7ICAgICAgIC8qIFhFTl9ET01DVExfU0NIRURPUF8q ICovCiAgICAgdW5pb24gewotICAgICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQg ewotICAgICAgICAgICAgdWludDE2X3Qgd2VpZ2h0OwotICAgICAgICAgICAgdWludDE2X3QgY2Fw OwotICAgICAgICB9IGNyZWRpdDsKLSAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRfY3Jl ZGl0MiB7Ci0gICAgICAgICAgICB1aW50MTZfdCB3ZWlnaHQ7Ci0gICAgICAgIH0gY3JlZGl0MjsK LSAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRfcnRkcyB7Ci0gICAgICAgICAgICB1aW50 MzJfdCBwZXJpb2Q7Ci0gICAgICAgICAgICB1aW50MzJfdCBidWRnZXQ7Ci0gICAgICAgIH0gcnRk czsKKyAgICAgICAgeGVuX2RvbWN0bF9zY2hlZF9jcmVkaXRfdCBjcmVkaXQ7CisgICAgICAgIHhl bl9kb21jdGxfc2NoZWRfY3JlZGl0Ml90IGNyZWRpdDI7CisgICAgICAgIHhlbl9kb21jdGxfc2No ZWRfcnRkc190IHJ0ZHM7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICBYRU5fR1VFU1Rf SEFORExFXzY0KHhlbl9kb21jdGxfc2NoZWRwYXJhbV92Y3B1X3QpIHZjcHVzOworICAgICAgICAg ICAgdWludDMyX3QgbnJfdmNwdXM7CisgICAgICAgICAgICB1aW50MzJfdCBwYWRkaW5nOworICAg ICAgICB9IHY7CiAgICAgfSB1OwogfTsKIHR5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2NoZWR1 bGVyX29wIHhlbl9kb21jdGxfc2NoZWR1bGVyX29wX3Q7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==