From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk0-x22d.google.com (mail-qk0-x22d.google.com [IPv6:2607:f8b0:400d:c09::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id A83D03B2A2 for ; Sun, 20 Nov 2016 16:32:20 -0500 (EST) Received: by mail-qk0-x22d.google.com with SMTP id x190so328242643qkb.0 for ; Sun, 20 Nov 2016 13:32:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=8kNc7rFNNwmX6fqvcSJrH5Ya8J+C8G+4KqPOtWdYMj0=; b=nT2QWFS+SlETmY9zxmmYeh/cYLaRnxEquMeEr9g8FNHzUf2u9aP3FiDzDBiLHi9Hwb EE0efU7FLsaFkJirBimLs6IdU7H9Er+Solto0ATuwpwY4yaCd1OKpqbwfVvjCJCUYI7b 5xyi/SrscmW7hpYtSREJ3s0NtXLXpp+RXiH12NCb3yyFvba5EshSlDdhcOP4Z/poDXvB hozwO4VZn6GPW0+XWew8aMp9mxDPUMIKR/7LS0MEv0nU0DR7i8QMtLhKpUfhqiGsvREm xcjEdGQwjA8DXjJI8jNgRpeMl6W1lYsWCzcR7f83lJb9wn8smAgWV1MfX0+htod41hHs zoEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=8kNc7rFNNwmX6fqvcSJrH5Ya8J+C8G+4KqPOtWdYMj0=; b=dkbePvLF+e8GV3zRQFz2Hw7qni94SJpSHu96uab4dKdKjUcxivyXixSZqe65zNqtTw 3t0JT3qZIXeZleV/uad7174a2Z2EOajVrUmrtsKnnt3Q+k3AWQWjIBqUhIVxeUvnhyv8 qb7NEsKd77+ISR7EefKpF+UNrmxuXJUjMwiNAlvDgMUhKq9I0ttHa1Uh16dB3NbSSo6U nTS49Au1REPIRJMGL03nGnxQ9CHWe67B7F3wsnMZ+VVrIqFaT78hiVZYzyxLu/bSfnme TjOP0MOw6Uo+YtyVuqYYcG7D7X4sNBfDZoYV2BVX4KPhZFC+bSXvAzCrnYMsZckk1Cx/ Cleg== X-Gm-Message-State: AKaTC01WCx8ICXfPej9dYLiYo9yNO/nQdZdgnBvrtBjdvwReNoBatAJ/mDmtVebv7VIzM8zpKFs8vqA2NecNYA== X-Received: by 10.55.136.134 with SMTP id k128mr13493805qkd.196.1479677539655; Sun, 20 Nov 2016 13:32:19 -0800 (PST) MIME-Version: 1.0 Received: by 10.12.137.198 with HTTP; Sun, 20 Nov 2016 13:32:18 -0800 (PST) From: Dave Taht Date: Sun, 20 Nov 2016 13:32:18 -0800 Message-ID: To: "cerowrt-devel@lists.bufferbloat.net" , Marcin Wojtas Content-Type: multipart/mixed; boundary=94eb2c07276a2381fc0541c24667 Subject: [Cerowrt-devel] Fwd: perf and BQL on the linksys 1200ac. X-BeenThere: cerowrt-devel@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Development issues regarding the cerowrt test router project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Nov 2016 21:32:20 -0000 --94eb2c07276a2381fc0541c24667 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable this was the last patch set I saw. I seem to recall it or something like it was reviewed later on netdev. ---------- Forwarded message ---------- From: Marcin Wojtas Date: Sun, Jun 19, 2016 at 5:30 AM Subject: Re: perf and BQL on the linksys 1200ac. To: Dave Taht Cc: Imre Kaloz , Toke H=C3=B8iland-J=C3=B8rgensen , Stephen Walker , Gregory Cl=C3=A9ment , Thomas Petazzoni Hi Dave, I have some very good news! BQL in mvneta is working fine, the reason of lock-up was trivial - coalescing threshold set to '1' meant interrupt per 2 patckets. After setting to '0' and having real int-per-packet on egress, BQL mechanism can adjust properly. An easy test: 1. ping without iperf - ~0,5 - 0,7ms 2. ping with 1G TCP iperf from armada38x to host (in both tests @linerate) WITHOUT BQL - ~1,9ms - 2,6ms WITH BQL - ~0,65 - 0,85ms I attach 3 patches (they apply on top of v4.7-rc3, but they should be ok also for older releases) - change to int-per-packet - add bql - add xmit_more Can you please test it in your setup? I'm sorry it took so long, but I hope it will eventually help for your devices. If you don't mind I have a small request, would it be possible that you run comparison test with and without my patches, and share results? It would help me for a local presentation I'm preparing now (of course all tests' credits whatsoever will be yours). Best regards, Marcin 2016-06-09 19:00 GMT+02:00 Marcin Wojtas : > Ok, I'll dig it in my repo and will describe the problems with TX > interrupts that never hit. > > Best regards, > Marcin > > 2016-06-09 18:57 GMT+02:00 Dave Taht : >> If you can make your lastest patches attempt available I will try to >> find someone to pick up the slack. >> >> On Thu, Jun 9, 2016 at 6:27 AM, Marcin Wojtas wrote: >>> Hi Dave, >>> >>> Unfortunately yes - the stall seems to be permanent, I've been >>> debugging Marvell new ARMv8 SoC's for past 5 months (mvneta as well), >>> but no slot for BQL debug and my other mainline patches in short >>> perspective from now. >>> >>> Best regards, >>> Marcin >>> >>> 2016-06-07 19:27 GMT+02:00 Dave Taht : >>>> I imagine that your work on bql for the mvneta stalled out? >>>> >>>> https://lists.bufferbloat.net/pipermail/cake/2016-June/002031.html >>>> >>>> On Thu, Dec 17, 2015 at 7:34 AM, Marcin Wojtas wrote= : >>>>> Hi Dave, >>>>> >>>>> Thanks for so much details. >>>>> >>>>> >>>>>> >>>>>> (that said, BQL is much better than what we had before - and what th= e >>>>>> mvneta has now... so I am very enthusiastic about it getting in ther= e >>>>>> and promise to help.... after the new year. ) >>>>>> >>>>> >>>>> I hope it to be fixed and submitted by then:) >>>>> >>>>>> >>>>>>>> >>>>>>>> given the much higher level of indirection and layering in the mvn= eta >>>>>>>> driver, finding that looks hard, and I think making napi work righ= t >>>>>>>> first and simplifying things might be a way forward.. >>>>>>> >>>>>>> Thanks for this point, I will take it into consideration. IMO both >>>>>>> ingress and egress paths may seem a bit complcated at first but in >>>>>>> fact they're not - or I know it too well and I'm not objective:) >>>>>> >>>>>> Well. Good. :) I don't know 'em at all, I only started playing with >>>>>> this hardware last month in light of the turris omnia thing. I am >>>>>> LOVING the speed of it, it's a huge jump from the mips based stuff I >>>>>> was working with before. >>>>>> >>>>>> A naive question - do the rx and tx paths have to be cleaned up at t= he >>>>>> same time? Does the softirq bounce or simultaneously exist for both >>>>>> cpus? >>>>>> >>>>>> >>>>> >>>>> Of course timer-based processing for TX done in independent context. >>>>> With new percpu irqs and XPS + RSS (with still one RX queue it's a >>>>> preparation) commits (check out net-next), the mapping is strict and >>>>> with per-cpu napi everything is done simultaneously on all cpus (2 on >>>>> armada 38x and up to 4 on armada xp). >>>>> >>>>> As there is a common line for RXTX interrupt, rx receiving and tx >>>>> cleaning has to be mixed in mvneta_poll and it all depends on detecte= d >>>>> interrupt cause. >>>>> >>>>> Best regards, >>>>> Marcin >>>> >>>> >>>> >>>> -- >>>> Dave T=C3=A4ht >>>> Let's go make home routers and wifi faster! With better software! >>>> http://blog.cerowrt.org >> >> >> >> -- >> Dave T=C3=A4ht >> Let's go make home routers and wifi faster! With better software! >> http://blog.cerowrt.org --=20 Dave T=C3=A4ht Let's go make home routers and wifi faster! With better software! http://blog.cerowrt.org --94eb2c07276a2381fc0541c24667 Content-Type: application/octet-stream; name="0001-net-mvneta-add-BQL-support.patch" Content-Disposition: attachment; filename="0001-net-mvneta-add-BQL-support.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ipmkbo0e0 RnJvbSA4NmNmODA0NGQ0NDU0YmEyYTNiZWJlMGIzZWEwYTgyYjQ1NDk2NjBkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJjaW4gV29qdGFzIDxtd0BzZW1paGFsZi5jb20+CkRhdGU6 IEZyaSwgNCBEZWMgMjAxNSAxMDo0MDozMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSBuZXQ6 IG12bmV0YTogYWRkIEJRTCBzdXBwb3J0CgpUaGlzIGNvbW1pdCBhZGRzIGJ5dGUgcXVldWUgbGlt aXQgbWVjaGFuaXNtIGZvciB0aGUgbXZuZXRhIGRyaXZlci4KClNpZ25lZC1vZmYtYnk6IE1hcmNp biBXb2p0YXMgPG13QHNlbWloYWxmLmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2 ZWxsL212bmV0YS5jIHwgMjIgKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDE5IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZl bGwvbXZuZXRhLmMKaW5kZXggYTZkMjZkMy4uY2YwNGM5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t YXJ2ZWxsL212bmV0YS5jCkBAIC0xNzE3LDggKzE3MTcsMTAgQEAgc3RhdGljIHN0cnVjdCBtdm5l dGFfdHhfcXVldWUgKm12bmV0YV90eF9kb25lX3BvbGljeShzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBw LAogCiAvKiBGcmVlIHR4IHF1ZXVlIHNrYnVmZnMgKi8KIHN0YXRpYyB2b2lkIG12bmV0YV90eHFf YnVmc19mcmVlKHN0cnVjdCBtdm5ldGFfcG9ydCAqcHAsCi0JCQkJIHN0cnVjdCBtdm5ldGFfdHhf cXVldWUgKnR4cSwgaW50IG51bSkKKwkJCQkgc3RydWN0IG12bmV0YV90eF9xdWV1ZSAqdHhxLCBp bnQgbnVtLAorCQkJCSBzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpucSkKIHsKKwl1bnNpZ25lZCBpbnQg Ynl0ZXNfY29tcGwgPSAwLCBwa3RzX2NvbXBsID0gMDsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7 IGkgPCBudW07IGkrKykgewpAQCAtMTcyNiw2ICsxNzI4LDExIEBAIHN0YXRpYyB2b2lkIG12bmV0 YV90eHFfYnVmc19mcmVlKHN0cnVjdCBtdm5ldGFfcG9ydCAqcHAsCiAJCQl0eHEtPnR4cV9nZXRf aW5kZXg7CiAJCXN0cnVjdCBza19idWZmICpza2IgPSB0eHEtPnR4X3NrYlt0eHEtPnR4cV9nZXRf aW5kZXhdOwogCisJCWlmIChza2IpIHsKKwkJCWJ5dGVzX2NvbXBsICs9IHNrYi0+bGVuOworCQkJ cGt0c19jb21wbCsrOworCQl9CisKIAkJbXZuZXRhX3R4cV9pbmNfZ2V0KHR4cSk7CiAKIAkJaWYg KCFJU19UU09fSEVBREVSKHR4cSwgdHhfZGVzYy0+YnVmX3BoeXNfYWRkcikpCkBAIC0xNzM2LDYg KzE3NDMsOCBAQCBzdGF0aWMgdm9pZCBtdm5ldGFfdHhxX2J1ZnNfZnJlZShzdHJ1Y3QgbXZuZXRh X3BvcnQgKnBwLAogCQkJY29udGludWU7CiAJCWRldl9rZnJlZV9za2JfYW55KHNrYik7CiAJfQor CisJbmV0ZGV2X3R4X2NvbXBsZXRlZF9xdWV1ZShucSwgcGt0c19jb21wbCwgYnl0ZXNfY29tcGwp OwogfQogCiAvKiBIYW5kbGUgZW5kIG9mIHRyYW5zbWlzc2lvbiAqLwpAQCAtMTc0OSw3ICsxNzU4 LDcgQEAgc3RhdGljIHZvaWQgbXZuZXRhX3R4cV9kb25lKHN0cnVjdCBtdm5ldGFfcG9ydCAqcHAs CiAJaWYgKCF0eF9kb25lKQogCQlyZXR1cm47CiAKLQltdm5ldGFfdHhxX2J1ZnNfZnJlZShwcCwg dHhxLCB0eF9kb25lKTsKKwltdm5ldGFfdHhxX2J1ZnNfZnJlZShwcCwgdHhxLCB0eF9kb25lLCBu cSk7CiAKIAl0eHEtPmNvdW50IC09IHR4X2RvbmU7CiAKQEAgLTIzNTYsNiArMjM2NSw4IEBAIG91 dDoKIAkJc3RydWN0IG12bmV0YV9wY3B1X3N0YXRzICpzdGF0cyA9IHRoaXNfY3B1X3B0cihwcC0+ c3RhdHMpOwogCQlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpucSA9IG5ldGRldl9nZXRfdHhfcXVldWUo ZGV2LCB0eHFfaWQpOwogCisJCW5ldGRldl90eF9zZW50X3F1ZXVlKG5xLCBsZW4pOworCiAJCXR4 cS0+Y291bnQgKz0gZnJhZ3M7CiAJCW12bmV0YV90eHFfcGVuZF9kZXNjX2FkZChwcCwgdHhxLCBm cmFncyk7CiAKQEAgLTIzODAsOSArMjM5MSwxMCBAQCBzdGF0aWMgdm9pZCBtdm5ldGFfdHhxX2Rv bmVfZm9yY2Uoc3RydWN0IG12bmV0YV9wb3J0ICpwcCwKIAkJCQkgIHN0cnVjdCBtdm5ldGFfdHhf cXVldWUgKnR4cSkKIAogeworCXN0cnVjdCBuZXRkZXZfcXVldWUgKm5xID0gbmV0ZGV2X2dldF90 eF9xdWV1ZShwcC0+ZGV2LCB0eHEtPmlkKTsKIAlpbnQgdHhfZG9uZSA9IHR4cS0+Y291bnQ7CiAK LQltdm5ldGFfdHhxX2J1ZnNfZnJlZShwcCwgdHhxLCB0eF9kb25lKTsKKwltdm5ldGFfdHhxX2J1 ZnNfZnJlZShwcCwgdHhxLCB0eF9kb25lLCBucSk7CiAKIAkvKiByZXNldCB0eHEgKi8KIAl0eHEt PmNvdW50ID0gMDsKQEAgLTI4NzksNiArMjg5MSw4IEBAIHN0YXRpYyBpbnQgbXZuZXRhX3R4cV9p bml0KHN0cnVjdCBtdm5ldGFfcG9ydCAqcHAsCiBzdGF0aWMgdm9pZCBtdm5ldGFfdHhxX2RlaW5p dChzdHJ1Y3QgbXZuZXRhX3BvcnQgKnBwLAogCQkJICAgICAgc3RydWN0IG12bmV0YV90eF9xdWV1 ZSAqdHhxKQogeworCXN0cnVjdCBuZXRkZXZfcXVldWUgKm5xID0gbmV0ZGV2X2dldF90eF9xdWV1 ZShwcC0+ZGV2LCB0eHEtPmlkKTsKKwogCWtmcmVlKHR4cS0+dHhfc2tiKTsKIAogCWlmICh0eHEt PnRzb19oZHJzKQpAQCAtMjg5MCw2ICsyOTA0LDggQEAgc3RhdGljIHZvaWQgbXZuZXRhX3R4cV9k ZWluaXQoc3RydWN0IG12bmV0YV9wb3J0ICpwcCwKIAkJCQkgIHR4cS0+c2l6ZSAqIE1WTkVUQV9E RVNDX0FMSUdORURfU0laRSwKIAkJCQkgIHR4cS0+ZGVzY3MsIHR4cS0+ZGVzY3NfcGh5cyk7CiAK KwluZXRkZXZfdHhfcmVzZXRfcXVldWUobnEpOworCiAJdHhxLT5kZXNjcyAgICAgICAgICAgICA9 IE5VTEw7CiAJdHhxLT5sYXN0X2Rlc2MgICAgICAgICA9IDA7CiAJdHhxLT5uZXh0X2Rlc2NfdG9f cHJvYyA9IDA7Ci0tIAoxLjguMy4xCgo= --94eb2c07276a2381fc0541c24667 Content-Type: application/octet-stream; name="0002-net-mvneta-TX_DONE-interrupt-per-packet.patch" Content-Disposition: attachment; filename="0002-net-mvneta-TX_DONE-interrupt-per-packet.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ipmkbo1t1 RnJvbSAxYWUxYTEzNmJkNTMxMTJkOGI4YTIzNzE0OTcxMjU1OWRkN2M2OGVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEbWl0cmkgRXBzaHRlaW4gPGRpbWFAbWFydmVsbC5jb20+CkRh dGU6IFN1biwgMjIgTWF5IDIwMTYgMDk6NDE6MzIgKzAzMDAKU3ViamVjdDogW1BBVENIIDIvM10g bmV0OiBtdm5ldGE6IFRYX0RPTkUgaW50ZXJydXB0IHBlciBwYWNrZXQKCi0gd2hlbiBNVk5FVEFf VFhET05FX0NPQUxfUEtUUyBpcyAxCiAgLT4gaW50ZXJydXB0IHBlciB0d28gdHJhbnNtaXR0ZWQg cGFja2V0CgotIHdoZW4gTVZORVRBX1RYRE9ORV9DT0FMX1BLVFMgaXMgMAogIC0+IGludGVycnVw dCBwZXIgZWFjaCB0cmFuc21pdHRlZCBwYWNrZXQKCk5BUyBwZXJmb3JtYW5jZSBzdHJvbmdseSBk ZXBlbmRzIG9uIHRoZSBmYWN0IHRoYXQgYWxsIHRyYW5zbWl0dGVkIHBhY2tldHMKbXVzdCBiZSBy ZWxlYXNlZC4KClNpZ25lZC1vZmYtYnk6IERtaXRyaSBFcHNodGVpbiA8ZGltYUBtYXJ2ZWxsLmNv bT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21hcnZlbGwvbXZuZXRhLmMKaW5kZXggY2YwNGM5Ny4uMGFkMmZhMyAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCkBAIC0yNDQsNyArMjQ0LDcgQEAKIC8qIFZhcmlvdXMg Y29uc3RhbnRzICovCiAKIC8qIENvYWxlc2NpbmcgKi8KLSNkZWZpbmUgTVZORVRBX1RYRE9ORV9D T0FMX1BLVFMJCTEKKyNkZWZpbmUgTVZORVRBX1RYRE9ORV9DT0FMX1BLVFMJCTAgICAgICAvKiBp bnRlcnJ1cHQgcGVyIHBhY2tldCAqLwogI2RlZmluZSBNVk5FVEFfUlhfQ09BTF9QS1RTCQkzMgog I2RlZmluZSBNVk5FVEFfUlhfQ09BTF9VU0VDCQkxMDAKIAotLSAKMS44LjMuMQoK --94eb2c07276a2381fc0541c24667 Content-Type: application/octet-stream; name="0003-net-mvneta-add-xmit_more-support.patch" Content-Disposition: attachment; filename="0003-net-mvneta-add-xmit_more-support.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ipmkbo1y2 RnJvbSBkYWZmMmUxZGJkYWYyNGQ4ZmEzMDNkYjJiMzhhMTFiZjNkZThmNDIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBHdWlub3QgPHNpbW9uLmd1aW5vdEBzZXF1YW51eC5v cmc+CkRhdGU6IEZyaSwgOSBPY3QgMjAxNSAwMDowOTo1MyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg My8zXSBuZXQ6IG12bmV0YTogYWRkIHhtaXRfbW9yZSBzdXBwb3J0CgpCYXNpbmcgb24geG1pdF9t b3JlIGZsYWcgb2YgdGhlIHNrYiwgVFggZGVzY3JpcHRvcnMgY2FuIGJlIGNvbmNhdGVuYXRlZApi ZWZvcmUgZmx1c2hpbmcuIFRoaXMgY29tbWl0IGRlbGF5IFR4IGRlc2NyaXB0b3IgZmx1c2ggaWYg dGhlIHF1ZXVlIGlzCnJ1bm5pbmcgYW5kIGlmIHRoZXJlIGlzIG1vcmUgc2tiJ3MgdG8gc2VuZC4K ClNpZ25lZC1vZmYtYnk6IFNpbW9uIEd1aW5vdCA8c2ltb24uZ3Vpbm90QHNlcXVhbnV4Lm9yZz4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jIHwgMTEgKysrKysrKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L21hcnZlbGwvbXZuZXRhLmMKaW5kZXggMGFkMmZhMy4uNGNhZDk2NSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9tdm5ldGEuYworKysgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL212bmV0YS5jCkBAIC01MTIsNiArNTEyLDcgQEAgc3Ry dWN0IG12bmV0YV90eF9xdWV1ZSB7CiAJICogZGVzY3JpcHRvciByaW5nCiAJICovCiAJaW50IGNv dW50OworCWludCBwZW5kaW5nOwogCWludCB0eF9zdG9wX3RocmVzaG9sZDsKIAlpbnQgdHhfd2Fr ZV90aHJlc2hvbGQ7CiAKQEAgLTgwMiw4ICs4MDMsOSBAQCBzdGF0aWMgdm9pZCBtdm5ldGFfdHhx X3BlbmRfZGVzY19hZGQoc3RydWN0IG12bmV0YV9wb3J0ICpwcCwKIAkvKiBPbmx5IDI1NSBkZXNj cmlwdG9ycyBjYW4gYmUgYWRkZWQgYXQgb25jZSA7IEFzc3VtZSBjYWxsZXIKIAkgKiBwcm9jZXNz IFRYIGRlc3JpcHRvcnMgaW4gcXVhbnRhIGxlc3MgdGhhbiAyNTYKIAkgKi8KLQl2YWwgPSBwZW5k X2Rlc2M7CisJdmFsID0gcGVuZF9kZXNjICsgdHhxLT5wZW5kaW5nOwogCW12cmVnX3dyaXRlKHBw LCBNVk5FVEFfVFhRX1VQREFURV9SRUcodHhxLT5pZCksIHZhbCk7CisJdHhxLT5wZW5kaW5nID0g MDsKIH0KIAogLyogR2V0IHBvaW50ZXIgdG8gbmV4dCBUWCBkZXNjcmlwdG9yIHRvIGJlIHByb2Nl c3NlZCAoc2VuZCkgYnkgSFcgKi8KQEAgLTIzNjgsMTEgKzIzNzAsMTQgQEAgb3V0OgogCQluZXRk ZXZfdHhfc2VudF9xdWV1ZShucSwgbGVuKTsKIAogCQl0eHEtPmNvdW50ICs9IGZyYWdzOwotCQlt dm5ldGFfdHhxX3BlbmRfZGVzY19hZGQocHAsIHR4cSwgZnJhZ3MpOwotCiAJCWlmICh0eHEtPmNv dW50ID49IHR4cS0+dHhfc3RvcF90aHJlc2hvbGQpCiAJCQluZXRpZl90eF9zdG9wX3F1ZXVlKG5x KTsKIAorCQlpZiAoIXNrYi0+eG1pdF9tb3JlIHx8IG5ldGlmX3htaXRfc3RvcHBlZChucSkpCisJ CQltdm5ldGFfdHhxX3BlbmRfZGVzY19hZGQocHAsIHR4cSwgZnJhZ3MpOworCQllbHNlCisJCQl0 eHEtPnBlbmRpbmcgKz0gZnJhZ3M7CisKIAkJdTY0X3N0YXRzX3VwZGF0ZV9iZWdpbigmc3RhdHMt PnN5bmNwKTsKIAkJc3RhdHMtPnR4X3BhY2tldHMrKzsKIAkJc3RhdHMtPnR4X2J5dGVzICArPSBs ZW47Ci0tIAoxLjguMy4xCgo= --94eb2c07276a2381fc0541c24667--