From owner-freebsd-current@FreeBSD.ORG Sun Jun 13 22:18:55 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EDB3D16A4CE for ; Sun, 13 Jun 2004 22:18:55 +0000 (GMT) Received: from sccrmhc11.comcast.net (sccrmhc11.comcast.net [204.127.202.55]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9DE8043D1D for ; Sun, 13 Jun 2004 22:18:55 +0000 (GMT) (envelope-from julian@elischer.org) Received: from interjet.elischer.org ([24.7.73.28]) by comcast.net (sccrmhc11) with ESMTP id <2004061322184901100fk8dre>; Sun, 13 Jun 2004 22:18:49 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id PAA19232 for ; Sun, 13 Jun 2004 15:18:46 -0700 (PDT) Date: Sun, 13 Jun 2004 15:18:45 -0700 (PDT) From: Julian Elischer To: FreeBSD current users Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-826546490-1087165125=:95601" Subject: RFC: "nice" is per process X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 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: Sun, 13 Jun 2004 22:18:56 -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. Send mail to mime@docserver.cac.washington.edu for more info. --0-826546490-1087165125=:95601 Content-Type: TEXT/PLAIN; charset=US-ASCII When splitting appart the process structure for theads, I made a mistake and made the "nice" value a property of the ksegrp. This is wrong because Posix specifies that Nice always affects the entire process, so this patch moves it back to the process. This does not mean that all threads will have the same priority, only that the nice value used to influence their priority will be the same throughout the process. comments? I've sent this to several people without comment so i'm widenning the request group. julian --0-826546490-1087165125=:95601 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="nice.diff" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="nice.diff" PyBub3Rlcw0KPyBvdXQNCj8gZGV2L215L2lmX215LmMubmV3DQo/IGkzODYv Y29uZi9MSU5UDQpJbmRleDogZnMvc3BlY2ZzL3NwZWNfdm5vcHMuYw0KPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3Jj L3N5cy9mcy9zcGVjZnMvc3BlY192bm9wcy5jLHYNCnJldHJpZXZpbmcgcmV2 aXNpb24gMS4yMjINCmRpZmYgLXUgLXIxLjIyMiBzcGVjX3Zub3BzLmMNCi0t LSBmcy9zcGVjZnMvc3BlY192bm9wcy5jCTYgTWF5IDIwMDQgMDU6MDM6MjEg LTAwMDAJMS4yMjINCisrKyBmcy9zcGVjZnMvc3BlY192bm9wcy5jCTEyIEp1 biAyMDA0IDA2OjUyOjUxIC0wMDAwDQpAQCAtNDcwLDExICs0NzAsMTEgQEAN CiAJLyoNCiAJICogU2xvdyBkb3duIGRpc2sgcmVxdWVzdHMgZm9yIG5pY2Vk IHByb2Nlc3Nlcy4NCiAJICovDQotCWlmIChkb3Nsb3dkb3duICYmIHRkICYm IHRkLT50ZF9rc2VncnAtPmtnX25pY2UgPiAwKSB7DQorCWlmIChkb3Nsb3dk b3duICYmIHRkICYmIHRkLT50ZF9wcm9jLT5wX25pY2UgPiAwKSB7DQogCQlt dHhfbG9jaygmc3RyYXRlZ3lfbXR4KTsNCiAJCW1zbGVlcCgmc3RyYXRlZ3lf bXR4LCAmc3RyYXRlZ3lfbXR4LA0KIAkJICAgIFBQQVVTRSB8IFBDQVRDSCB8 IFBEUk9QLCAiaW9zbG93IiwNCi0JCSAgICB0ZC0+dGRfa3NlZ3JwLT5rZ19u aWNlKTsNCisJCSAgICB0ZC0+dGRfcHJvYy0+cF9uaWNlKTsNCiAJfQ0KIAkv Kg0KIAkgKiBDb2xsZWN0IHN0YXRpc3RpY3Mgb24gc3luY2hyb25vdXMgYW5k IGFzeW5jaHJvbm91cyByZWFkDQpJbmRleDogaTM4Ni9pYmNzMi9pYmNzMl9t aXNjLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9t ZS9uY3ZzL3NyYy9zeXMvaTM4Ni9pYmNzMi9pYmNzMl9taXNjLmMsdg0KcmV0 cmlldmluZyByZXZpc2lvbiAxLjU0DQpkaWZmIC11IC1yMS41NCBpYmNzMl9t aXNjLmMNCi0tLSBpMzg2L2liY3MyL2liY3MyX21pc2MuYwkxNyBNYXIgMjAw NCAyMDowMDowMCAtMDAwMAkxLjU0DQorKysgaTM4Ni9pYmNzMi9pYmNzMl9t aXNjLmMJMTIgSnVuIDIwMDQgMDY6NTI6NTMgLTAwMDANCkBAIC05NTEsMTAg Kzk1MSwxMCBAQA0KIA0KIAlzYS53aGljaCA9IFBSSU9fUFJPQ0VTUzsNCiAJ c2Eud2hvID0gMDsNCi0Jc2EucHJpbyA9IHRkLT50ZF9rc2VncnAtPmtnX25p Y2UgKyB1YXAtPmluY3I7DQorCXNhLnByaW8gPSB0ZC0+dGRfcHJvYy0+cF9u aWNlICsgdWFwLT5pbmNyOw0KIAlpZiAoKGVycm9yID0gc2V0cHJpb3JpdHko dGQsICZzYSkpICE9IDApDQogCQlyZXR1cm4gRVBFUk07DQotCXRkLT50ZF9y ZXR2YWxbMF0gPSB0ZC0+dGRfa3NlZ3JwLT5rZ19uaWNlOw0KKwl0ZC0+dGRf cmV0dmFsWzBdID0gdGQtPnRkX3Byb2MtPnBfbmljZTsNCiAJcmV0dXJuIDA7 DQogfQ0KIA0KSW5kZXg6IGtlcm4vaW5pdF9tYWluLmMNCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMva2Vy bi9pbml0X21haW4uYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjQyDQpk aWZmIC11IC1yMS4yNDIgaW5pdF9tYWluLmMNCi0tLSBrZXJuL2luaXRfbWFp bi5jCTI5IEZlYiAyMDA0IDE2OjU2OjU0IC0wMDAwCTEuMjQyDQorKysga2Vy bi9pbml0X21haW4uYwkxMiBKdW4gMjAwNCAwNjo1Mjo1NiAtMDAwMA0KQEAg LTM4Miw4ICszODIsOCBAQA0KIAlwLT5wX2ZsYWcgPSBQX1NZU1RFTTsNCiAJ cC0+cF9zZmxhZyA9IFBTX0lOTUVNOw0KIAlwLT5wX3N0YXRlID0gUFJTX05P Uk1BTDsNCisJcC0+cF9uaWNlID0gTlpFUk87DQogCXRkLT50ZF9zdGF0ZSA9 IFREU19SVU5OSU5HOw0KLQlrZy0+a2dfbmljZSA9IE5aRVJPOw0KIAlrZy0+ a2dfcHJpX2NsYXNzID0gUFJJX1RJTUVTSEFSRTsNCiAJa2ctPmtnX3VzZXJf cHJpID0gUFVTRVI7DQogCXRkLT50ZF9wcmlvcml0eSA9IFBWTTsNCkluZGV4 OiBrZXJuL2tlcm5fY2xvY2suYw0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K UkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9rZXJuL2tlcm5fY2xvY2su Yyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTY5DQpkaWZmIC11IC1yMS4x Njkga2Vybl9jbG9jay5jDQotLS0ga2Vybi9rZXJuX2Nsb2NrLmMJMiBKdW4g MjAwNCAxMjowNTowNiAtMDAwMAkxLjE2OQ0KKysrIGtlcm4va2Vybl9jbG9j ay5jCTEyIEp1biAyMDA0IDA2OjUyOjU4IC0wMDAwDQpAQCAtMzkyLDcgKzM5 Miw3IEBADQogCQlpZiAocC0+cF9mbGFnICYgUF9TQSkNCiAJCQl0aHJlYWRf c3RhdGNsb2NrKDEpOw0KIAkJcC0+cF91dGlja3MrKzsNCi0JCWlmICh0ZC0+ dGRfa3NlZ3JwLT5rZ19uaWNlID4gTlpFUk8pDQorCQlpZiAocC0+cF9uaWNl ID4gTlpFUk8pDQogCQkJY3BfdGltZVtDUF9OSUNFXSsrOw0KIAkJZWxzZQ0K IAkJCWNwX3RpbWVbQ1BfVVNFUl0rKzsNCkluZGV4OiBrZXJuL2tlcm5fcHJv Yy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUv bmN2cy9zcmMvc3lzL2tlcm4va2Vybl9wcm9jLmMsdg0KcmV0cmlldmluZyBy ZXZpc2lvbiAxLjIwMw0KZGlmZiAtdSAtcjEuMjAzIGtlcm5fcHJvYy5jDQot LS0ga2Vybi9rZXJuX3Byb2MuYwkyMiBNYXkgMjAwNCAyMzoxMTo0NCAtMDAw MAkxLjIwMw0KKysrIGtlcm4va2Vybl9wcm9jLmMJMTIgSnVuIDIwMDQgMDY6 NTM6MDEgLTAwMDANCkBAIC03MzcsNiArNzM3LDcgQEANCiAJCWtwLT5raV9z ZmxhZyA9IHAtPnBfc2ZsYWc7DQogCQlrcC0+a2lfc3d0aW1lID0gcC0+cF9z d3RpbWU7DQogCQlrcC0+a2lfcGlkID0gcC0+cF9waWQ7DQorCQlrcC0+a2lf bmljZSA9IHAtPnBfbmljZTsNCiAJCWtnID0gdGQtPnRkX2tzZWdycDsNCiAJ CWtlID0gdGQtPnRkX2tzZTsNCiAJCWJpbnRpbWUydGltZXZhbCgmcC0+cF9y dW50aW1lLCAmdHYpOw0KQEAgLTc0OCw3ICs3NDksNiBAQA0KIAkJa3AtPmtp X3NscHRpbWUgPSBrZy0+a2dfc2xwdGltZTsNCiAJCWtwLT5raV9wcmkucHJp X3VzZXIgPSBrZy0+a2dfdXNlcl9wcmk7DQogCQlrcC0+a2lfcHJpLnByaV9j bGFzcyA9IGtnLT5rZ19wcmlfY2xhc3M7DQotCQlrcC0+a2lfbmljZSA9IGtn LT5rZ19uaWNlOw0KIA0KIAkJLyogVGhpbmdzIGluIHRoZSB0aHJlYWQgKi8N CiAJCWtwLT5raV93Y2hhbiA9IHRkLT50ZF93Y2hhbjsNCkluZGV4OiBrZXJu L2tlcm5fcmVzb3VyY2UuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT IGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9rZXJuL2tlcm5fcmVzb3VyY2Uu Yyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTM3DQpkaWZmIC11IC1yMS4x Mzcga2Vybl9yZXNvdXJjZS5jDQotLS0ga2Vybi9rZXJuX3Jlc291cmNlLmMJ OCBNYXkgMjAwNCAwODo1NjowNSAtMDAwMAkxLjEzNw0KKysrIGtlcm4va2Vy bl9yZXNvdXJjZS5jCTEyIEp1biAyMDA0IDA2OjUzOjAyIC0wMDAwDQpAQCAt ODgsNyArODgsNiBAQA0KIAlzdHJ1Y3QgdGhyZWFkICp0ZDsNCiAJcmVnaXN0 ZXIgc3RydWN0IGdldHByaW9yaXR5X2FyZ3MgKnVhcDsNCiB7DQotCXN0cnVj dCBrc2VncnAgKmtnOw0KIAlzdHJ1Y3QgcHJvYyAqcDsNCiAJaW50IGVycm9y LCBsb3c7DQogDQpAQCAtOTgsMTYgKzk3LDEzIEBADQogDQogCWNhc2UgUFJJ T19QUk9DRVNTOg0KIAkJaWYgKHVhcC0+d2hvID09IDApDQotCQkJbG93ID0g dGQtPnRkX2tzZWdycC0+a2dfbmljZTsNCisJCQlsb3cgPSB0ZC0+dGRfcHJv Yy0+cF9uaWNlOw0KIAkJZWxzZSB7DQogCQkJcCA9IHBmaW5kKHVhcC0+d2hv KTsNCiAJCQlpZiAocCA9PSBOVUxMKQ0KIAkJCQlicmVhazsNCiAJCQlpZiAo cF9jYW5zZWUodGQsIHApID09IDApIHsNCi0JCQkJRk9SRUFDSF9LU0VHUlBf SU5fUFJPQyhwLCBrZykgew0KLQkJCQkJaWYgKGtnLT5rZ19uaWNlIDwgbG93 KQ0KLQkJCQkJCWxvdyA9IGtnLT5rZ19uaWNlOw0KLQkJCQl9DQorCQkJCWxv dyA9IHAtPnBfbmljZTsNCiAJCQl9DQogCQkJUFJPQ19VTkxPQ0socCk7DQog CQl9DQpAQCAtMTMxLDEwICsxMjcsOCBAQA0KIAkJTElTVF9GT1JFQUNIKHAs ICZwZy0+cGdfbWVtYmVycywgcF9wZ2xpc3QpIHsNCiAJCQlQUk9DX0xPQ0so cCk7DQogCQkJaWYgKCFwX2NhbnNlZSh0ZCwgcCkpIHsNCi0JCQkJRk9SRUFD SF9LU0VHUlBfSU5fUFJPQyhwLCBrZykgew0KLQkJCQkJaWYgKGtnLT5rZ19u aWNlIDwgbG93KQ0KLQkJCQkJCWxvdyA9IGtnLT5rZ19uaWNlOw0KLQkJCQl9 DQorCQkJCWlmIChwLT5wX25pY2UgPCBsb3cpDQorCQkJCQlsb3cgPSBwLT5w X25pY2U7DQogCQkJfQ0KIAkJCVBST0NfVU5MT0NLKHApOw0KIAkJfQ0KQEAg LTE1MCwxMCArMTQ0LDggQEANCiAJCQlQUk9DX0xPQ0socCk7DQogCQkJaWYg KCFwX2NhbnNlZSh0ZCwgcCkgJiYNCiAJCQkgICAgcC0+cF91Y3JlZC0+Y3Jf dWlkID09IHVhcC0+d2hvKSB7DQotCQkJCUZPUkVBQ0hfS1NFR1JQX0lOX1BS T0MocCwga2cpIHsNCi0JCQkJCWlmIChrZy0+a2dfbmljZSA8IGxvdykNCi0J CQkJCQlsb3cgPSBrZy0+a2dfbmljZTsNCi0JCQkJfQ0KKwkJCQlpZiAocC0+ cF9uaWNlIDwgbG93KQ0KKwkJCQkJbG93ID0gcC0+cF9uaWNlOw0KIAkJCX0N CiAJCQlQUk9DX1VOTE9DSyhwKTsNCiAJCX0NCkBAIC0yNjAsMTkgKzI1Miwx MyBAQA0KIH0NCiANCiAvKiANCi0gKiBTZXQgIm5pY2UiIGZvciBhIHByb2Nl c3MuICBEb2Vzbid0IHJlYWxseSB1bmRlcnN0YW5kIHRocmVhZGVkIHByb2Nl c3Nlcw0KLSAqIHdlbGwgYnV0IGRvZXMgdHJ5LiAgSGFzIHRoZSB1bmZvcnR1 bmF0ZSBzaWRlIGVmZmVjdCBvZiBtYWtpbmcgYWxsIHRoZSBOSUNFDQotICog dmFsdWVzIGZvciBhIHByb2Nlc3MncyBrc2VncnBzIHRoZSBzYW1lLiAgVGhp cyBzdWdnZXN0cyB0aGF0DQotICogTklDRSB2YWx1ZXMgc2hvdWxkIGJlIHN0 b3JlZCBhcyBhIHByb2Nlc3MgbmljZSBhbmQgZGVsdGFzIGZvciB0aGUga3Nl Z3Jwcy4NCi0gKiAoYnV0IG5vdCB5ZXQpLg0KKyAqIFNldCAibmljZSIgZm9y IGEgKHdob2xlKSBwcm9jZXNzLg0KICAqLw0KIHN0YXRpYyBpbnQNCiBkb25p Y2Uoc3RydWN0IHRocmVhZCAqdGQsIHN0cnVjdCBwcm9jICpwLCBpbnQgbikN CiB7DQotCXN0cnVjdCBrc2VncnAgKmtnOw0KLQlpbnQgZXJyb3IsIGxvdzsN CisJaW50IGVycm9yOw0KIA0KLQlsb3cgPSBQUklPX01BWCArIDE7DQogCVBS T0NfTE9DS19BU1NFUlQocCwgTUFfT1dORUQpOw0KIAlpZiAoKGVycm9yID0g cF9jYW5zY2hlZCh0ZCwgcCkpKQ0KIAkJcmV0dXJuIChlcnJvcik7DQpAQCAt MjgwLDIwICsyNjYsMTAgQEANCiAJCW4gPSBQUklPX01BWDsNCiAJaWYgKG4g PCBQUklPX01JTikNCiAJCW4gPSBQUklPX01JTjsNCi0JLyogDQotCSAqIE9u bHkgYWxsb3cgbmljaW5nIGlmIHRvIG1vcmUgdGhhbiB0aGUgbG93ZXN0IG5p Y2UuDQotCSAqIEUuZy4sIGZvciBuaWNlcyBvZiA0LDMsMiBhbGxvdyBuaWNl IHRvIDMgYnV0IG5vdCAxDQotCSAqLw0KLQlGT1JFQUNIX0tTRUdSUF9JTl9Q Uk9DKHAsIGtnKSB7DQotCQlpZiAoa2ctPmtnX25pY2UgPCBsb3cpDQotCQkJ bG93ID0ga2ctPmtnX25pY2U7DQotCX0NCi0gCWlmIChuIDwgbG93ICYmIHN1 c2VyKHRkKSAhPSAwKQ0KKyAJaWYgKG4gPCAgcC0+cF9uaWNlICYmIHN1c2Vy KHRkKSAhPSAwKQ0KIAkJcmV0dXJuIChFQUNDRVMpOw0KIAltdHhfbG9ja19z cGluKCZzY2hlZF9sb2NrKTsNCi0JRk9SRUFDSF9LU0VHUlBfSU5fUFJPQyhw LCBrZykgew0KLQkJc2NoZWRfbmljZShrZywgbik7DQotCX0NCisJc2NoZWRf bmljZShwLCBuKTsNCiAJbXR4X3VubG9ja19zcGluKCZzY2hlZF9sb2NrKTsN CiAJcmV0dXJuICgwKTsNCiB9DQpJbmRleDoga2Vybi9zY2hlZF80YnNkLmMN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9uY3Zz L3NyYy9zeXMva2Vybi9zY2hlZF80YnNkLmMsdg0KcmV0cmlldmluZyByZXZp c2lvbiAxLjM3DQpkaWZmIC11IC1yMS4zNyBzY2hlZF80YnNkLmMNCi0tLSBr ZXJuL3NjaGVkXzRic2QuYwk1IEFwciAyMDA0IDIxOjAzOjM1IC0wMDAwCTEu MzcNCisrKyBrZXJuL3NjaGVkXzRic2QuYwkxMiBKdW4gMjAwNCAwNjo1Mzow NCAtMDAwMA0KQEAgLTQzOSw3ICs0MzksNyBAQA0KIA0KIAlpZiAoa2ctPmtn X3ByaV9jbGFzcyA9PSBQUklfVElNRVNIQVJFKSB7DQogCQluZXdwcmlvcml0 eSA9IFBVU0VSICsga2ctPmtnX2VzdGNwdSAvIElOVkVSU0VfRVNUQ1BVX1dF SUdIVCArDQotCQkgICAgTklDRV9XRUlHSFQgKiAoa2ctPmtnX25pY2UgLSBQ UklPX01JTik7DQorCQkgICAgTklDRV9XRUlHSFQgKiAoa2ctPmtnX3Byb2Mt PnBfbmljZSAtIFBSSU9fTUlOKTsNCiAJCW5ld3ByaW9yaXR5ID0gbWluKG1h eChuZXdwcmlvcml0eSwgUFJJX01JTl9USU1FU0hBUkUpLA0KIAkJICAgIFBS SV9NQVhfVElNRVNIQVJFKTsNCiAJCWtnLT5rZ191c2VyX3ByaSA9IG5ld3By aW9yaXR5Ow0KQEAgLTU4MywxMyArNTgzLDE2IEBADQogfQ0KIA0KIHZvaWQN Ci1zY2hlZF9uaWNlKHN0cnVjdCBrc2VncnAgKmtnLCBpbnQgbmljZSkNCitz Y2hlZF9uaWNlKHN0cnVjdCBwcm9jICpwLCBpbnQgbmljZSkNCiB7DQorCXN0 cnVjdCBrc2VncnAgKmtnOw0KIA0KLQlQUk9DX0xPQ0tfQVNTRVJUKGtnLT5r Z19wcm9jLCBNQV9PV05FRCk7DQorCVBST0NfTE9DS19BU1NFUlQocCwgTUFf T1dORUQpOw0KIAltdHhfYXNzZXJ0KCZzY2hlZF9sb2NrLCBNQV9PV05FRCk7 DQotCWtnLT5rZ19uaWNlID0gbmljZTsNCi0JcmVzZXRwcmlvcml0eShrZyk7 DQorCXAtPnBfbmljZSA9IG5pY2U7DQorCUZPUkVBQ0hfS1NFR1JQX0lOX1BS T0MocCwga2cpIHsNCisJCXJlc2V0cHJpb3JpdHkoa2cpOw0KKwl9DQogfQ0K IA0KIHZvaWQNCkluZGV4OiBrZXJuL3NjaGVkX3VsZS5jDQo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2tl cm4vc2NoZWRfdWxlLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjEwNg0K ZGlmZiAtdSAtcjEuMTA2IHNjaGVkX3VsZS5jDQotLS0ga2Vybi9zY2hlZF91 bGUuYwkyIEp1biAyMDA0IDA1OjQ2OjQ4IC0wMDAwCTEuMTA2DQorKysga2Vy bi9zY2hlZF91bGUuYwkxMiBKdW4gMjAwNCAwNjo1MzowNyAtMDAwMA0KQEAg LTM2Niw5ICszNjYsOSBAQA0KIAkJQ1RSNihLVFJfVUxFLA0KIAkJICAgICJB ZGQga3NlICVwIHRvICVwIChzbGljZTogJWQsIHByaTogJWQsIG5pY2U6ICVk KCVkKSkiLA0KIAkJICAgIGtlLCBrZS0+a2VfcnVucSwga2UtPmtlX3NsaWNl LCBrZS0+a2VfdGhyZWFkLT50ZF9wcmlvcml0eSwNCi0JCSAgICBrZS0+a2Vf a3NlZ3JwLT5rZ19uaWNlLCBrc2VxLT5rc3FfbmljZW1pbik7DQorCQkgICAg a2UtPmtlX3Byb2MtPnBfbmljZSwga3NlcS0+a3NxX25pY2VtaW4pOw0KIAlp ZiAoa2UtPmtlX2tzZWdycC0+a2dfcHJpX2NsYXNzID09IFBSSV9USU1FU0hB UkUpDQotCQlrc2VxX25pY2VfYWRkKGtzZXEsIGtlLT5rZV9rc2VncnAtPmtn X25pY2UpOw0KKwkJa3NlcV9uaWNlX2FkZChrc2VxLCBrZS0+a2VfcHJvYy0+ cF9uaWNlKTsNCiB9DQogDQogc3RhdGljIHZvaWQNCkBAIC0zODgsNyArMzg4 LDcgQEANCiAJa3NlcS0+a3NxX2xvYWQtLTsNCiAJa2UtPmtlX3J1bnEgPSBO VUxMOw0KIAlpZiAoa2UtPmtlX2tzZWdycC0+a2dfcHJpX2NsYXNzID09IFBS SV9USU1FU0hBUkUpDQotCQlrc2VxX25pY2VfcmVtKGtzZXEsIGtlLT5rZV9r c2VncnAtPmtnX25pY2UpOw0KKwkJa3NlcV9uaWNlX3JlbShrc2VxLCBrZS0+ a2VfcHJvYy0+cF9uaWNlKTsNCiB9DQogDQogc3RhdGljIHZvaWQNCkBAIC05 MjksNyArOTI5LDcgQEANCiANCiAJcHJpID0gU0NIRURfUFJJX0lOVEVSQUNU KHNjaGVkX2ludGVyYWN0X3Njb3JlKGtnKSk7DQogCXByaSArPSBTQ0hFRF9Q UklfQkFTRTsNCi0JcHJpICs9IGtnLT5rZ19uaWNlOw0KKwlwcmkgKz0ga2ct PmtnX3Byb2MtPnBfbmljZTsNCiANCiAJaWYgKHByaSA+IFBSSV9NQVhfVElN RVNIQVJFKQ0KIAkJcHJpID0gUFJJX01BWF9USU1FU0hBUkU7DQpAQCAtOTgw LDEzICs5ODAsMTMgQEANCiAJaWYgKCFTQ0hFRF9JTlRFUkFDVElWRShrZykp IHsNCiAJCWludCBuaWNlOw0KIA0KLQkJbmljZSA9IGtnLT5rZ19uaWNlICsg KDAgLSBrc2VxLT5rc3FfbmljZW1pbik7DQorCQluaWNlID0ga2ctPmtnX3By b2MtPnBfbmljZSArICgwIC0ga3NlcS0+a3NxX25pY2VtaW4pOw0KIAkJaWYg KGtzZXEtPmtzcV9sb2FkX3RpbWVzaGFyZSA9PSAwIHx8DQotCQkgICAga2ct PmtnX25pY2UgPCBrc2VxLT5rc3FfbmljZW1pbikNCisJCSAgICBrZy0+a2df cHJvYy0+cF9uaWNlIDwga3NlcS0+a3NxX25pY2VtaW4pDQogCQkJa2UtPmtl X3NsaWNlID0gU0NIRURfU0xJQ0VfTUFYOw0KIAkJZWxzZSBpZiAobmljZSA8 PSBTQ0hFRF9TTElDRV9OVEhSRVNIKQ0KIAkJCWtlLT5rZV9zbGljZSA9IFND SEVEX1NMSUNFX05JQ0UobmljZSk7DQotCQllbHNlIGlmIChrZy0+a2dfbmlj ZSA9PSAwKQ0KKwkJZWxzZSBpZiAoa2ctPmtnX3Byb2MtPnBfbmljZSA9PSAw KQ0KIAkJCWtlLT5rZV9zbGljZSA9IFNDSEVEX1NMSUNFX01JTjsNCiAJCWVs c2UNCiAJCQlrZS0+a2Vfc2xpY2UgPSAwOw0KQEAgLTk5NSw3ICs5OTUsNyBA QA0KIA0KIAlDVFI2KEtUUl9VTEUsDQogCSAgICAiU2xpY2VkICVwKCVkKSAo bmljZTogJWQsIG5pY2VtaW46ICVkLCBsb2FkOiAlZCwgaW50ZXJhY3RpdmU6 ICVkKSIsDQotCSAgICBrZSwga2UtPmtlX3NsaWNlLCBrZy0+a2dfbmljZSwg a3NlcS0+a3NxX25pY2VtaW4sDQorCSAgICBrZSwga2UtPmtlX3NsaWNlLCBr Zy0+a2dfcHJvYy0+cF9uaWNlLCBrc2VxLT5rc3FfbmljZW1pbiwNCiAJICAg IGtzZXEtPmtzcV9sb2FkX3RpbWVzaGFyZSwgU0NIRURfSU5URVJBQ1RJVkUo a2cpKTsNCiANCiAJcmV0dXJuOw0KQEAgLTExNjcsMjkgKzExNjcsMzUgQEAN CiB9DQogDQogdm9pZA0KLXNjaGVkX25pY2Uoc3RydWN0IGtzZWdycCAqa2cs IGludCBuaWNlKQ0KK3NjaGVkX25pY2Uoc3RydWN0IHByb2MgKnAsIGludCBu aWNlKQ0KIHsNCisJc3RydWN0IGtzZWdycCAqa2c7DQogCXN0cnVjdCBrc2Ug KmtlOw0KIAlzdHJ1Y3QgdGhyZWFkICp0ZDsNCiAJc3RydWN0IGtzZXEgKmtz ZXE7DQogDQotCVBST0NfTE9DS19BU1NFUlQoa2ctPmtnX3Byb2MsIE1BX09X TkVEKTsNCisJUFJPQ19MT0NLX0FTU0VSVChwLCBNQV9PV05FRCk7DQogCW10 eF9hc3NlcnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsNCiAJLyoNCiAJICog V2UgbmVlZCB0byBhZGp1c3QgdGhlIG5pY2UgY291bnRzIGZvciBydW5uaW5n IEtTRXMuDQogCSAqLw0KLQlpZiAoa2ctPmtnX3ByaV9jbGFzcyA9PSBQUklf VElNRVNIQVJFKQ0KLQkJRk9SRUFDSF9LU0VfSU5fR1JPVVAoa2csIGtlKSB7 DQotCQkJaWYgKGtlLT5rZV9ydW5xID09IE5VTEwpDQotCQkJCWNvbnRpbnVl Ow0KLQkJCWtzZXEgPSBLU0VRX0NQVShrZS0+a2VfY3B1KTsNCi0JCQlrc2Vx X25pY2VfcmVtKGtzZXEsIGtnLT5rZ19uaWNlKTsNCi0JCQlrc2VxX25pY2Vf YWRkKGtzZXEsIG5pY2UpOw0KLQkJfQ0KLQlrZy0+a2dfbmljZSA9IG5pY2U7 DQotCXNjaGVkX3ByaW9yaXR5KGtnKTsNCi0JRk9SRUFDSF9USFJFQURfSU5f R1JPVVAoa2csIHRkKQ0KLQkJdGQtPnRkX2ZsYWdzIHw9IFRERl9ORUVEUkVT Q0hFRDsNCisJRk9SRUFDSF9LU0VHUlBfSU5fUFJPQyhwLCBrZykgew0KKwkJ aWYgKGtnLT5rZ19wcmlfY2xhc3MgPT0gUFJJX1RJTUVTSEFSRSkgew0KKwkJ CUZPUkVBQ0hfS1NFX0lOX0dST1VQKGtnLCBrZSkgew0KKwkJCQlpZiAoa2Ut PmtlX3J1bnEgPT0gTlVMTCkNCisJCQkJCWNvbnRpbnVlOw0KKwkJCQlrc2Vx ID0gS1NFUV9DUFUoa2UtPmtlX2NwdSk7DQorCQkJCWtzZXFfbmljZV9yZW0o a3NlcSwgcC0+cF9uaWNlKTsNCisJCQkJa3NlcV9uaWNlX2FkZChrc2VxLCBu aWNlKTsNCisJCQl9DQorCQl9DQorCX0NCisJcC0+cF9uaWNlID0gbmljZTsN CisJRk9SRUFDSF9LU0VHUlBfSU5fUFJPQyhwLCBrZykgew0KKwkJc2NoZWRf cHJpb3JpdHkoa2cpOw0KKwkJRk9SRUFDSF9USFJFQURfSU5fR1JPVVAoa2cs IHRkKQ0KKwkJCXRkLT50ZF9mbGFncyB8PSBUREZfTkVFRFJFU0NIRUQ7DQor CX0NCiB9DQogDQogdm9pZA0KQEAgLTEyNDYsNiArMTI1Miw3IEBADQogDQog CW10eF9hc3NlcnQoJnNjaGVkX2xvY2ssIE1BX09XTkVEKTsNCiANCisJcDEt PnBfbmljZSA9IHAtPnBfbmljZTsNCiAJc2NoZWRfZm9ya19rc2VncnAoRklS U1RfS1NFR1JQX0lOX1BST0MocCksIEZJUlNUX0tTRUdSUF9JTl9QUk9DKHAx KSk7DQogCXNjaGVkX2Zvcmtfa3NlKEZJUlNUX0tTRV9JTl9QUk9DKHApLCBG SVJTVF9LU0VfSU5fUFJPQyhwMSkpOw0KIAlzY2hlZF9mb3JrX3RocmVhZChG SVJTVF9USFJFQURfSU5fUFJPQyhwKSwgRklSU1RfVEhSRUFEX0lOX1BST0Mo cDEpKTsNCkBAIC0xMjczLDcgKzEyODAsNiBAQA0KIAljaGlsZC0+a2dfc2xw dGltZSA9IGtnLT5rZ19zbHB0aW1lOw0KIAljaGlsZC0+a2dfcnVudGltZSA9 IGtnLT5rZ19ydW50aW1lOw0KIAljaGlsZC0+a2dfdXNlcl9wcmkgPSBrZy0+ a2dfdXNlcl9wcmk7DQotCWNoaWxkLT5rZ19uaWNlID0ga2ctPmtnX25pY2U7 DQogCXNjaGVkX2ludGVyYWN0X2ZvcmsoY2hpbGQpOw0KIAlrZy0+a2dfcnVu dGltZSArPSB0aWNraW5jciA8PCAxMDsNCiAJc2NoZWRfaW50ZXJhY3RfdXBk YXRlKGtnKTsNCkBAIC0xMzI3LDExICsxMzMzLDExIEBADQogI2VuZGlmDQog CQlpZiAob2NsYXNzID09IFBSSV9USU1FU0hBUkUpIHsNCiAJCQlrc2VxLT5r c3FfbG9hZF90aW1lc2hhcmUtLTsNCi0JCQlrc2VxX25pY2VfcmVtKGtzZXEs IGtnLT5rZ19uaWNlKTsNCisJCQlrc2VxX25pY2VfcmVtKGtzZXEsIGtnLT5r Z19wcm9jLT5wX25pY2UpOw0KIAkJfQ0KIAkJaWYgKG5jbGFzcyA9PSBQUklf VElNRVNIQVJFKSB7DQogCQkJa3NlcS0+a3NxX2xvYWRfdGltZXNoYXJlKys7 DQotCQkJa3NlcV9uaWNlX2FkZChrc2VxLCBrZy0+a2dfbmljZSk7DQorCQkJ a3NlcV9uaWNlX2FkZChrc2VxLCBrZy0+a2dfcHJvYy0+cF9uaWNlKTsNCiAJ CX0NCiAJfQ0KIA0KSW5kZXg6IHN5cy9wcm9jLmgNCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvc3lzL3By b2MuaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzc4DQpkaWZmIC11IC1y MS4zNzggcHJvYy5oDQotLS0gc3lzL3Byb2MuaAkzIEp1biAyMDA0IDAxOjQ3 OjM2IC0wMDAwCTEuMzc4DQorKysgc3lzL3Byb2MuaAkxMiBKdW4gMjAwNCAw Njo1MzoyMCAtMDAwMA0KQEAgLTUwOSw3ICs1MDksNiBAQA0KICNkZWZpbmUJ a2dfc3RhcnRjb3B5CWtnX2VuZHplcm8NCiAJdV9jaGFyCQlrZ19wcmlfY2xh c3M7CS8qIChqKSBTY2hlZHVsaW5nIGNsYXNzLiAqLw0KIAl1X2NoYXIJCWtn X3VzZXJfcHJpOwkvKiAoaikgVXNlciBwcmkgZnJvbSBlc3RjcHUgYW5kIG5p Y2UuICovDQotCXNpZ25lZCBjaGFyCWtnX25pY2U7CS8qIChjICsgaikgUHJv Y2VzcyAibmljZSIgdmFsdWUuICovDQogI2RlZmluZQlrZ19lbmRjb3B5IGtn X251bXRocmVhZHMNCiAJaW50CQlrZ19udW10aHJlYWRzOwkvKiAoaikgTnVt IHRocmVhZHMgaW4gdG90YWwuICovDQogCWludAkJa2dfa3NlczsJLyogKGop IE51bSBLU0VzIGluIGdyb3VwLiAqLw0KQEAgLTU5Nyw2ICs1OTYsNyBAQA0K IAlzdHJ1Y3Qgc3lzZW50dmVjICpwX3N5c2VudDsJLyogKGIpIFN5c2NhbGwg ZGlzcGF0Y2ggaW5mby4gKi8NCiAJc3RydWN0IHBhcmdzCSpwX2FyZ3M7CS8q IChjKSBQcm9jZXNzIGFyZ3VtZW50cy4gKi8NCiAJcmxpbV90CQlwX2NwdWxp bWl0OwkvKiAoaikgQ3VycmVudCBDUFUgbGltaXQgaW4gc2Vjb25kcy4gKi8N CisJc2lnbmVkIGNoYXIJcF9uaWNlOwkJLyogKGMgKyBqKSBQcm9jZXNzICJu aWNlIiB2YWx1ZS4gKi8NCiAvKiBFbmQgYXJlYSB0aGF0IGlzIGNvcGllZCBv biBjcmVhdGlvbi4gKi8NCiAjZGVmaW5lCXBfZW5kY29weQlwX3hzdGF0DQog DQpJbmRleDogc3lzL3NjaGVkLmgNCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMvc3lzL3NjaGVkLmgsdg0K cmV0cmlldmluZyByZXZpc2lvbiAxLjExDQpkaWZmIC11IC1yMS4xMSBzY2hl ZC5oDQotLS0gc3lzL3NjaGVkLmgJMjcgRmViIDIwMDQgMTg6NTI6NDQgLTAw MDAJMS4xMQ0KKysrIHN5cy9zY2hlZC5oCTEyIEp1biAyMDA0IDA2OjUzOjIw IC0wMDAwDQpAQCAtNTUsNyArNTUsNyBAQA0KIHZvaWQJc2NoZWRfY2xhc3Mo c3RydWN0IGtzZWdycCAqa2csIGludCBjbGFzcyk7DQogdm9pZAlzY2hlZF9l eGl0X2tzZWdycChzdHJ1Y3Qga3NlZ3JwICprZywgc3RydWN0IGtzZWdycCAq Y2hpbGQpOw0KIHZvaWQJc2NoZWRfZm9ya19rc2VncnAoc3RydWN0IGtzZWdy cCAqa2csIHN0cnVjdCBrc2VncnAgKmNoaWxkKTsNCi12b2lkCXNjaGVkX25p Y2Uoc3RydWN0IGtzZWdycCAqa2csIGludCBuaWNlKTsNCit2b2lkCXNjaGVk X25pY2Uoc3RydWN0IHByb2MgKnAsIGludCBuaWNlKTsNCiANCiAvKg0KICAq IFRocmVhZHMgYXJlIHN3aXRjaGVkIGluIGFuZCBvdXQsIGJsb2NrIG9uIHJl c291cmNlcywgaGF2ZSB0ZW1wb3JhcnkNCkluZGV4OiB1ZnMvZmZzL2Zmc19z bmFwc2hvdC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTog L2hvbWUvbmN2cy9zcmMvc3lzL3Vmcy9mZnMvZmZzX3NuYXBzaG90LmMsdg0K cmV0cmlldmluZyByZXZpc2lvbiAxLjc5DQpkaWZmIC11IC1yMS43OSBmZnNf c25hcHNob3QuYw0KLS0tIHVmcy9mZnMvZmZzX3NuYXBzaG90LmMJMTMgRmVi IDIwMDQgMDI6MDI6MDYgLTAwMDAJMS43OQ0KKysrIHVmcy9mZnMvZmZzX3Nu YXBzaG90LmMJMTIgSnVuIDIwMDQgMDY6NTM6MjQgLTAwMDANCkBAIC0zMDEs MTEgKzMwMSwxMSBAQA0KIAkgKg0KIAkgKiBSZWNpbmQgbmljZSBzY2hlZHVs aW5nIHdoaWxlIHJ1bm5pbmcgd2l0aCB0aGUgZmlsZXN5c3RlbSBzdXNwZW5k ZWQuDQogCSAqLw0KLQlpZiAodGQtPnRkX2tzZWdycC0+a2dfbmljZSA+IDAp IHsNCisJaWYgKHRkLT50ZF9wcm9jLT5wX25pY2UgPiAwKSB7DQogCQlQUk9D X0xPQ0sodGQtPnRkX3Byb2MpOw0KIAkJbXR4X2xvY2tfc3Bpbigmc2NoZWRf bG9jayk7DQotCQlzYXZlZF9uaWNlID0gdGQtPnRkX2tzZWdycC0+a2dfbmlj ZTsNCi0JCXNjaGVkX25pY2UodGQtPnRkX2tzZWdycCwgMCk7DQorCQlzYXZl ZF9uaWNlID0gdGQtPnRkX3Byb2MtPnBfbmljZTsNCisJCXNjaGVkX25pY2Uo dGQtPnRkX3Byb2MsIDApOw0KIAkJbXR4X3VubG9ja19zcGluKCZzY2hlZF9s b2NrKTsNCiAJCVBST0NfVU5MT0NLKHRkLT50ZF9wcm9jKTsNCiAJfQ0KQEAg LTY2NSw3ICs2NjUsNyBAQA0KIAlpZiAoc2F2ZWRfbmljZSA+IDApIHsNCiAJ CVBST0NfTE9DSyh0ZC0+dGRfcHJvYyk7DQogCQltdHhfbG9ja19zcGluKCZz Y2hlZF9sb2NrKTsNCi0JCXNjaGVkX25pY2UodGQtPnRkX2tzZWdycCwgc2F2 ZWRfbmljZSk7DQorCQlzY2hlZF9uaWNlKHRkLT50ZF9wcm9jLCBzYXZlZF9u aWNlKTsNCiAJCW10eF91bmxvY2tfc3Bpbigmc2NoZWRfbG9jayk7DQogCQlQ Uk9DX1VOTE9DSyh0ZC0+dGRfcHJvYyk7DQogCX0NCkluZGV4OiB2bS92bV9n bHVlLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9t ZS9uY3ZzL3NyYy9zeXMvdm0vdm1fZ2x1ZS5jLHYNCnJldHJpZXZpbmcgcmV2 aXNpb24gMS4xOTcNCmRpZmYgLXUgLXIxLjE5NyB2bV9nbHVlLmMNCi0tLSB2 bS92bV9nbHVlLmMJNyBNYXkgMjAwNCAxMTo0MzoyNCAtMDAwMAkxLjE5Nw0K KysrIHZtL3ZtX2dsdWUuYwkxMiBKdW4gMjAwNCAwNjo1MzoyNyAtMDAwMA0K QEAgLTgyNCw3ICs4MjQsNyBAQA0KIAkJCQlrZyA9IHRkLT50ZF9rc2VncnA7 DQogCQkJCXByaSA9IHAtPnBfc3d0aW1lICsga2ctPmtnX3NscHRpbWU7DQog CQkJCWlmICgocC0+cF9zZmxhZyAmIFBTX1NXQVBJTlJFUSkgPT0gMCkgew0K LQkJCQkJcHJpIC09IGtnLT5rZ19uaWNlICogODsNCisJCQkJCXByaSAtPSBw LT5wX25pY2UgKiA4Ow0KIAkJCQl9DQogDQogCQkJCS8qDQpJbmRleDogdm0v dm1fcGFnZW91dC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls ZTogL2hvbWUvbmN2cy9zcmMvc3lzL3ZtL3ZtX3BhZ2VvdXQuYyx2DQpyZXRy aWV2aW5nIHJldmlzaW9uIDEuMjU1DQpkaWZmIC11IC1yMS4yNTUgdm1fcGFn ZW91dC5jDQotLS0gdm0vdm1fcGFnZW91dC5jCTEyIE1heSAyMDA0IDA0OjEw OjM1IC0wMDAwCTEuMjU1DQorKysgdm0vdm1fcGFnZW91dC5jCTEyIEp1biAy MDA0IDA2OjUzOjMwIC0wMDAwDQpAQCAtMTIyNSwxMiArMTIyNSw5IEBADQog CQl9DQogCQlzeF9zdW5sb2NrKCZhbGxwcm9jX2xvY2spOw0KIAkJaWYgKGJp Z3Byb2MgIT0gTlVMTCkgew0KLQkJCXN0cnVjdCBrc2VncnAgKmtnOw0KIAkJ CWtpbGxwcm9jKGJpZ3Byb2MsICJvdXQgb2Ygc3dhcCBzcGFjZSIpOw0KIAkJ CW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOw0KLQkJCUZPUkVBQ0hfS1NF R1JQX0lOX1BST0MoYmlncHJvYywga2cpIHsNCi0JCQkJc2NoZWRfbmljZShr ZywgUFJJT19NSU4pOyAvKiBYWFhLU0UgPz8/ICovDQotCQkJfQ0KKwkJCXNj aGVkX25pY2UoYmlncHJvYywgUFJJT19NSU4pOw0KIAkJCW10eF91bmxvY2tf c3Bpbigmc2NoZWRfbG9jayk7DQogCQkJUFJPQ19VTkxPQ0soYmlncHJvYyk7 DQogCQkJd2FrZXVwKCZjbnQudl9mcmVlX2NvdW50KTsNCg== --0-826546490-1087165125=:95601--