From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D09B7C32750 for ; Fri, 2 Aug 2019 13:07:53 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A4D7B2073D for ; Fri, 2 Aug 2019 13:07:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A4D7B2073D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1htXHV-0007FB-Dt; Fri, 02 Aug 2019 13:07:37 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1htXHU-0007Ep-Ea for xen-devel@lists.xenproject.org; Fri, 02 Aug 2019 13:07:36 +0000 X-Inumbo-ID: 7deda8c0-b526-11e9-b09f-3fa4d4a93066 Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 7deda8c0-b526-11e9-b09f-3fa4d4a93066; Fri, 02 Aug 2019 13:07:34 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 84F1EB61C; Fri, 2 Aug 2019 13:07:33 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Fri, 2 Aug 2019 15:07:30 +0200 Message-Id: <20190802130730.15942-4-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190802130730.15942-1-jgross@suse.com> References: <20190802130730.15942-1-jgross@suse.com> Subject: [Xen-devel] [PATCH 3/3] xen/sched: add minimalistic idle scheduler for free cpus X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , George Dunlap , Dario Faggioli MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SW5zdGVhZCBvZiBoYXZpbmcgYSBmdWxsIGJsb3duIHNjaGVkdWxlciBydW5uaW5nIGZvciB0aGUg ZnJlZSBjcHVzCmFkZCBhIHZlcnkgbWluaW1hbGlzdGljIHNjaGVkdWxlciBmb3IgdGhhdCBwdXJw b3NlIG9ubHkgZXZlciBzY2hlZHVsaW5nCnRoZSByZWxhdGVkIGlkbGUgdmNwdS4gVGhpcyBoYXMg dGhlIGJpZyBhZHZhbnRhZ2Ugb2Ygbm90IG5lZWRpbmcgYW55CnBlci1jcHUsIHBlci1kb21haW4g b3IgcGVyLXNjaGVkdWxpbmcgdW5pdCBkYXRhIGZvciBmcmVlIGNwdXMgYW5kIGluCnR1cm4gc2lt cGxpZnlpbmcgbW92aW5nIGNwdXMgdG8gYW5kIGZyb20gY3B1cG9vbHMgYSBsb3QuCgpUaGlzIG5l dyBzY2hlZHVsZXIgd2lsbCBqdXN0IHVzZSBhIGNvbW1vbiBsb2NrIGZvciBhbGwgZnJlZSBjcHVz LgoKQXMgdGhpcyBuZXcgc2NoZWR1bGVyIGlzIG5vdCB1c2VyIHNlbGVjdGFibGUgZG9uJ3QgcmVn aXN0ZXIgaXQgYXMgYW4Kb2ZmaWNpYWwgc2NoZWR1bGVyLCBidXQganVzdCBpbmNsdWRlIGl0IGlu IHNjaGVkdWxlLmMuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5j b20+Ci0tLQogeGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYyB8ICAgOSAtLS0KIHhlbi9jb21tb24v c2NoZWRfbnVsbC5jICAgfCAgIDcgLS0tCiB4ZW4vY29tbW9uL3NjaGVkdWxlLmMgICAgIHwgMTUz ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMg Y2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgOTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv eGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKaW5k ZXggODFkZWU1ZTQ3Mi4uNzBmZTcxODEyNyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9j cmVkaXQuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCkBAIC02MTcsMTUgKzYxNyw2 IEBAIGNzY2hlZF9pbml0X3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAq cGRhdGEsIGludCBjcHUpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBzdHJ1Y3Qg Y3NjaGVkX3ByaXZhdGUgKnBydiA9IENTQ0hFRF9QUklWKG9wcyk7Ci0gICAgc3RydWN0IHNjaGVk dWxlX2RhdGEgKnNkID0gJnBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KTsKLQotICAgIC8qCi0g ICAgICogVGhpcyBpcyBjYWxsZWQgZWl0aGVyIGR1cmluZyBkdXJpbmcgYm9vdCwgcmVzdW1lIG9y IGhvdHBsdWcsIGluCi0gICAgICogY2FzZSBDcmVkaXQxIGlzIHRoZSBzY2hlZHVsZXIgY2hvc2Vu IGF0IGJvb3QuIEluIHN1Y2ggY2FzZXMsIHRoZQotICAgICAqIHNjaGVkdWxlciBsb2NrIGZvciBj cHUgaXMgYWxyZWFkeSBwb2ludGluZyB0byB0aGUgZGVmYXVsdCBwZXItY3B1Ci0gICAgICogc3Bp bmxvY2ssIGFzIENyZWRpdDEgbmVlZHMgaXQsIHNvIHRoZXJlIGlzIG5vIHJlbWFwcGluZyB0byBi ZSBkb25lLgotICAgICAqLwotICAgIEFTU0VSVChzZC0+c2NoZWR1bGVfbG9jayA9PSAmc2QtPl9s b2NrICYmICFzcGluX2lzX2xvY2tlZCgmc2QtPl9sb2NrKSk7CiAKICAgICBzcGluX2xvY2tfaXJx c2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAgICAgaW5pdF9wZGF0YShwcnYsIHBkYXRhLCBjcHUp OwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMgYi94ZW4vY29tbW9uL3NjaGVk X251bGwuYwppbmRleCA1YWVjOWYxN2JkLi40NzMzMGVlZGY0IDEwMDY0NAotLS0gYS94ZW4vY29t bW9uL3NjaGVkX251bGwuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX251bGwuYwpAQCAtMTY3LDE3 ICsxNjcsMTAgQEAgc3RhdGljIHZvaWQgaW5pdF9wZGF0YShzdHJ1Y3QgbnVsbF9wcml2YXRlICpw cnYsIHVuc2lnbmVkIGludCBjcHUpCiBzdGF0aWMgdm9pZCBudWxsX2luaXRfcGRhdGEoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwZGF0YSwgaW50IGNwdSkKIHsKICAgICBzdHJ1 Y3QgbnVsbF9wcml2YXRlICpwcnYgPSBudWxsX3ByaXYob3BzKTsKLSAgICBzdHJ1Y3Qgc2NoZWR1 bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpOwogCiAgICAgLyogYWxs b2NfcGRhdGEgaXMgbm90IGltcGxlbWVudGVkLCBzbyB3ZSB3YW50IHRoaXMgdG8gYmUgTlVMTC4g Ki8KICAgICBBU1NFUlQoIXBkYXRhKTsKIAotICAgIC8qCi0gICAgICogVGhlIHNjaGVkdWxlciBs b2NrIHBvaW50cyBhbHJlYWR5IHRvIHRoZSBkZWZhdWx0IHBlci1jcHUgc3BpbmxvY2ssCi0gICAg ICogc28gdGhlcmUgaXMgbm8gcmVtYXBwaW5nIHRvIGJlIGRvbmUuCi0gICAgICovCi0gICAgQVNT RVJUKHNkLT5zY2hlZHVsZV9sb2NrID09ICZzZC0+X2xvY2sgJiYgIXNwaW5faXNfbG9ja2VkKCZz ZC0+X2xvY2spKTsKLQogICAgIGluaXRfcGRhdGEocHJ2LCBjcHUpOwogfQogCmRpZmYgLS1naXQg YS94ZW4vY29tbW9uL3NjaGVkdWxlLmMgYi94ZW4vY29tbW9uL3NjaGVkdWxlLmMKaW5kZXggOTMx NjRjNjRmNi4uMTEwNjY5OGZiNCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZHVsZS5jCisr KyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwpAQCAtNTQsNiArNTQsMTAgQEAgYm9vbGVhbl9wYXJh bSgic2NoZWRfc210X3Bvd2VyX3NhdmluZ3MiLCBzY2hlZF9zbXRfcG93ZXJfc2F2aW5ncyk7CiAg KiAqLwogaW50IHNjaGVkX3JhdGVsaW1pdF91cyA9IFNDSEVEX0RFRkFVTFRfUkFURUxJTUlUX1VT OwogaW50ZWdlcl9wYXJhbSgic2NoZWRfcmF0ZWxpbWl0X3VzIiwgc2NoZWRfcmF0ZWxpbWl0X3Vz KTsKKworLyogQ29tbW9uIGxvY2sgZm9yIGZyZWUgY3B1cy4gKi8KK3N0YXRpYyBERUZJTkVfU1BJ TkxPQ0soc2NoZWRfZnJlZV9jcHVfbG9jayk7CisKIC8qIFZhcmlvdXMgdGltZXIgaGFuZGxlcnMu ICovCiBzdGF0aWMgdm9pZCBzX3RpbWVyX2ZuKHZvaWQgKnVudXNlZCk7CiBzdGF0aWMgdm9pZCB2 Y3B1X3BlcmlvZGljX3RpbWVyX2ZuKHZvaWQgKmRhdGEpOwpAQCAtNzMsNiArNzcsNTggQEAgZXh0 ZXJuIGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKl9fc3RhcnRfc2NoZWR1bGVyc19hcnJheVtdLCAq X19lbmRfc2NoZWR1bGVyc19hcnIKIAogc3RhdGljIHN0cnVjdCBzY2hlZHVsZXIgX19yZWFkX21v c3RseSBvcHM7CiAKK3N0YXRpYyBzcGlubG9ja190ICoKK3NjaGVkX2lkbGVfc3dpdGNoX3NjaGVk KHN0cnVjdCBzY2hlZHVsZXIgKm5ld19vcHMsIHVuc2lnbmVkIGludCBjcHUsCisgICAgICAgICAg ICAgICAgICAgICAgICB2b2lkICpwZGF0YSwgdm9pZCAqdmRhdGEpCit7CisgICAgaWRsZV92Y3B1 W2NwdV0tPnNjaGVkX3ByaXYgPSBOVUxMOworCisgICAgcmV0dXJuICZzY2hlZF9mcmVlX2NwdV9s b2NrOworfQorCitzdGF0aWMgaW50CitzY2hlZF9pZGxlX2NwdV9waWNrKGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnYpCit7CisgICAgcmV0dXJuIHYtPnByb2Nlc3Nv cjsKK30KKworc3RhdGljIHZvaWQgKgorc2NoZWRfaWRsZV9hbGxvY192ZGF0YShjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2LAorICAgICAgICAgICAgICAgICAgICAg ICB2b2lkICpkZCkKK3sKKyAgICAvKiBBbnkgbm9uLU5VTEwgcG9pbnRlciBpcyBmaW5lIGhlcmUu ICovCisgICAgcmV0dXJuICh2b2lkICopMVVMOworfQorCitzdGF0aWMgdm9pZAorc2NoZWRfaWRs ZV9mcmVlX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcHJpdikKK3sK K30KKworc3RhdGljIHN0cnVjdCB0YXNrX3NsaWNlIHNjaGVkX2lkbGVfc2NoZWR1bGUoCisgICAg Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzX3RpbWVfdCBub3csCisgICAgYm9vbCB0YXNr bGV0X3dvcmtfc2NoZWR1bGVkKQoreworICAgIGNvbnN0IHVuc2lnbmVkIGludCBjcHUgPSBzbXBf cHJvY2Vzc29yX2lkKCk7CisgICAgc3RydWN0IHRhc2tfc2xpY2UgcmV0ID0geyAudGltZSA9IC0x IH07CisKKyAgICByZXQudGFzayA9IGlkbGVfdmNwdVtjcHVdOworICAgIHJldHVybiByZXQ7Cit9 CisKK3N0YXRpYyBzdHJ1Y3Qgc2NoZWR1bGVyIHNjaGVkX2lkbGVfb3BzID0geworICAgIC5uYW1l ICAgICAgICAgICA9ICJJZGxlIFNjaGVkdWxlciIsCisgICAgLm9wdF9uYW1lICAgICAgID0gImlk bGUiLAorICAgIC5zY2hlZF9kYXRhICAgICA9IE5VTEwsCisKKyAgICAucGlja19jcHUgICAgICAg PSBzY2hlZF9pZGxlX2NwdV9waWNrLAorICAgIC5kb19zY2hlZHVsZSAgICA9IHNjaGVkX2lkbGVf c2NoZWR1bGUsCisKKyAgICAuYWxsb2NfdmRhdGEgICAgPSBzY2hlZF9pZGxlX2FsbG9jX3ZkYXRh LAorICAgIC5mcmVlX3ZkYXRhICAgICA9IHNjaGVkX2lkbGVfZnJlZV92ZGF0YSwKKyAgICAuc3dp dGNoX3NjaGVkICAgPSBzY2hlZF9pZGxlX3N3aXRjaF9zY2hlZCwKK307CisKIHN0YXRpYyBpbmxp bmUgc3RydWN0IHNjaGVkdWxlciAqZG9tX3NjaGVkdWxlcihjb25zdCBzdHJ1Y3QgZG9tYWluICpk KQogewogICAgIGlmICggbGlrZWx5KGQtPmNwdXBvb2wgIT0gTlVMTCkgKQpAQCAtMTU4NywxMiAr MTY0MywxMCBAQCBzdGF0aWMgdm9pZCBwb2xsX3RpbWVyX2ZuKHZvaWQgKmRhdGEpCiBzdGF0aWMg aW50IGNwdV9zY2hlZHVsZV91cCh1bnNpZ25lZCBpbnQgY3B1KQogewogICAgIHN0cnVjdCBzY2hl ZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSk7Ci0gICAgdm9pZCAq c2NoZWRfcHJpdjsKIAotICAgIHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpID0gJm9wczsKKyAgICBw ZXJfY3B1KHNjaGVkdWxlciwgY3B1KSA9ICZzY2hlZF9pZGxlX29wczsKICAgICBzcGluX2xvY2tf aW5pdCgmc2QtPl9sb2NrKTsKLSAgICBzZC0+c2NoZWR1bGVfbG9jayA9ICZzZC0+X2xvY2s7Ci0g ICAgc2QtPmN1cnIgPSBpZGxlX3ZjcHVbY3B1XTsKKyAgICBzZC0+c2NoZWR1bGVfbG9jayA9ICZz Y2hlZF9mcmVlX2NwdV9sb2NrOwogICAgIGluaXRfdGltZXIoJnNkLT5zX3RpbWVyLCBzX3RpbWVy X2ZuLCBOVUxMLCBjcHUpOwogICAgIGF0b21pY19zZXQoJnNkLT51cmdlbnRfY291bnQsIDApOwog CkBAIC0xNjAyLDQwICsxNjU2LDE5IEBAIHN0YXRpYyBpbnQgY3B1X3NjaGVkdWxlX3VwKHVuc2ln bmVkIGludCBjcHUpCiAKICAgICBpZiAoIGlkbGVfdmNwdVtjcHVdID09IE5VTEwgKQogICAgICAg ICB2Y3B1X2NyZWF0ZShpZGxlX3ZjcHVbMF0tPmRvbWFpbiwgY3B1LCBjcHUpOwotICAgIGVsc2UK LSAgICB7Ci0gICAgICAgIHN0cnVjdCB2Y3B1ICppZGxlID0gaWRsZV92Y3B1W2NwdV07Ci0KLSAg ICAgICAgLyoKLSAgICAgICAgICogRHVyaW5nIChBQ1BJPykgc3VzcGVuZCB0aGUgaWRsZSB2Q1BV IGZvciB0aGlzIHBDUFUgaXMgbm90IGZyZWVkLAotICAgICAgICAgKiB3aGlsZSBpdHMgc2NoZWR1 bGVyIHNwZWNpZmljIGRhdGEgKHdoYXQgaXMgcG9pbnRlZCBieSBzY2hlZF9wcml2KQotICAgICAg ICAgKiBpcy4gQWxzbywgYXQgdGhpcyBzdGFnZSBvZiB0aGUgcmVzdW1lIHBhdGgsIHdlIGF0dGFj aCB0aGUgcENQVQotICAgICAgICAgKiB0byB0aGUgZGVmYXVsdCBzY2hlZHVsZXIsIG5vIG1hdHRl ciBpbiB3aGF0IGNwdXBvb2wgaXQgd2FzIGJlZm9yZQotICAgICAgICAgKiBzdXNwZW5kLiBUbyBh dm9pZCBpbmNvbnNpc3RlbmN5LCBsZXQncyBhbGxvY2F0ZSBkZWZhdWx0IHNjaGVkdWxlcgotICAg ICAgICAgKiBkYXRhIGZvciB0aGUgaWRsZSB2Q1BVIGhlcmUuIElmIHRoZSBwQ1BVIHdhcyBpbiBh IGRpZmZlcmVudCBwb29sCi0gICAgICAgICAqIHdpdGggYSBkaWZmZXJlbnQgc2NoZWR1bGVyLCBp dCBpcyBzY2hlZHVsZV9jcHVfc3dpdGNoKCksIGludm9rZWQKLSAgICAgICAgICogbGF0ZXIsIHRo YXQgd2lsbCBzZXQgdGhpbmdzIHVwIGFzIGFwcHJvcHJpYXRlLgotICAgICAgICAgKi8KLSAgICAg ICAgQVNTRVJUKGlkbGUtPnNjaGVkX3ByaXYgPT0gTlVMTCk7CiAKLSAgICAgICAgaWRsZS0+c2No ZWRfcHJpdiA9IHNjaGVkX2FsbG9jX3ZkYXRhKCZvcHMsIGlkbGUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZGxlLT5kb21haW4tPnNjaGVkX3ByaXYpOwot ICAgICAgICBpZiAoIGlkbGUtPnNjaGVkX3ByaXYgPT0gTlVMTCApCi0gICAgICAgICAgICByZXR1 cm4gLUVOT01FTTsKLSAgICB9CiAgICAgaWYgKCBpZGxlX3ZjcHVbY3B1XSA9PSBOVUxMICkKICAg ICAgICAgcmV0dXJuIC1FTk9NRU07CiAKICAgICAvKgotICAgICAqIFdlIGRvbid0IHdhbnQgdG8g cmlzayBjYWxsaW5nIHhmcmVlKCkgb24gYW4gc2QtPnNjaGVkX3ByaXYKLSAgICAgKiAoZS5nLiwg aW5zaWRlIGZyZWVfcGRhdGEsIGZyb20gY3B1X3NjaGVkdWxlX2Rvd24oKSBjYWxsZWQKLSAgICAg KiBkdXJpbmcgQ1BVX1VQX0NBTkNFTExFRCkgdGhhdCBjb250YWlucyBhbiBJU19FUlIgdmFsdWUu CisgICAgICogTm8gbmVlZCB0byBhbGxvY2F0ZSBhbnkgc2NoZWR1bGVyIGRhdGEsIGFzIGNwdXMg Y29taW5nIG9ubGluZSBhcmUKKyAgICAgKiBmcmVlIGluaXRpYWxseSBhbmQgdGhlIGlkbGUgc2No ZWR1bGVyIGRvZXNuJ3QgbmVlZCBhbnkgZGF0YSBhcmVhcworICAgICAqIGFsbG9jYXRlZC4KICAg ICAgKi8KLSAgICBzY2hlZF9wcml2ID0gc2NoZWRfYWxsb2NfcGRhdGEoJm9wcywgY3B1KTsKLSAg ICBpZiAoIElTX0VSUihzY2hlZF9wcml2KSApCi0gICAgICAgIHJldHVybiBQVFJfRVJSKHNjaGVk X3ByaXYpOwogCi0gICAgc2QtPnNjaGVkX3ByaXYgPSBzY2hlZF9wcml2OworICAgIHNkLT5jdXJy ID0gaWRsZV92Y3B1W2NwdV07CisKKyAgICBzZC0+c2NoZWRfcHJpdiA9IE5VTEw7CiAKICAgICBy ZXR1cm4gMDsKIH0KQEAgLTE2NDMsMTMgKzE2NzYsNiBAQCBzdGF0aWMgaW50IGNwdV9zY2hlZHVs ZV91cCh1bnNpZ25lZCBpbnQgY3B1KQogc3RhdGljIHZvaWQgY3B1X3NjaGVkdWxlX2Rvd24odW5z aWduZWQgaW50IGNwdSkKIHsKICAgICBzdHJ1Y3Qgc2NoZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2Nw dShzY2hlZHVsZV9kYXRhLCBjcHUpOwotICAgIHN0cnVjdCBzY2hlZHVsZXIgKnNjaGVkID0gcGVy X2NwdShzY2hlZHVsZXIsIGNwdSk7Ci0KLSAgICBzY2hlZF9mcmVlX3BkYXRhKHNjaGVkLCBzZC0+ c2NoZWRfcHJpdiwgY3B1KTsKLSAgICBzY2hlZF9mcmVlX3ZkYXRhKHNjaGVkLCBpZGxlX3ZjcHVb Y3B1XS0+c2NoZWRfcHJpdik7Ci0KLSAgICBpZGxlX3ZjcHVbY3B1XS0+c2NoZWRfcHJpdiA9IE5V TEw7Ci0gICAgc2QtPnNjaGVkX3ByaXYgPSBOVUxMOwogCiAgICAga2lsbF90aW1lcigmc2QtPnNf dGltZXIpOwogfQpAQCAtMTY1NywxNCArMTY4MywxMSBAQCBzdGF0aWMgdm9pZCBjcHVfc2NoZWR1 bGVfZG93bih1bnNpZ25lZCBpbnQgY3B1KQogdm9pZCBzY2hlZF9ybV9jcHUodW5zaWduZWQgaW50 IGNwdSkKIHsKICAgICBpbnQgcmM7Ci0gICAgc3RydWN0IHNjaGVkdWxlX2RhdGEgKnNkID0gJnBl cl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KTsKLSAgICBzdHJ1Y3Qgc2NoZWR1bGVyICpzY2hlZCA9 IHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpOwogCiAgICAgcmN1X3JlYWRfbG9jaygmZG9tbGlzdF9y ZWFkX2xvY2spOwogICAgIHJjID0gY3B1X2Rpc2FibGVfc2NoZWR1bGVyKGNwdSk7CiAgICAgQlVH X09OKHJjKTsKICAgICByY3VfcmVhZF91bmxvY2soJmRvbWxpc3RfcmVhZF9sb2NrKTsKLSAgICBz Y2hlZF9kZWluaXRfcGRhdGEoc2NoZWQsIHNkLT5zY2hlZF9wcml2LCBjcHUpOwogICAgIGNwdV9z Y2hlZHVsZV9kb3duKGNwdSk7CiB9CiAKQEAgLTE2NzIsOCArMTY5NSw2IEBAIHN0YXRpYyBpbnQg Y3B1X3NjaGVkdWxlX2NhbGxiYWNrKAogICAgIHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmZiLCB1 bnNpZ25lZCBsb25nIGFjdGlvbiwgdm9pZCAqaGNwdSkKIHsKICAgICB1bnNpZ25lZCBpbnQgY3B1 ID0gKHVuc2lnbmVkIGxvbmcpaGNwdTsKLSAgICBzdHJ1Y3Qgc2NoZWR1bGVyICpzY2hlZCA9IHBl cl9jcHUoc2NoZWR1bGVyLCBjcHUpOwotICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpzZCA9ICZw ZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSk7CiAgICAgaW50IHJjID0gMDsKIAogICAgIC8qCkBA IC0xNjgxLDM5ICsxNzAyLDI1IEBAIHN0YXRpYyBpbnQgY3B1X3NjaGVkdWxlX2NhbGxiYWNrKAog ICAgICAqIGFsbG9jYXRpbmcgYW5kIGluaXRpYWxpemluZyB0aGUgcGVyLXBDUFUgc2NoZWR1bGVy IHNwZWNpZmljIGRhdGEsCiAgICAgICogYXMgd2VsbCBhcyAicmVnaXN0ZXJpbmciIHRoaXMgcENQ VSB0byB0aGUgc2NoZWR1bGVyICh3aGljaCBtYXkKICAgICAgKiBpbnZvbHZlIG1vZGlmeWluZyBz b21lIHNjaGVkdWxlciB3aWRlIGRhdGEgc3RydWN0dXJlcykuCi0gICAgICogVGhpcyBoYXBwZW5z IGJ5IGNhbGxpbmcgdGhlIGFsbG9jX3BkYXRhIGFuZCBpbml0X3BkYXRhIGhvb2tzLCBpbgotICAg ICAqIHRoaXMgb3JkZXIuIEEgc2NoZWR1bGVyIHRoYXQgZG9lcyBub3QgbmVlZCB0byBhbGxvY2F0 ZSBhbnkgcGVyLXBDUFUKLSAgICAgKiBkYXRhIGNhbiBhdm9pZCBpbXBsZW1lbnRpbmcgYWxsb2Nf cGRhdGEuIGluaXRfcGRhdGEgbWF5LCBob3dldmVyLCBiZQotICAgICAqIG5lY2Vzc2FyeS91c2Vm dWwgaW4gdGhpcyBjYXNlIHRvbyAoZS5nLiwgaXQgY2FuIGNvbnRhaW4gdGhlICJyZWdpc3Rlcgot ICAgICAqIHRoZSBwQ1BVIHRvIHRoZSBzY2hlZHVsZXIiIHBhcnQpLiBhbGxvY19wZGF0YSAoaWYg cHJlc2VudCkgaXMgY2FsbGVkCi0gICAgICogZHVyaW5nIENQVV9VUF9QUkVQQVJFLiBpbml0X3Bk YXRhIChpZiBwcmVzZW50KSBpcyBjYWxsZWQgZHVyaW5nCi0gICAgICogQ1BVX1NUQVJUSU5HLgor ICAgICAqIEFzIG5ldyBwQ1BVcyBhbHdheXMgc3RhcnQgYXMgImZyZWUiIGNwdXMgd2l0aCB0aGUg bWluaW1hbCBpZGxlCisgICAgICogc2NoZWR1bGVyIGJlaW5nIGluIGNoYXJnZSwgd2UgZG9uJ3Qg bmVlZCBhbnkgb2YgdGhhdC4KICAgICAgKgogICAgICAqIE9uIHRoZSBvdGhlciBoYW5kLCBhdCB0 ZWFyZG93biwgd2UgbmVlZCB0byByZXZlcnNlIHdoYXQgaGFzIGJlZW4gZG9uZQotICAgICAqIGR1 cmluZyBpbml0aWFsaXphdGlvbiwgYW5kIHRoZW4gZnJlZSB0aGUgcGVyLXBDUFUgc3BlY2lmaWMg ZGF0YS4gVGhpcwotICAgICAqIGhhcHBlbnMgYnkgY2FsbGluZyB0aGUgZGVpbml0X3BkYXRhIGFu ZCBmcmVlX3BkYXRhIGhvb2tzLCBpbiB0aGlzCisgICAgICogZHVyaW5nIGluaXRpYWxpemF0aW9u LCBhbmQgdGhlbiBmcmVlIHRoZSBwZXItcENQVSBzcGVjaWZpYyBkYXRhLiBBCisgICAgICogcENQ VSBicm91Z2h0IGRvd24gaXMgbm90IGZvcmNlZCB0aHJvdWdoICJmcmVlIiBjcHVzLCBzbyBoZXJl IHdlIG5lZWQgdG8KKyAgICAgKiB1c2UgdGhlIGFwcHJvcHJpYXRlIGhvb2tzLgorICAgICAqCisg ICAgICogVGhpcyBoYXBwZW5zIGJ5IGNhbGxpbmcgdGhlIGRlaW5pdF9wZGF0YSBhbmQgZnJlZV9w ZGF0YSBob29rcywgaW4gdGhpcwogICAgICAqIG9yZGVyLiBJZiBubyBwZXItcENQVSBtZW1vcnkg d2FzIGFsbG9jYXRlZCwgdGhlcmUgaXMgbm8gbmVlZCB0bwogICAgICAqIHByb3ZpZGUgYW4gaW1w bGVtZW50YXRpb24gb2YgZnJlZV9wZGF0YS4gZGVpbml0X3BkYXRhIG1heSwgaG93ZXZlciwKICAg ICAgKiBiZSBuZWNlc3NhcnkvdXNlZnVsIGluIHRoaXMgY2FzZSB0b28gKGUuZy4sIGl0IGNhbiB1 bmRvIHNvbWV0aGluZyBkb25lCiAgICAgICogb24gc2NoZWR1bGVyIHdpZGUgZGF0YSBzdHJ1Y3R1 cmUgZHVyaW5nIGluaXRfcGRhdGEpLiBCb3RoIGRlaW5pdF9wZGF0YQogICAgICAqIGFuZCBmcmVl X3BkYXRhIGFyZSBjYWxsZWQgZHVyaW5nIENQVV9ERUFELgogICAgICAqCi0gICAgICogSWYgc29t ZXRpbmcgZ29lcyB3cm9uZyBkdXJpbmcgYnJpbmd1cCwgd2UgZ28gdG8gQ1BVX1VQX0NBTkNFTExF RAotICAgICAqICpiZWZvcmUqIGhhdmluZyBjYWxsZWQgaW5pdF9wZGF0YS4gSW4gdGhpcyBjYXNl LCBhcyB0aGVyZSBpcyBubwotICAgICAqIGluaXRpYWxpemF0aW9uIG5lZWRpbmcgdW5kb2luZywg b25seSBmcmVlX3BkYXRhIHNob3VsZCBiZSBjYWxsZWQuCi0gICAgICogVGhpcyBtZWFucyBpdCBp cyBwb3NzaWJsZSB0byBjYWxsIGZyZWVfcGRhdGEganVzdCBhZnRlciBhbGxvY19wZGF0YSwKLSAg ICAgKiB3aXRob3V0IGEgaW5pdF9wZGF0YS9kZWluaXRfcGRhdGEgImN5Y2xlIiBpbiBiZXR3ZWVu IHRoZSB0d28uCi0gICAgICoKLSAgICAgKiBTbywgaW4gc3VtbWFyeSwgdGhlIHVzYWdlIHBhdHRl cm4gc2hvdWxkIGxvb2sgZWl0aGVyCi0gICAgICogIC0gYWxsb2NfcGRhdGEtLT5pbml0X3BkYXRh LS0+ZGVpbml0X3BkYXRhLS0+ZnJlZV9wZGF0YSwgb3IKLSAgICAgKiAgLSBhbGxvY19wZGF0YS0t PmZyZWVfcGRhdGEuCisgICAgICogSWYgc29tZXRpbmcgZ29lcyB3cm9uZyBkdXJpbmcgYnJpbmd1 cCwgd2UgZ28gdG8gQ1BVX1VQX0NBTkNFTExFRC4KICAgICAgKi8KICAgICBzd2l0Y2ggKCBhY3Rp b24gKQogICAgIHsKLSAgICBjYXNlIENQVV9TVEFSVElORzoKLSAgICAgICAgaWYgKCBzeXN0ZW1f c3RhdGUgIT0gU1lTX1NUQVRFX3Jlc3VtZSApCi0gICAgICAgICAgICBzY2hlZF9pbml0X3BkYXRh KHNjaGVkLCBzZC0+c2NoZWRfcHJpdiwgY3B1KTsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD UFVfVVBfUFJFUEFSRToKICAgICAgICAgaWYgKCBzeXN0ZW1fc3RhdGUgIT0gU1lTX1NUQVRFX3Jl c3VtZSApCiAgICAgICAgICAgICByYyA9IGNwdV9zY2hlZHVsZV91cChjcHUpOwpAQCAtMTgyNCw5 ICsxODMxLDcgQEAgdm9pZCBfX2luaXQgc2NoZWR1bGVyX2luaXQodm9pZCkKICAgICBpZGxlX2Rv bWFpbi0+bWF4X3ZjcHVzID0gbnJfY3B1X2lkczsKICAgICBpZiAoIHZjcHVfY3JlYXRlKGlkbGVf ZG9tYWluLCAwLCAwKSA9PSBOVUxMICkKICAgICAgICAgQlVHKCk7Ci0gICAgdGhpc19jcHUoc2No ZWR1bGVfZGF0YSkuc2NoZWRfcHJpdiA9IHNjaGVkX2FsbG9jX3BkYXRhKCZvcHMsIDApOwotICAg IEJVR19PTihJU19FUlIodGhpc19jcHUoc2NoZWR1bGVfZGF0YSkuc2NoZWRfcHJpdikpOwotICAg IHNjaGVkX2luaXRfcGRhdGEoJm9wcywgdGhpc19jcHUoc2NoZWR1bGVfZGF0YSkuc2NoZWRfcHJp diwgMCk7CisgICAgdGhpc19jcHUoc2NoZWR1bGVfZGF0YSkuY3VyciA9IGlkbGVfdmNwdVswXTsK IH0KIAogLyoKQEAgLTE4MzQsMTggKzE4MzksMTQgQEAgdm9pZCBfX2luaXQgc2NoZWR1bGVyX2lu aXQodm9pZCkKICAqIGNwdXBvb2wsIG9yIHN1YmplY3QgaXQgdG8gdGhlIHNjaGVkdWxlciBvZiBh IG5ldyBjcHVwb29sLgogICoKICAqIEZvciB0aGUgcENQVXMgdGhhdCBhcmUgcmVtb3ZlZCBmcm9t IHRoZWlyIGNwdXBvb2wsIHRoZWlyIHNjaGVkdWxlciBiZWNvbWVzCi0gKiAmb3BzICh0aGUgZGVm YXVsdCBzY2hlZHVsZXIsIHNlbGVjdGVkIGF0IGJvb3QsIHdoaWNoIGFsc28gc2VydmljZXMgdGhl Ci0gKiBkZWZhdWx0IGNwdXBvb2wpLiBIb3dldmVyLCBhcyB0aGVzZSBwQ1BVcyBhcmUgbm90IHJl YWxseSBwYXJ0IG9mIGFueSBwb29sLAotICogdGhlcmUgd29uJ3QgYmUgYW55IHNjaGVkdWxpbmcg ZXZlbnQgb24gdGhlbSwgbm90IGV2ZW4gZnJvbSB0aGUgZGVmYXVsdAotICogc2NoZWR1bGVyLiBC YXNpY2FsbHksIHRoZXkgd2lsbCBqdXN0IHNpdCBpZGxlIHVudGlsIHRoZXkgYXJlIGV4cGxpY2l0 bHkKLSAqIGFkZGVkIGJhY2sgdG8gYSBjcHVwb29sLgorICogJnNjaGVkX2lkbGVfb3BzICh0aGUg aWRsZSBzY2hlZHVsZXIpLgogICovCiBpbnQgc2NoZWR1bGVfY3B1X3N3aXRjaCh1bnNpZ25lZCBp bnQgY3B1LCBzdHJ1Y3QgY3B1cG9vbCAqYykKIHsKICAgICBzdHJ1Y3QgdmNwdSAqaWRsZTsKICAg ICB2b2lkICpwcHJpdiwgKnBwcml2X29sZCwgKnZwcml2LCAqdnByaXZfb2xkOwogICAgIHN0cnVj dCBzY2hlZHVsZXIgKm9sZF9vcHMgPSBwZXJfY3B1KHNjaGVkdWxlciwgY3B1KTsKLSAgICBzdHJ1 Y3Qgc2NoZWR1bGVyICpuZXdfb3BzID0gKGMgPT0gTlVMTCkgPyAmb3BzIDogYy0+c2NoZWQ7Cisg ICAgc3RydWN0IHNjaGVkdWxlciAqbmV3X29wcyA9IChjID09IE5VTEwpID8gJnNjaGVkX2lkbGVf b3BzIDogYy0+c2NoZWQ7CiAgICAgc3RydWN0IGNwdXBvb2wgKm9sZF9wb29sID0gcGVyX2NwdShj cHVwb29sLCBjcHUpOwogICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNj aGVkdWxlX2RhdGEsIGNwdSk7CiAgICAgc3BpbmxvY2tfdCAqb2xkX2xvY2ssICpuZXdfbG9jazsK QEAgLTE4NjUsOSArMTg2Niw2IEBAIGludCBzY2hlZHVsZV9jcHVfc3dpdGNoKHVuc2lnbmVkIGlu dCBjcHUsIHN0cnVjdCBjcHVwb29sICpjKQogICAgIEFTU0VSVCgoYyA9PSBOVUxMICYmICFjcHVt YXNrX3Rlc3RfY3B1KGNwdSwgb2xkX3Bvb2wtPmNwdV92YWxpZCkpIHx8CiAgICAgICAgICAgIChj ICE9IE5VTEwgJiYgIWNwdW1hc2tfdGVzdF9jcHUoY3B1LCBjLT5jcHVfdmFsaWQpKSk7CiAKLSAg ICBpZiAoIG9sZF9vcHMgPT0gbmV3X29wcyApCi0gICAgICAgIGdvdG8gb3V0OwotCiAgICAgLyoK ICAgICAgKiBUbyBzZXR1cCB0aGUgY3B1IGZvciB0aGUgbmV3IHNjaGVkdWxlciB3ZSBuZWVkOgog ICAgICAqICAtIGEgdmFsaWQgaW5zdGFuY2Ugb2YgcGVyLUNQVSBzY2hlZHVsZXIgc3BlY2lmaWMg ZGF0YSwgYXMgaXQgaXMKQEAgLTE5MzEsNyArMTkyOSw2IEBAIGludCBzY2hlZHVsZV9jcHVfc3dp dGNoKHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBjcHVwb29sICpjKQogICAgIHNjaGVkX2ZyZWVf dmRhdGEob2xkX29wcywgdnByaXZfb2xkKTsKICAgICBzY2hlZF9mcmVlX3BkYXRhKG9sZF9vcHMs IHBwcml2X29sZCwgY3B1KTsKIAotIG91dDoKICAgICBwZXJfY3B1KGNwdXBvb2wsIGNwdSkgPSBj OwogICAgIC8qIFdoZW4gYSBjcHUgaXMgYWRkZWQgdG8gYSBwb29sLCB0cmlnZ2VyIGl0IHRvIGdv IHBpY2sgdXAgc29tZSB3b3JrICovCiAgICAgaWYgKCBjICE9IE5VTEwgKQotLSAKMi4xNi40CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==