From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH 3/5] xen: sched-null: support soft-affinity Date: Thu, 29 Jun 2017 14:56:31 +0200 Message-ID: <149874099124.524.12472246724522761078.stgit@Solace> References: <149874017405.524.14075439009139766753.stgit@Solace> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dQYzr-0006iY-AD for xen-devel@lists.xenproject.org; Thu, 29 Jun 2017 12:56:35 +0000 Received: by mail-wm0-f65.google.com with SMTP id j85so2425426wmj.0 for ; Thu, 29 Jun 2017 05:56:33 -0700 (PDT) In-Reply-To: <149874017405.524.14075439009139766753.stgit@Solace> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: George Dunlap List-Id: xen-devel@lists.xenproject.org VGhlIG51bGwgc2NoZWR1bGVyIGRvZXMgbm90IHJlYWxseSB1c2UgaGFyZC1hZmZpbml0eSBmb3IK c2NoZWR1bGluZywgaXQgdXNlcyBpdCBmb3IgJ3BsYWNlbWVudCcsIGkuZS4sIGZvciBkZWNpZGlu Zwp0byB3aGF0IHBDUFUgdG8gc3RhdGljYWxseSBhc3NpZ24gYSB2Q1BVLgoKTGV0J3MgdXNlIHNv ZnQtYWZmaW5pdHkgaW4gdGhlIHNhbWUgd2F5LCBvZiBjb3Vyc2Ugd2l0aCB0aGUKZGlmZmVyZW5j ZSB0aGF0LCBpZiB0aGVyZSdzIG5vIGZyZWUgcENQVSB3aXRoaW4gdGhlIHZDUFUncwpzb2Z0LWFm ZmluaXR5LCB3ZSBnbyBjaGVja2luZyB0aGUgaGFyZC1hZmZpbml0eSwgaW5zdGVhZCBvZgpwdXR0 aW5nIHRoZSB2Q1BVIGluIHRoZSB3YWl0cXVldWUuCgpUaGlzIGRvZXMgaGFzIG5vIGltcGFjdCBv biB0aGUgc2NoZWR1bGluZyBvdmVyaGVhZCwgYmVjYXVzZQpzb2Z0LWFmZmluaXR5IGlzIG9ubHkg Y29uc2lkZXJlZCBpbiBjb2xkLXBhdGggKGxpa2Ugd2hlbiBhCnZDUFUgam9pbnMgdGhlIHNjaGVk dWxlciBmb3IgdGhlIGZpcnN0IHRpbWUsIG9yIGlzIG1hbnVhbGx5Cm1vdmVkIGJldHdlZW4gcENQ VXMgYnkgdGhlIHVzZXIpLgoKU2lnbmVkLW9mZi1ieTogRGFyaW8gRmFnZ2lvbGkgPGRhcmlvLmZh Z2dpb2xpQGNpdHJpeC5jb20+Ci0tLQpDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBl dS5jaXRyaXguY29tPgotLS0KIHhlbi9jb21tb24vc2NoZWRfbnVsbC5jIHwgIDExMCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDc3IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vc2NoZWRfbnVsbC5jIGIveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKaW5kZXggNjEwYTE1MC4u MTljN2YwZiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKKysrIGIveGVuL2Nv bW1vbi9zY2hlZF9udWxsLmMKQEAgLTExNSw5ICsxMTUsMTEgQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgbnVsbF9kb20gKm51bGxfZG9tKGNvbnN0IHN0cnVjdCBkb21haW4gKmQpCiAgICAgcmV0dXJu IGQtPnNjaGVkX3ByaXY7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCB2Y3B1X2NoZWNrX2FmZmlu aXR5KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3B1KQorc3RhdGljIGlubGluZSBib29s IHZjcHVfY2hlY2tfYWZmaW5pdHkoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjcHUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYmFsYW5j ZV9zdGVwKQogewotICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgdi0+ Y3B1X2hhcmRfYWZmaW5pdHksCisgICAgYWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNrKHYsIGJhbGFu Y2Vfc3RlcCwgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpKTsKKyAgICBjcHVtYXNrX2FuZChjcHVt YXNrX3NjcmF0Y2hfY3B1KGNwdSksIGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwKICAgICAgICAg ICAgICAgICBjcHVwb29sX2RvbWFpbl9jcHVtYXNrKHYtPmRvbWFpbikpOwogCiAgICAgcmV0dXJu IGNwdW1hc2tfdGVzdF9jcHUoY3B1LCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSkpOwpAQCAtMjc5 LDMxICsyODEsNDAgQEAgc3RhdGljIHZvaWQgbnVsbF9kb21fZGVzdHJveShjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsIHN0cnVjdCBkb21haW4gKmQpCiAgKi8KIHN0YXRpYyB1bnNpZ25lZCBp bnQgcGlja19jcHUoc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgdmNwdSAqdikKIHsK KyAgICB1bnNpZ25lZCBpbnQgYnM7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHYtPnByb2Nlc3Nv ciwgbmV3X2NwdTsKICAgICBjcHVtYXNrX3QgKmNwdXMgPSBjcHVwb29sX2RvbWFpbl9jcHVtYXNr KHYtPmRvbWFpbik7CiAKICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShzY2hlZHVs ZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsKIAotICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tf c2NyYXRjaF9jcHUoY3B1KSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHksIGNwdXMpOworICAgIGZvcl9l YWNoX2FmZmluaXR5X2JhbGFuY2Vfc3RlcCggYnMgKQorICAgIHsKKyAgICAgICAgaWYgKCBicyA9 PSBCQUxBTkNFX1NPRlRfQUZGSU5JVFkgJiYKKyAgICAgICAgICAgICAhaGFzX3NvZnRfYWZmaW5p dHkodiwgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpICkKKyAgICAgICAgICAgIGNvbnRpbnVlOwogCi0g ICAgLyoKLSAgICAgKiBJZiBvdXIgcHJvY2Vzc29yIGlzIGZyZWUsIG9yIHdlIGFyZSBhc3NpZ25l ZCB0byBpdCwgYW5kIGl0IGlzIGFsc28KLSAgICAgKiBzdGlsbCB2YWxpZCBhbmQgcGFydCBvZiBv dXIgYWZmaW5pdHksIGp1c3QgZ28gZm9yIGl0LgotICAgICAqIChOb3RlIHRoYXQgd2UgbWF5IGNh bGwgdmNwdV9jaGVja19hZmZpbml0eSgpLCBidXQgd2UgZGVsaWJlcmF0ZWx5Ci0gICAgICogZG9u J3QsIHNvIHdlIGdldCB0byBrZWVwIGluIHRoZSBzY3JhdGNoIGNwdW1hc2sgd2hhdCB3ZSBoYXZl IGp1c3QKLSAgICAgKiBwdXQgaW4gaXQuKQotICAgICAqLwotICAgIGlmICggbGlrZWx5KChwZXJf Y3B1KG5wYywgY3B1KS52Y3B1ID09IE5VTEwgfHwgcGVyX2NwdShucGMsIGNwdSkudmNwdSA9PSB2 KQotICAgICAgICAgICAgICAgICYmIGNwdW1hc2tfdGVzdF9jcHUoY3B1LCBjcHVtYXNrX3NjcmF0 Y2hfY3B1KGNwdSkpKSApCi0gICAgICAgIHJldHVybiBjcHU7CisgICAgICAgIGFmZmluaXR5X2Jh bGFuY2VfY3B1bWFzayh2LCBicywgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpKTsKKyAgICAgICAg Y3B1bWFza19hbmQoY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCBjcHVtYXNrX3NjcmF0Y2hfY3B1 KGNwdSksIGNwdXMpOwogCi0gICAgLyogSWYgbm90LCBqdXN0IGdvIGZvciBhIGZyZWUgcENQVSwg d2l0aGluIG91ciBhZmZpbml0eSwgaWYgYW55ICovCi0gICAgY3B1bWFza19hbmQoY3B1bWFza19z Y3JhdGNoX2NwdShjcHUpLCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksCi0gICAgICAgICAgICAg ICAgJnBydi0+Y3B1c19mcmVlKTsKLSAgICBuZXdfY3B1ID0gY3B1bWFza19maXJzdChjcHVtYXNr X3NjcmF0Y2hfY3B1KGNwdSkpOworICAgICAgICAvKgorICAgICAgICAgKiBJZiBvdXIgcHJvY2Vz c29yIGlzIGZyZWUsIG9yIHdlIGFyZSBhc3NpZ25lZCB0byBpdCwgYW5kIGl0IGlzIGFsc28KKyAg ICAgICAgICogc3RpbGwgdmFsaWQgYW5kIHBhcnQgb2Ygb3VyIGFmZmluaXR5LCBqdXN0IGdvIGZv ciBpdC4KKyAgICAgICAgICogKE5vdGUgdGhhdCB3ZSBtYXkgY2FsbCB2Y3B1X2NoZWNrX2FmZmlu aXR5KCksIGJ1dCB3ZSBkZWxpYmVyYXRlbHkKKyAgICAgICAgICogZG9uJ3QsIHNvIHdlIGdldCB0 byBrZWVwIGluIHRoZSBzY3JhdGNoIGNwdW1hc2sgd2hhdCB3ZSBoYXZlIGp1c3QKKyAgICAgICAg ICogcHV0IGluIGl0LikKKyAgICAgICAgICovCisgICAgICAgIGlmICggbGlrZWx5KChwZXJfY3B1 KG5wYywgY3B1KS52Y3B1ID09IE5VTEwgfHwgcGVyX2NwdShucGMsIGNwdSkudmNwdSA9PSB2KQor ICAgICAgICAgICAgICAgICAgICAmJiBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgY3B1bWFza19zY3Jh dGNoX2NwdShjcHUpKSkgKQorICAgICAgICAgICAgcmV0dXJuIGNwdTsKIAotICAgIGlmICggbGlr ZWx5KG5ld19jcHUgIT0gbnJfY3B1X2lkcykgKQotICAgICAgICByZXR1cm4gbmV3X2NwdTsKKyAg ICAgICAgLyogSWYgbm90LCBqdXN0IGdvIGZvciBhIGZyZWUgcENQVSwgd2l0aGluIG91ciBhZmZp bml0eSwgaWYgYW55ICovCisgICAgICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUo Y3B1KSwgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLAorICAgICAgICAgICAgICAgICAgICAmcHJ2 LT5jcHVzX2ZyZWUpOworICAgICAgICBuZXdfY3B1ID0gY3B1bWFza19maXJzdChjcHVtYXNrX3Nj cmF0Y2hfY3B1KGNwdSkpOworCisgICAgICAgIGlmICggbGlrZWx5KG5ld19jcHUgIT0gbnJfY3B1 X2lkcykgKQorICAgICAgICAgICAgcmV0dXJuIG5ld19jcHU7CisgICAgfQogCiAgICAgLyoKICAg ICAgKiBJZiB3ZSBkaWRuJ3QgZmluZCBhbnkgZnJlZSBwQ1BVLCBqdXN0IHBpY2sgYW55IHZhbGlk IHBjcHUsIGV2ZW4gaWYKQEAgLTQzMCw2ICs0NDEsNyBAQCBzdGF0aWMgdm9pZCBudWxsX3ZjcHVf aW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnYpCiAKIHN0 YXRpYyB2b2lkIF92Y3B1X3JlbW92ZShzdHJ1Y3QgbnVsbF9wcml2YXRlICpwcnYsIHN0cnVjdCB2 Y3B1ICp2KQogeworICAgIHVuc2lnbmVkIGludCBiczsKICAgICB1bnNpZ25lZCBpbnQgY3B1ID0g di0+cHJvY2Vzc29yOwogICAgIHN0cnVjdCBudWxsX3ZjcHUgKnd2YzsKIApAQCAtNDQxLDE5ICs0 NTMsMjcgQEAgc3RhdGljIHZvaWQgX3ZjcHVfcmVtb3ZlKHN0cnVjdCBudWxsX3ByaXZhdGUgKnBy diwgc3RydWN0IHZjcHUgKnYpCiAKICAgICAvKgogICAgICAqIElmIHYgaXMgYXNzaWduZWQgdG8g YSBwQ1BVLCBsZXQncyBzZWUgaWYgdGhlcmUgaXMgc29tZW9uZSB3YWl0aW5nLAotICAgICAqIHN1 aXRhYmxlIHRvIGJlIGFzc2lnbmVkIHRvIGl0LgorICAgICAqIHN1aXRhYmxlIHRvIGJlIGFzc2ln bmVkIHRvIGl0IChwcmlvcml0aXppbmcgdmNwdXMgdGhhdCBoYXZlCisgICAgICogc29mdC1hZmZp bml0eSB3aXRoIGNwdSkuCiAgICAgICovCi0gICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggd3ZjLCAm cHJ2LT53YWl0cSwgd2FpdHFfZWxlbSApCisgICAgZm9yX2VhY2hfYWZmaW5pdHlfYmFsYW5jZV9z dGVwKCBicyApCiAgICAgewotICAgICAgICBpZiAoIHZjcHVfY2hlY2tfYWZmaW5pdHkod3ZjLT52 Y3B1LCBjcHUpICkKKyAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggd3ZjLCAmcHJ2LT53YWl0 cSwgd2FpdHFfZWxlbSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGxpc3RfZGVsX2luaXQoJnd2 Yy0+d2FpdHFfZWxlbSk7Ci0gICAgICAgICAgICB2Y3B1X2Fzc2lnbihwcnYsIHd2Yy0+dmNwdSwg Y3B1KTsKLSAgICAgICAgICAgIGNwdV9yYWlzZV9zb2Z0aXJxKGNwdSwgU0NIRURVTEVfU09GVElS USk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGlmICggYnMgPT0gQkFMQU5DRV9T T0ZUX0FGRklOSVRZICYmCisgICAgICAgICAgICAgICAgICFoYXNfc29mdF9hZmZpbml0eSh3dmMt PnZjcHUsIHd2Yy0+dmNwdS0+Y3B1X2hhcmRfYWZmaW5pdHkpICkKKyAgICAgICAgICAgICAgICBj b250aW51ZTsKKworICAgICAgICAgICAgaWYgKCB2Y3B1X2NoZWNrX2FmZmluaXR5KHd2Yy0+dmNw dSwgY3B1LCBicykgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGxpc3RfZGVsX2lu aXQoJnd2Yy0+d2FpdHFfZWxlbSk7CisgICAgICAgICAgICAgICAgdmNwdV9hc3NpZ24ocHJ2LCB3 dmMtPnZjcHUsIGNwdSk7CisgICAgICAgICAgICAgICAgY3B1X3JhaXNlX3NvZnRpcnEoY3B1LCBT Q0hFRFVMRV9TT0ZUSVJRKTsKKyAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmcHJ2LT53YWl0 cV9sb2NrKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAgICAgICAg IH0KICAgICB9Ci0KICAgICBzcGluX3VubG9jaygmcHJ2LT53YWl0cV9sb2NrKTsKIH0KIApAQCAt NTcwLDcgKzU5MCw4IEBAIHN0YXRpYyB2b2lkIG51bGxfdmNwdV9taWdyYXRlKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnYsCiAgICAgICoKICAgICAgKiBJbiBsYXR0 ZXIsIGFsbCB3ZSBjYW4gZG8gaXMgdG8gcGFyayB2IGluIHRoZSB3YWl0cXVldWUuCiAgICAgICov Ci0gICAgaWYgKCBwZXJfY3B1KG5wYywgbmV3X2NwdSkudmNwdSA9PSBOVUxMICYmIHZjcHVfY2hl Y2tfYWZmaW5pdHkodiwgbmV3X2NwdSkgKQorICAgIGlmICggcGVyX2NwdShucGMsIG5ld19jcHUp LnZjcHUgPT0gTlVMTCAmJgorICAgICAgICAgdmNwdV9jaGVja19hZmZpbml0eSh2LCBuZXdfY3B1 LCBCQUxBTkNFX0hBUkRfQUZGSU5JVFkpICkKICAgICB7CiAgICAgICAgIC8qIHYgbWlnaHQgaGF2 ZSBiZWVuIGluIHRoZSB3YWl0cXVldWUsIHNvIHJlbW92ZSBpdCAqLwogICAgICAgICBzcGluX2xv Y2soJnBydi0+d2FpdHFfbG9jayk7CkBAIC02MzMsNiArNjU0LDcgQEAgc3RhdGljIHN0cnVjdCB0 YXNrX3NsaWNlIG51bGxfc2NoZWR1bGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc190aW1lX3Qgbm93LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbF90IHRhc2tsZXRfd29ya19zY2hl ZHVsZWQpCiB7CisgICAgdW5zaWduZWQgaW50IGJzOwogICAgIGNvbnN0IHVuc2lnbmVkIGludCBj cHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAgICAgc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2ID0g bnVsbF9wcml2KG9wcyk7CiAgICAgc3RydWN0IG51bGxfdmNwdSAqd3ZjOwpAQCAtNjU2LDEzICs2 NzgsMzUgQEAgc3RhdGljIHN0cnVjdCB0YXNrX3NsaWNlIG51bGxfc2NoZWR1bGUoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLAogICAgIGlmICggdW5saWtlbHkocmV0LnRhc2sgPT0gTlVMTCkg KQogICAgIHsKICAgICAgICAgc3Bpbl9sb2NrKCZwcnYtPndhaXRxX2xvY2spOwotICAgICAgICB3 dmMgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoJnBydi0+d2FpdHEsIHN0cnVjdCBudWxsX3Zj cHUsIHdhaXRxX2VsZW0pOwotICAgICAgICBpZiAoIHd2YyAmJiB2Y3B1X2NoZWNrX2FmZmluaXR5 KHd2Yy0+dmNwdSwgY3B1KSApCisKKyAgICAgICAgaWYgKCBsaXN0X2VtcHR5KCZwcnYtPndhaXRx KSApCisgICAgICAgICAgICBnb3RvIHVubG9jazsKKworICAgICAgICAvKgorICAgICAgICAgKiBX ZSBzY2FuIHRoZSB3YWl0cXVldWUgdHdpY2UsIGZvciBwcmlvcml0aXppbmcgdmNwdXMgdGhhdCBo YXZlCisgICAgICAgICAqIHNvZnQtYWZmaW5pdHkgd2l0aCBjcHUuIFRoaXMgbWF5IGxvb2sgbGlr ZSBzb21ldGhpbmcgZXhwZW5zaXZlIHRvCisgICAgICAgICAqIGRvIGhlcmUgaW4gbnVsbF9zY2hl ZHVsZSgpLCBidXQgaXQncyBhY3R1YWxseSBmaW5lLCBiZWNldXNlIHdlIGRvCisgICAgICAgICAq IGl0IG9ubHkgaW4gY2FzZXMgd2hlcmUgYSBwY3B1IGhhcyBubyB2Y3B1IGFzc29jaWF0ZWQgKGUu Zy4sIGFzCisgICAgICAgICAqIHNhaWQgYWJvdmUsIHRoZSBjcHUgaGFzIGp1c3Qgam9pbmVkIGEg Y3B1cG9vbCkuCisgICAgICAgICAqLworICAgICAgICBmb3JfZWFjaF9hZmZpbml0eV9iYWxhbmNl X3N0ZXAoIGJzICkKICAgICAgICAgewotICAgICAgICAgICAgdmNwdV9hc3NpZ24ocHJ2LCB3dmMt PnZjcHUsIGNwdSk7Ci0gICAgICAgICAgICBsaXN0X2RlbF9pbml0KCZ3dmMtPndhaXRxX2VsZW0p OwotICAgICAgICAgICAgcmV0LnRhc2sgPSB3dmMtPnZjcHU7CisgICAgICAgICAgICBsaXN0X2Zv cl9lYWNoX2VudHJ5KCB3dmMsICZwcnYtPndhaXRxLCB3YWl0cV9lbGVtICkKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICBpZiAoIGJzID09IEJBTEFOQ0VfU09GVF9BRkZJTklUWSAmJgor ICAgICAgICAgICAgICAgICAgICAgIWhhc19zb2Z0X2FmZmluaXR5KHd2Yy0+dmNwdSwgd3ZjLT52 Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSkgKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK KworICAgICAgICAgICAgICAgIGlmICggdmNwdV9jaGVja19hZmZpbml0eSh3dmMtPnZjcHUsIGNw dSwgYnMpICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHZjcHVfYXNz aWduKHBydiwgd3ZjLT52Y3B1LCBjcHUpOworICAgICAgICAgICAgICAgICAgICBsaXN0X2RlbF9p bml0KCZ3dmMtPndhaXRxX2VsZW0pOworICAgICAgICAgICAgICAgICAgICByZXQudGFzayA9IHd2 Yy0+dmNwdTsKKyAgICAgICAgICAgICAgICAgICAgZ290byB1bmxvY2s7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgfQogICAgICAgICB9CisgdW5sb2NrOgogICAgICAgICBzcGluX3Vu bG9jaygmcHJ2LT53YWl0cV9sb2NrKTsKICAgICB9CiAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK