From owner-freebsd-current@FreeBSD.ORG Fri Oct 5 00:40:44 2007 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB02716A417 for ; Fri, 5 Oct 2007 00:40:44 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from webaccess-cl.virtdom.com (webaccess-cl.virtdom.com [216.240.101.25]) by mx1.freebsd.org (Postfix) with ESMTP id 4E25D13C47E for ; Fri, 5 Oct 2007 00:40:44 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from [192.168.1.103] (c-67-160-44-208.hsd1.wa.comcast.net [67.160.44.208]) (authenticated bits=0) by webaccess-cl.virtdom.com (8.13.6/8.13.6) with ESMTP id l950eXsl079183 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES256-SHA bits=256 verify=NO); Thu, 4 Oct 2007 20:40:42 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Thu, 4 Oct 2007 17:43:21 -0700 (PDT) From: Jeff Roberson X-X-Sender: jroberson@10.0.0.1 To: "Gelsema, P (Patrick) - FreeBSD" In-Reply-To: <2155.10.202.77.103.1191443576.squirrel@webmail.superhero.nl> Message-ID: <20071004174044.E912@10.0.0.1> References: <20071002165007.D587@10.0.0.1> <20071003110727.411aa2de@pleiades.nextvenue.com> <2155.10.202.77.103.1191443576.squirrel@webmail.superhero.nl> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-381968367-1191545001=:912" Cc: freebsd-current@freebsd.org Subject: Re: ULE/yielding patch for testing. X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Oct 2007 00:40:44 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-381968367-1191545001=:912 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed On Wed, 3 Oct 2007, Gelsema, P (Patrick) - FreeBSD wrote: > On Wed, October 3, 2007 17:07, Nick Evans wrote: >> On Tue, 2 Oct 2007 16:53:33 -0700 (PDT) >> Jeff Roberson wrote: >> >>> Enclosed is a patch that does two things: >>> >>> 1) Reduces UP context switch time by over 10% making it faster than >>> 4BSD >>> on UP. On SMP it's hard to compare since ULE can do as many as 30x as >>> many switches per second on my 8way system. >>> >>> 2) Restores old sched_yield() behavior from 6.x. This was changed in >>> -current unintentionally I think. >>> >>> I'd appreciate any extra testing. The ULE context switch time >>> improvements required some changes to the frequency that we recalculate >>> priorities. I'm mostly interested in hearing whether this causes any >>> regression in normal workloads. >>> >>> Those of you still using 4BSD can also verify that the yield changes >>> don't >>> cause any problems there. >>> >>> Thanks, >>> Jeff >> >> Jeff, >> >> I haven't noticed any adverse affects with this patch on yesterdays >> CURRENT+ULE. System is a Pentium D 915 with 1 gig ram. Built a bunch of >> larger >> ports while browsing in firefox and setting up enlightenment-devel, >> interactivity was good. Enlightenment's eye-candy stayed very fluid. >> >> Nick >> _______________________________________________ >> freebsd-current@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-current >> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" >> > > Hi, > > Running -current as of tuesdaynight CET. > > FreeBSD hulk.superhero.nl 7.0-CURRENT FreeBSD 7.0-CURRENT #4: Wed Oct 3 > 08:19:30 UTC 2007 root@hulk.superhero.nl:/usr/obj/usr/src/sys/GENERIC > amd64 > > I've done the following (had to as I did not have the actual diff available): > > copy text from > http://lists.freebsd.org/pipermail/freebsd-current/attachments/20071002/30d18099/yield-0001.bin > into a file saved in /tmp > > #cd /usr/src > #patch < /tmp/patchile > > I had to tell the patch with which files I wanted the patchfiles to > compare with. Found this weird but they did apply correctly. > > I've recompiled my Kernel with SCHED_ULE and rebooted. > > After boot I got up to the login window after which it instantly paniced > with: panic: Invalid priority 128 on timeshare runq I believe I have fixed this bug in the enclosed patch. It is rooted from /usr/src/sys so you should cd there to apply it. Thanks, Jeff > > Maybe this error was caused by the method of patching used by me? Can you > please provide me the patch again by email, if this could solve the issue. > > If more information is required I am more than happy to provide. > > Rgds, > > Patrick > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org" > --0-381968367-1191545001=:912 Content-Type: TEXT/x-diff; charset=US-ASCII; name=yield.diff Content-Transfer-Encoding: BASE64 Content-ID: <20071004174321.I912@10.0.0.1> Content-Description: Content-Disposition: attachment; filename=yield.diff SW5kZXg6IGtlcm4va2Vybl9zd2l0Y2guYw0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9rZXJuL2tlcm5f c3dpdGNoLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjEzNg0KZGlmZiAt cCAtdSAtcjEuMTM2IGtlcm5fc3dpdGNoLmMNCi0tLSBrZXJuL2tlcm5fc3dp dGNoLmMJMjAgU2VwIDIwMDcgMjA6Mzg6NDMgLTAwMDAJMS4xMzYNCisrKyBr ZXJuL2tlcm5fc3dpdGNoLmMJMiBPY3QgMjAwNyAyMTo0MToxMCAtMDAwMA0K QEAgLTEzMywxNiArMTMzLDYgQEAgY2hvb3NldGhyZWFkKHZvaWQpDQogew0K IAlzdHJ1Y3QgdGhyZWFkICp0ZDsNCiANCi0jaWYgZGVmaW5lZChTTVApICYm IChkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYW1kNjRfXykpDQot CWlmIChzbXBfYWN0aXZlID09IDAgJiYgUENQVV9HRVQoY3B1aWQpICE9IDAp IHsNCi0JCS8qIFNodXR0aW5nIGRvd24sIHJ1biBpZGxldGhyZWFkIG9uIEFQ J3MgKi8NCi0JCXRkID0gUENQVV9HRVQoaWRsZXRocmVhZCk7DQotCQlDVFIx KEtUUl9SVU5RLCAiY2hvb3NldGhyZWFkOiB0ZD0lcCAoaWRsZSkiLCB0ZCk7 DQotCQlURF9TRVRfUlVOTklORyh0ZCk7DQotCQlyZXR1cm4gKHRkKTsNCi0J fQ0KLSNlbmRpZg0KLQ0KIHJldHJ5Og0KIAl0ZCA9IHNjaGVkX2Nob29zZSgp Ow0KIA0KQEAgLTE4NCw3ICsxNzQsNyBAQCBjcml0aWNhbF9leGl0KHZvaWQp DQogCXRkID0gY3VydGhyZWFkOw0KIAlLQVNTRVJUKHRkLT50ZF9jcml0bmVz dCAhPSAwLA0KIAkgICAgKCJjcml0aWNhbF9leGl0OiB0ZF9jcml0bmVzdCA9 PSAwIikpOw0KLSNpZmRlZiBQUkVFTVBUSU9ODQorDQogCWlmICh0ZC0+dGRf Y3JpdG5lc3QgPT0gMSkgew0KIAkJdGQtPnRkX2NyaXRuZXN0ID0gMDsNCiAJ CWlmICh0ZC0+dGRfb3dlcHJlZW1wdCkgew0KQEAgLTE5Niw3ICsxODYsNiBA QCBjcml0aWNhbF9leGl0KHZvaWQpDQogCQkJdGhyZWFkX3VubG9jayh0ZCk7 DQogCQl9DQogCX0gZWxzZQ0KLSNlbmRpZg0KIAkJdGQtPnRkX2NyaXRuZXN0 LS07DQogDQogCUNUUjQoS1RSX0NSSVRJQ0FMLCAiY3JpdGljYWxfZXhpdCBi eSB0aHJlYWQgJXAgKCVsZCwgJXMpIHRvICVkIiwgdGQsDQpJbmRleDoga2Vy bi9rZXJuX3N5bmNoLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm aWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMva2Vybi9rZXJuX3N5bmNoLmMsdg0K cmV0cmlldmluZyByZXZpc2lvbiAxLjMwMQ0KZGlmZiAtcCAtdSAtcjEuMzAx IGtlcm5fc3luY2guYw0KLS0tIGtlcm4va2Vybl9zeW5jaC5jCTE3IFNlcCAy MDA3IDA1OjI3OjIwIC0wMDAwCTEuMzAxDQorKysga2Vybi9rZXJuX3N5bmNo LmMJMiBPY3QgMjAwNyAwODoxODoxOSAtMDAwMA0KQEAgLTU1Myw4ICs1NTMs MTEgQEAgc3luY2hfc2V0dXAoZHVtbXkpDQogaW50DQogeWllbGQoc3RydWN0 IHRocmVhZCAqdGQsIHN0cnVjdCB5aWVsZF9hcmdzICp1YXApDQogew0KLQlt dHhfYXNzZXJ0KCZHaWFudCwgTUFfTk9UT1dORUQpOw0KLQkodm9pZCl1YXA7 DQotCXNjaGVkX3JlbGlucXVpc2godGQpOw0KKw0KKwl0aHJlYWRfbG9jayh0 ZCk7DQorCXNjaGVkX3ByaW8odGQsIFBSSV9NQVhfVElNRVNIQVJFKTsNCisJ bWlfc3dpdGNoKFNXX1ZPTCwgTlVMTCk7DQorCXRocmVhZF91bmxvY2sodGQp Ow0KKwl0ZC0+dGRfcmV0dmFsWzBdID0gMDsNCiAJcmV0dXJuICgwKTsNCiB9 DQpJbmRleDoga2Vybi9wMTAwM18xYi5jDQo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2tlcm4vcDEwMDNf MWIuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzUNCmRpZmYgLXAgLXUg LXIxLjM1IHAxMDAzXzFiLmMNCi0tLSBrZXJuL3AxMDAzXzFiLmMJNSBNYXIg MjAwNyAxMzoxMDo1NyAtMDAwMAkxLjM1DQorKysga2Vybi9wMTAwM18xYi5j CTIgT2N0IDIwMDcgMjE6NTU6NDggLTAwMDANCkBAIC0yNDEsNyArMjQxLDgg QEAgaW50DQogc2NoZWRfeWllbGQoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVj dCBzY2hlZF95aWVsZF9hcmdzICp1YXApDQogew0KIA0KLQlyZXR1cm4gKGtz Y2hlZF95aWVsZChrc2NoZWQpKTsNCisJc2NoZWRfcmVsaW5xdWlzaChjdXJ0 aHJlYWQpOw0KKwlyZXR1cm4gMDsNCiB9DQogDQogaW50DQpJbmRleDoga2Vy bi9zY2hlZF80YnNkLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm aWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMva2Vybi9zY2hlZF80YnNkLmMsdg0K cmV0cmlldmluZyByZXZpc2lvbiAxLjEwNQ0KZGlmZiAtcCAtdSAtcjEuMTA1 IHNjaGVkXzRic2QuYw0KLS0tIGtlcm4vc2NoZWRfNGJzZC5jCTIxIFNlcCAy MDA3IDA0OjEwOjIzIC0wMDAwCTEuMTA1DQorKysga2Vybi9zY2hlZF80YnNk LmMJMiBPY3QgMjAwNyAwODowODozNiAtMDAwMA0KQEAgLTEzMjQsOCArMTMy NCw2IEBAIHZvaWQNCiBzY2hlZF9yZWxpbnF1aXNoKHN0cnVjdCB0aHJlYWQg KnRkKQ0KIHsNCiAJdGhyZWFkX2xvY2sodGQpOw0KLQlpZiAodGQtPnRkX3By aV9jbGFzcyA9PSBQUklfVElNRVNIQVJFKQ0KLQkJc2NoZWRfcHJpbyh0ZCwg UFJJX01BWF9USU1FU0hBUkUpOw0KIAlTQ0hFRF9TVEFUX0lOQyhzd2l0Y2hf cmVsaW5xdWlzaCk7DQogCW1pX3N3aXRjaChTV19WT0wsIE5VTEwpOw0KIAl0 aHJlYWRfdW5sb2NrKHRkKTsNCkluZGV4OiBrZXJuL3NjaGVkX3VsZS5jDQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9z cmMvc3lzL2tlcm4vc2NoZWRfdWxlLmMsdg0KcmV0cmlldmluZyByZXZpc2lv biAxLjIwOQ0KZGlmZiAtcCAtdSAtcjEuMjA5IHNjaGVkX3VsZS5jDQotLS0g a2Vybi9zY2hlZF91bGUuYwkyNCBTZXAgMjAwNyAwMDoyODo1NCAtMDAwMAkx LjIwOQ0KKysrIGtlcm4vc2NoZWRfdWxlLmMJNSBPY3QgMjAwNyAwMDozNTo0 MSAtMDAwMA0KQEAgLTM3NCw4ICszNzQsMTIgQEAgdGRxX3ByaW50KGludCBj cHUpDQogc3RhdGljIF9faW5saW5lIHZvaWQNCiB0ZHFfcnVucV9hZGQoc3Ry dWN0IHRkcSAqdGRxLCBzdHJ1Y3QgdGRfc2NoZWQgKnRzLCBpbnQgZmxhZ3Mp DQogew0KKwl1X2NoYXIgcHJpOw0KKw0KKwlwcmkgPSB0cy0+dHNfdGhyZWFk LT50ZF9wcmlvcml0eTsNCiAJVERRX0xPQ0tfQVNTRVJUKHRkcSwgTUFfT1dO RUQpOw0KIAlUSFJFQURfTE9DS19BU1NFUlQodHMtPnRzX3RocmVhZCwgTUFf T1dORUQpOw0KKwlURF9TRVRfUlVOUSh0cy0+dHNfdGhyZWFkKTsNCiAjaWZk ZWYgU01QDQogCWlmIChUSFJFQURfQ0FOX01JR1JBVEUodHMtPnRzX3RocmVh ZCkpIHsNCiAJCXRkcS0+dGRxX3RyYW5zZmVyYWJsZSsrOw0KQEAgLTM4Mywx NSArMzg3LDE1IEBAIHRkcV9ydW5xX2FkZChzdHJ1Y3QgdGRxICp0ZHEsIHN0 cnVjdCB0ZF8NCiAJCXRzLT50c19mbGFncyB8PSBUU0ZfWEZFUkFCTEU7DQog CX0NCiAjZW5kaWYNCi0JaWYgKHRzLT50c19ydW5xID09ICZ0ZHEtPnRkcV90 aW1lc2hhcmUpIHsNCi0JCXVfY2hhciBwcmk7DQotDQotCQlwcmkgPSB0cy0+ dHNfdGhyZWFkLT50ZF9wcmlvcml0eTsNCisJaWYgKHByaSA8PSBQUklfTUFY X1JFQUxUSU1FKSB7DQorCQl0cy0+dHNfcnVucSA9ICZ0ZHEtPnRkcV9yZWFs dGltZTsNCisJfSBlbHNlIGlmIChwcmkgPD0gUFJJX01BWF9USU1FU0hBUkUp IHsNCisJCXRzLT50c19ydW5xID0gJnRkcS0+dGRxX3RpbWVzaGFyZTsNCiAJ CUtBU1NFUlQocHJpIDw9IFBSSV9NQVhfVElNRVNIQVJFICYmIHByaSA+PSBQ UklfTUlOX1RJTUVTSEFSRSwNCiAJCQkoIkludmFsaWQgcHJpb3JpdHkgJWQg b24gdGltZXNoYXJlIHJ1bnEiLCBwcmkpKTsNCiAJCS8qDQogCQkgKiBUaGlz IHF1ZXVlIGNvbnRhaW5zIG9ubHkgcHJpb3JpdGllcyBiZXR3ZWVuIE1JTiBh bmQgTUFYDQotCQkgKiByZWFsdGltZS4gIFVzZSB0aGUgd2hvbGUgcXVldWUg dG8gcmVwcmVzZW50IHRoZXNlIHZhbHVlcy4NCisJCSAqIHRpbWVzaGFyZS4g IFVzZSB0aGUgd2hvbGUgcXVldWUgdG8gcmVwcmVzZW50IHRoZXNlIHZhbHVl cy4NCiAJCSAqLw0KIAkJaWYgKChmbGFncyAmIChTUlFfQk9SUk9XSU5HfFNS UV9QUkVFTVBURUQpKSA9PSAwKSB7DQogCQkJcHJpID0gKHByaSAtIFBSSV9N SU5fVElNRVNIQVJFKSAvIFRTX1JRX1BQUTsNCkBAIC00MDcsOCArNDExLDEw IEBAIHRkcV9ydW5xX2FkZChzdHJ1Y3QgdGRxICp0ZHEsIHN0cnVjdCB0ZF8N CiAJCX0gZWxzZQ0KIAkJCXByaSA9IHRkcS0+dGRxX3JpZHg7DQogCQlydW5x X2FkZF9wcmkodHMtPnRzX3J1bnEsIHRzLCBwcmksIGZsYWdzKTsNCisJCXJl dHVybjsNCiAJfSBlbHNlDQotCQlydW5xX2FkZCh0cy0+dHNfcnVucSwgdHMs IGZsYWdzKTsNCisJCXRzLT50c19ydW5xID0gJnRkcS0+dGRxX2lkbGU7DQor CXJ1bnFfYWRkKHRzLT50c19ydW5xLCB0cywgZmxhZ3MpOw0KIH0NCiANCiAv KiANCkBAIC00MzQsMTMgKzQ0MCw2IEBAIHRkcV9ydW5xX3JlbShzdHJ1Y3Qg dGRxICp0ZHEsIHN0cnVjdCB0ZF8NCiAJCQlydW5xX3JlbW92ZV9pZHgodHMt PnRzX3J1bnEsIHRzLCAmdGRxLT50ZHFfcmlkeCk7DQogCQllbHNlDQogCQkJ cnVucV9yZW1vdmVfaWR4KHRzLT50c19ydW5xLCB0cywgTlVMTCk7DQotCQkv Kg0KLQkJICogRm9yIHRpbWVzaGFyZSB0aHJlYWRzIHdlIHVwZGF0ZSB0aGUg cHJpb3JpdHkgaGVyZSBzbw0KLQkJICogdGhlIHByaW9yaXR5IHJlZmxlY3Rz IHRoZSB0aW1lIHdlJ3ZlIGJlZW4gc2xlZXBpbmcuDQotCQkgKi8NCi0JCXRz LT50c19sdGljayA9IHRpY2tzOw0KLQkJc2NoZWRfcGN0Y3B1X3VwZGF0ZSh0 cyk7DQotCQlzY2hlZF9wcmlvcml0eSh0cy0+dHNfdGhyZWFkKTsNCiAJfSBl bHNlDQogCQlydW5xX3JlbW92ZSh0cy0+dHNfcnVucSwgdHMpOw0KIH0NCkBA IC0xNTY1LDE1ICsxNTY0LDIwIEBAIHN0YXRpYyB2b2lkDQogc2NoZWRfdGhy ZWFkX3ByaW9yaXR5KHN0cnVjdCB0aHJlYWQgKnRkLCB1X2NoYXIgcHJpbykN CiB7DQogCXN0cnVjdCB0ZF9zY2hlZCAqdHM7DQorCXN0cnVjdCB0ZHEgKnRk cTsNCiANCiAJQ1RSNihLVFJfU0NIRUQsICJzY2hlZF9wcmlvOiAlcCglcykg cHJpbyAlZCBuZXdwcmlvICVkIGJ5ICVwKCVzKSIsDQogCSAgICB0ZCwgdGQt PnRkX3Byb2MtPnBfY29tbSwgdGQtPnRkX3ByaW9yaXR5LCBwcmlvLCBjdXJ0 aHJlYWQsDQogCSAgICBjdXJ0aHJlYWQtPnRkX3Byb2MtPnBfY29tbSk7DQog CXRzID0gdGQtPnRkX3NjaGVkOw0KKwl0ZHEgPSBURFFfQ1BVKHRzLT50c19j cHUpOw0KIAlUSFJFQURfTE9DS19BU1NFUlQodGQsIE1BX09XTkVEKTsNCiAJ aWYgKHRkLT50ZF9wcmlvcml0eSA9PSBwcmlvKQ0KIAkJcmV0dXJuOw0KLQ0K KyNpZmRlZiBTTVANCisJaWYgKHByaW8gPCB0ZHEtPnRkcV9sb3dwcmkpDQor CQl0ZHEtPnRkcV9sb3dwcmkgPSBwcmlvOw0KKyNlbmRpZg0KIAlpZiAoVERf T05fUlVOUSh0ZCkgJiYgcHJpbyA8IHRkLT50ZF9wcmlvcml0eSkgew0KIAkJ LyoNCiAJCSAqIElmIHRoZSBwcmlvcml0eSBoYXMgYmVlbiBlbGV2YXRlZCBk dWUgdG8gcHJpb3JpdHkNCkBAIC0xNTg0LDE2ICsxNTg4LDggQEAgc2NoZWRf dGhyZWFkX3ByaW9yaXR5KHN0cnVjdCB0aHJlYWQgKnRkLA0KIAkJc2NoZWRf cmVtKHRkKTsNCiAJCXRkLT50ZF9wcmlvcml0eSA9IHByaW87DQogCQlzY2hl ZF9hZGQodGQsIFNSUV9CT1JST1dJTkcpOw0KLQl9IGVsc2Ugew0KLSNpZmRl ZiBTTVANCi0JCXN0cnVjdCB0ZHEgKnRkcTsNCi0NCi0JCXRkcSA9IFREUV9D UFUodHMtPnRzX2NwdSk7DQotCQlpZiAocHJpbyA8IHRkcS0+dGRxX2xvd3By aSkNCi0JCQl0ZHEtPnRkcV9sb3dwcmkgPSBwcmlvOw0KLSNlbmRpZg0KKwl9 IGVsc2UNCiAJCXRkLT50ZF9wcmlvcml0eSA9IHByaW87DQotCX0NCiB9DQog DQogLyoNCkBAIC0xNzM5LDYgKzE3MzUsOCBAQCBzY2hlZF9zd2l0Y2hfbWln cmF0ZShzdHJ1Y3QgdGRxICp0ZHEsIHN0DQogDQogCXRkbiA9IFREUV9DUFUo dGQtPnRkX3NjaGVkLT50c19jcHUpOw0KICNpZmRlZiBTTVANCisJLyogVGhl IGxvYWQgaXMgYmVpbmcgcmVtb3ZlZCBmcm9tIHRoZSBjdXJyZW50IGNwdS4g Ki8NCisJdGRxX2xvYWRfcmVtKHRkcSwgdGQtPnRkX3NjaGVkKTsNCiAJLyoN CiAJICogRG8gdGhlIGxvY2sgZGFuY2UgcmVxdWlyZWQgdG8gYXZvaWQgTE9S LiAgV2UgZ3JhYiBhbiBleHRyYQ0KIAkgKiBzcGlubG9jayBuZXN0aW5nIHRv IHByZXZlbnQgcHJlZW1wdGlvbiB3aGlsZSB3ZSdyZQ0KQEAgLTE4MzAsMTIg KzE4MjgsMTEgQEAgc2NoZWRfc3dpdGNoKHN0cnVjdCB0aHJlYWQgKnRkLCBz dHJ1Y3QgdA0KIAkJVERfU0VUX0NBTl9SVU4odGQpOw0KIAl9IGVsc2UgaWYg KFREX0lTX1JVTk5JTkcodGQpKSB7DQogCQlNUEFTUyh0ZC0+dGRfbG9jayA9 PSBURFFfTE9DS1BUUih0ZHEpKTsNCi0JCXRkcV9sb2FkX3JlbSh0ZHEsIHRz KTsNCiAJCXNycWZsYWcgPSAoZmxhZ3MgJiBTV19QUkVFTVBUKSA/DQogCQkg ICAgU1JRX09VUlNFTEZ8U1JRX1lJRUxESU5HfFNSUV9QUkVFTVBURUQgOg0K IAkJICAgIFNSUV9PVVJTRUxGfFNSUV9ZSUVMRElORzsNCiAJCWlmICh0cy0+ dHNfY3B1ID09IGNwdWlkKQ0KLQkJCXRkcV9hZGQodGRxLCB0ZCwgc3JxZmxh Zyk7DQorCQkJdGRxX3J1bnFfYWRkKHRkcSwgdHMsIHNycWZsYWcpOw0KIAkJ ZWxzZQ0KIAkJCW10eCA9IHNjaGVkX3N3aXRjaF9taWdyYXRlKHRkcSwgdGQs IHNycWZsYWcpOw0KIAl9IGVsc2Ugew0KQEAgLTE5NDksNyArMTk0Niw2IEBA IHNjaGVkX3dha2V1cChzdHJ1Y3QgdGhyZWFkICp0ZCkNCiAJCXRzLT50c19z bHB0aW1lICs9IGh6dGlja3M7DQogCQlzY2hlZF9pbnRlcmFjdF91cGRhdGUo dGQpOw0KIAkJc2NoZWRfcGN0Y3B1X3VwZGF0ZSh0cyk7DQotCQlzY2hlZF9w cmlvcml0eSh0ZCk7DQogCX0NCiAJLyogUmVzZXQgdGhlIHNsaWNlIHZhbHVl IGFmdGVyIHdlIHNsZWVwLiAqLw0KIAl0cy0+dHNfc2xpY2UgPSBzY2hlZF9z bGljZTsNCkBAIC0yMTU0LDE2ICsyMTUwLDE3IEBAIHNjaGVkX2Nsb2NrKHN0 cnVjdCB0aHJlYWQgKnRkKQ0KIAkgKi8NCiAJdGQtPnRkX3NjaGVkLT50c19y dW50aW1lICs9IHRpY2tpbmNyOw0KIAlzY2hlZF9pbnRlcmFjdF91cGRhdGUo dGQpOw0KKwlzY2hlZF9wcmlvcml0eSh0ZCk7DQogCS8qDQogCSAqIFdlIHVz ZWQgdXAgb25lIHRpbWUgc2xpY2UuDQogCSAqLw0KIAlpZiAoLS10cy0+dHNf c2xpY2UgPiAwKQ0KIAkJcmV0dXJuOw0KIAkvKg0KLQkgKiBXZSdyZSBvdXQg b2YgdGltZSwgcmVjb21wdXRlIHByaW9yaXRpZXMgYW5kIHJlcXVldWUuDQor CSAqIFdlJ3JlIG91dCBvZiB0aW1lLCBmb3JjZSBhIHJlcXVldWUgbGF0ZXIu DQogCSAqLw0KLQlzY2hlZF9wcmlvcml0eSh0ZCk7DQogCXRkLT50ZF9mbGFn cyB8PSBUREZfTkVFRFJFU0NIRUQ7DQorCXRzLT50c19zbGljZSA9IHNjaGVk X3NsaWNlOw0KIH0NCiANCiAvKg0KQEAgLTIyODQsMTEgKzIyODEsMTAgQEAg dm9pZA0KIHRkcV9hZGQoc3RydWN0IHRkcSAqdGRxLCBzdHJ1Y3QgdGhyZWFk ICp0ZCwgaW50IGZsYWdzKQ0KIHsNCiAJc3RydWN0IHRkX3NjaGVkICp0czsN Ci0JaW50IGNsYXNzOw0KICNpZmRlZiBTTVANCisJaW50IGNsYXNzOw0KIAlp bnQgY3B1bWFzazsNCiAjZW5kaWYNCi0NCiAJVERRX0xPQ0tfQVNTRVJUKHRk cSwgTUFfT1dORUQpOw0KIAlLQVNTRVJUKCh0ZC0+dGRfaW5oaWJpdG9ycyA9 PSAwKSwNCiAJICAgICgic2NoZWRfYWRkOiB0cnlpbmcgdG8gcnVuIGluaGli aXRlZCB0aHJlYWQiKSk7DQpAQCAtMjI5OCwyMCArMjI5NCwxMCBAQCB0ZHFf YWRkKHN0cnVjdCB0ZHEgKnRkcSwgc3RydWN0IHRocmVhZCAqDQogCSAgICAo InNjaGVkX2FkZDogdGhyZWFkIHN3YXBwZWQgb3V0IikpOw0KIA0KIAl0cyA9 IHRkLT50ZF9zY2hlZDsNCi0JY2xhc3MgPSBQUklfQkFTRSh0ZC0+dGRfcHJp X2NsYXNzKTsNCi0gICAgICAgIFREX1NFVF9SVU5RKHRkKTsNCi0JaWYgKHRz LT50c19zbGljZSA9PSAwKQ0KLQkJdHMtPnRzX3NsaWNlID0gc2NoZWRfc2xp Y2U7DQotCS8qDQotCSAqIFBpY2sgdGhlIHJ1biBxdWV1ZSBiYXNlZCBvbiBw cmlvcml0eS4NCi0JICovDQotCWlmICh0ZC0+dGRfcHJpb3JpdHkgPD0gUFJJ X01BWF9SRUFMVElNRSkNCi0JCXRzLT50c19ydW5xID0gJnRkcS0+dGRxX3Jl YWx0aW1lOw0KLQllbHNlIGlmICh0ZC0+dGRfcHJpb3JpdHkgPD0gUFJJX01B WF9USU1FU0hBUkUpDQotCQl0cy0+dHNfcnVucSA9ICZ0ZHEtPnRkcV90aW1l c2hhcmU7DQotCWVsc2UNCi0JCXRzLT50c19ydW5xID0gJnRkcS0+dGRxX2lk bGU7DQorCXRkcV9ydW5xX2FkZCh0ZHEsIHRzLCBmbGFncyk7DQorCXRkcV9s b2FkX2FkZCh0ZHEsIHRzKTsNCiAjaWZkZWYgU01QDQorCWNsYXNzID0gUFJJ X0JBU0UodGQtPnRkX3ByaV9jbGFzcyk7DQogCWNwdW1hc2sgPSAxIDw8IHRz LT50c19jcHU7DQogCS8qDQogCSAqIElmIHdlIGhhZCBiZWVuIGlkbGUsIGNs ZWFyIG91ciBiaXQgaW4gdGhlIGdyb3VwIGFuZCBwb3RlbnRpYWxseQ0KQEAg LTIzMzQsOCArMjMyMCw2IEBAIHRkcV9hZGQoc3RydWN0IHRkcSAqdGRxLCBz dHJ1Y3QgdGhyZWFkICoNCiAJaWYgKHRkLT50ZF9wcmlvcml0eSA8IHRkcS0+ dGRxX2xvd3ByaSkNCiAJCXRkcS0+dGRxX2xvd3ByaSA9IHRkLT50ZF9wcmlv cml0eTsNCiAjZW5kaWYNCi0JdGRxX3J1bnFfYWRkKHRkcSwgdHMsIGZsYWdz KTsNCi0JdGRxX2xvYWRfYWRkKHRkcSwgdHMpOw0KIH0NCiANCiAvKg0KQEAg LTI1MDIsOCArMjQ4Niw2IEBAIHZvaWQNCiBzY2hlZF9yZWxpbnF1aXNoKHN0 cnVjdCB0aHJlYWQgKnRkKQ0KIHsNCiAJdGhyZWFkX2xvY2sodGQpOw0KLQlp ZiAodGQtPnRkX3ByaV9jbGFzcyA9PSBQUklfVElNRVNIQVJFKQ0KLQkJc2No ZWRfcHJpbyh0ZCwgUFJJX01BWF9USU1FU0hBUkUpOw0KIAlTQ0hFRF9TVEFU X0lOQyhzd2l0Y2hfcmVsaW5xdWlzaCk7DQogCW1pX3N3aXRjaChTV19WT0ws IE5VTEwpOw0KIAl0aHJlYWRfdW5sb2NrKHRkKTsNCg== --0-381968367-1191545001=:912--