From owner-freebsd-jail@FreeBSD.ORG Wed Sep 26 17:09:35 2007 Return-Path: Delivered-To: freebsd-jail@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5411D16A417 for ; Wed, 26 Sep 2007 17:09:35 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from elsa.codelab.cz (elsa.codelab.cz [82.208.36.70]) by mx1.freebsd.org (Postfix) with ESMTP id 2A99313C474 for ; Wed, 26 Sep 2007 17:09:34 +0000 (UTC) (envelope-from 000.fbsd@quip.cz) Received: from localhost (localhost.codelab.cz [127.0.0.1]) by elsa.codelab.cz (Postfix) with ESMTP id C27E519E02A; Wed, 26 Sep 2007 18:53:48 +0200 (CEST) Received: from [192.168.1.2] (r3a200.net.upc.cz [213.220.192.200]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by elsa.codelab.cz (Postfix) with ESMTP id C9B4519E027; Wed, 26 Sep 2007 18:53:44 +0200 (CEST) Message-ID: <46FA8EEA.4090302@quip.cz> Date: Wed, 26 Sep 2007 18:55:06 +0200 From: Miroslav Lachman <000.fbsd@quip.cz> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 X-Accept-Language: cz, cs, en, en-us MIME-Version: 1.0 To: Chris Thunes References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: cdjones@novusordo.net, freebsd-jail@freebsd.org Subject: Re: jtune not showing resource usage - fixed X-BeenThere: freebsd-jail@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion about FreeBSD jail\(8\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Sep 2007 17:09:35 -0000 Chris Thunes wrote: > On 8/13/07, *Miroslav Lachman* <000.fbsd@quip.cz > > wrote: > > Chris Thunes wrote: > > Hey all, > > I've been working with the resource limiting patches on a 6.2 > installation > > and haven't been able to get jtune to show memory usage for jails > at all. > > > > [root@virt1] ~ # jtune -j 15 -i > > JID Hostname Memory Used / Limit CPU Shares > > 15 jail0.rootbsd.net 0 M / 256 M 0 > > > > I have the limits enabled in sysctl and really have idea as to > why this > > wouldn't be displaying correctly. If there is anyone who can > point me in the > > right direction the help would be greatly appreciated. > > Hi, > I had same question more than month ago, but no answer (2007-06-29). So > I think no competent person is subscribed to this list. > [I CCed cdjones now = maybe he knows :)] > > Miroslav Lachman > > > I found the problem and was able to fix it and created a small patch for > anyone who needs this fixed. A function called prison_memory in > sys/kern/kern_jail.c is called to calculate the memory usage for a given > jail but this value is never stored back to the corresponding prison > object which is used by jtune to check the memory usage. This patch just > drops a few lines in at the end of prison_memory to store this value to > the structure. If anyone knows any adverse side effects this would cause > please let me know. > > - Chris Hi, I tried your patch, but without success. My version of kern_jail.c (after patching by cdjones_jail_soc2006.patch) does not have those lines which your patch wants to remove. (jtune still showing 0M usage [freebsd 6.2]) Any ideas? Miroslav Lachman From owner-freebsd-jail@FreeBSD.ORG Wed Sep 26 19:00:43 2007 Return-Path: Delivered-To: freebsd-jail@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9805E16A469 for ; Wed, 26 Sep 2007 19:00:43 +0000 (UTC) (envelope-from cthunes@tqhosting.com) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.174]) by mx1.freebsd.org (Postfix) with ESMTP id C659813C455 for ; Wed, 26 Sep 2007 19:00:42 +0000 (UTC) (envelope-from cthunes@tqhosting.com) Received: by ug-out-1314.google.com with SMTP id a2so1387454ugf for ; Wed, 26 Sep 2007 12:00:41 -0700 (PDT) Received: by 10.66.233.14 with SMTP id f14mr2551680ugh.1190831698165; Wed, 26 Sep 2007 11:34:58 -0700 (PDT) Received: by 10.67.26.13 with HTTP; Wed, 26 Sep 2007 11:34:58 -0700 (PDT) Message-ID: Date: Wed, 26 Sep 2007 14:34:58 -0400 From: "Chris Thunes" To: "Miroslav Lachman" <000.fbsd@quip.cz> In-Reply-To: <46FA8EEA.4090302@quip.cz> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_12727_24649135.1190831698158" References: <46FA8EEA.4090302@quip.cz> X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: cdjones@novusordo.net, freebsd-jail@freebsd.org Subject: Re: jtune not showing resource usage - fixed X-BeenThere: freebsd-jail@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion about FreeBSD jail\(8\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Sep 2007 19:00:43 -0000 ------=_Part_12727_24649135.1190831698158 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline I do indeed have an idea. I think I should learn how to properly make a patch :P All those - should be + instead. I've actually made a number of other changes in the past month or so to fix a number of problems with page faults from the original patch. These page faults were caused by a null pointer in thread stuctures during forking. It seems to be fairly easy to demonstrate this issue by executing any program that does a decent amount of forking from inside a jail. I'm not exactly sure why these values are null, but it seems to be well outside the context of these patches. I added some simple checks for this null value and that seems to have cleared things up. I've attached an updated (and hopefully functional) patch that is against the original version of src/sys/kern/kern_jail.c so you will need to revert this one file before applying it. I've done my work on 6.2 so I can't say if this patch will work on other versions. This patch also includes the changes to get memory limits to be displayed. Let me know how it goes and hopefully the patch is correct this time :) - Chris Thunes http://www.rootbsd.net On 9/26/07, Miroslav Lachman <000.fbsd@quip.cz> wrote: > > Chris Thunes wrote: > > On 8/13/07, *Miroslav Lachman* <000.fbsd@quip.cz > > > wrote: > > > > Chris Thunes wrote: > > > Hey all, > > > I've been working with the resource limiting patches on a 6.2 > > installation > > > and haven't been able to get jtune to show memory usage for jails > > at all. > > > > > > [root@virt1] ~ # jtune -j 15 -i > > > JID Hostname Memory Used / Limit CPU Shares > > > 15 jail0.rootbsd.net 0 M / 256 M 0 > > > > > > I have the limits enabled in sysctl and really have idea as to > > why this > > > wouldn't be displaying correctly. If there is anyone who can > > point me in the > > > right direction the help would be greatly appreciated. > > > > Hi, > > I had same question more than month ago, but no answer (2007-06-29). > So > > I think no competent person is subscribed to this list. > > [I CCed cdjones now = maybe he knows :)] > > > > Miroslav Lachman > > > > > > I found the problem and was able to fix it and created a small patch for > > anyone who needs this fixed. A function called prison_memory in > > sys/kern/kern_jail.c is called to calculate the memory usage for a given > > jail but this value is never stored back to the corresponding prison > > object which is used by jtune to check the memory usage. This patch just > > drops a few lines in at the end of prison_memory to store this value to > > the structure. If anyone knows any adverse side effects this would cause > > please let me know. > > > > - Chris > > Hi, > > I tried your patch, but without success. My version of kern_jail.c > (after patching by cdjones_jail_soc2006.patch) does not have those lines > which your patch wants to remove. (jtune still showing 0M usage [freebsd > 6.2]) > > Any ideas? > > Miroslav Lachman > ------=_Part_12727_24649135.1190831698158 Content-Type: application/octet-stream; name="jail_fix_26-9-07.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="jail_fix_26-9-07.patch" X-Attachment-Id: f_f726foqz LS0tIHNyYy9zeXMva2Vybi9rZXJuX2phaWwuYwlTYXQgTm92IDEyIDIyOjEyOjMyIDIwMDUKKysr IHNyYy9zeXMva2Vybi9rZXJuX2phaWwuYwlUaHUgU2VwIDIwIDE3OjQ3OjIxIDIwMDcKQEAgLTUs NiArNSwzNSBAQAogICogY2FuIGRvIHdoYXRldmVyIHlvdSB3YW50IHdpdGggdGhpcyBzdHVmZi4g SWYgd2UgbWVldCBzb21lIGRheSwgYW5kIHlvdSB0aGluawogICogdGhpcyBzdHVmZiBpcyB3b3J0 aCBpdCwgeW91IGNhbiBidXkgbWUgYSBiZWVyIGluIHJldHVybi4gICBQb3VsLUhlbm5pbmcgS2Ft cAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqICBQb3J0aW9ucyBjb3B5cmlnaHQgKGMp IDIwMDYgQ2hyaXMgSm9uZXMKKyAqICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMg c29mdHdhcmUgd2FzIGRldmVsb3BlZCBmb3IgdGhlIEZyZWVCU0QgUHJvamVjdCBieSBDaHJpcyBK b25lcworICogdGhhbmtzIHRvIHRoZSBzdXBwb3J0IG9mIEdvb2dsZSdzIFN1bW1lciBvZiBDb2Rl IHByb2dyYW0gYW5kCisgKiBtZW50b3JpbmcgYnkgS2lwIE1hY3kuCisgKgorICogUmVkaXN0cmli dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0 CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291 cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92 ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyBgYEFT IElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUg RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUg TElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNF UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS VVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9V VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T U0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLiAKKyAqCiAgKi8KIAogI2luY2x1ZGUgPHN5cy9j ZGVmcy5oPgpAQCAtMTUsMTIgKzQ0LDE5IEBACiAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CiAjaW5j bHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5 cy9rdGhyZWFkLmg+CiAjaW5jbHVkZSA8c3lzL3N5c3RtLmg+CiAjaW5jbHVkZSA8c3lzL2Vycm5v Lmg+CiAjaW5jbHVkZSA8c3lzL3N5c3Byb3RvLmg+CiAjaW5jbHVkZSA8c3lzL21hYy5oPgogI2lu Y2x1ZGUgPHN5cy9tYWxsb2MuaD4KICNpbmNsdWRlIDxzeXMvcHJvYy5oPgorI2luY2x1ZGUgPHZt L3ZtLmg+CisjaW5jbHVkZSA8dm0vdm1fZXh0ZXJuLmg+CisjaW5jbHVkZSA8dm0vdm1fcGFnZS5o PgorI2luY2x1ZGUgPHZtL3ZtX29iamVjdC5oPgorI2luY2x1ZGUgPHZtL3ZtX21hcC5oPgorI2lu Y2x1ZGUgPHZtL3ZtX3BhZ2VvdXQuaD4KICNpbmNsdWRlIDxzeXMvdGFza3F1ZXVlLmg+CiAjaW5j bHVkZSA8c3lzL2phaWwuaD4KICNpbmNsdWRlIDxzeXMvbG9jay5oPgpAQCAtNzEsNiArMTA3LDE3 IEBACiAgICAgJmphaWxfY2hmbGFnc19hbGxvd2VkLCAwLAogICAgICJQcm9jZXNzZXMgaW4gamFp bCBjYW4gYWx0ZXIgc3lzdGVtIGZpbGUgZmxhZ3MiKTsKIAoraW50ICAgICBqYWlsX2xpbWl0X21l bW9yeSA9IDA7CitTWVNDVExfSU5UKF9zZWN1cml0eV9qYWlsLCBPSURfQVVUTywgbGltaXRfamFp bF9tZW1vcnksIENUTEZMQUdfUlcsCisJICAgJmphaWxfbGltaXRfbWVtb3J5LCAwLAorCSAgICJM aW1pdCBqYWlscycgbWVtb3J5IHVzYWdlIik7CisKK2ludCAgICAgamFpbF9tZW1vcnlfcGFnZXJf aW50ZXJ2YWwgPSA1OworU1lTQ1RMX0lOVChfc2VjdXJpdHlfamFpbCwgT0lEX0FVVE8sIGphaWxf cGFnZXJfaW50ZXJ2YWwsCisJICAgQ1RMVFlQRV9JTlQgfCBDVExGTEFHX1JXLAorCSAgICZqYWls X21lbW9yeV9wYWdlcl9pbnRlcnZhbCwgMCwKKwkgICAiSW50ZXJ2YWwgYmV0d2VlbiBqYWlsIG1l bW9yeSBsaW1pdCBjaGVja3MiKTsKKwogLyogYWxscHJpc29uLCBsYXN0cHJpZCwgYW5kIHByaXNv bmNvdW50IGFyZSBwcm90ZWN0ZWQgYnkgYWxscHJpc29uX210eC4gKi8KIHN0cnVjdAlwcmlzb25s aXN0IGFsbHByaXNvbjsKIHN0cnVjdAltdHggYWxscHJpc29uX210eDsKQEAgLTkyLDYgKzEzOSwx MDUgQEAKIAogU1lTSU5JVChwcmlzb24sIFNJX1NVQl9JTlRSSU5TSUMsIFNJX09SREVSX0FOWSwg aW5pdF9wcmlzb24sIE5VTEwpOwogCitzdGF0aWMgdm9pZAoranBhZ2VyX3RkKHZvaWQgKmFyZykK K3sKKwlzdHJ1Y3QgcHJvYyAqcDsKKwlzdHJ1Y3QgcHJpc29uICpwciA9IGFyZzsKKwlzdHJ1Y3Qg dGhyZWFkICp0ZDsKKwlsb25nIGxpbWl0LCBjdXJzaXplLCBuZXdzaXplLCB1c2FnZTsKKwlpbnQg YnJlYWtvdXQ7CisJaW50IGZsYWdzID0gSl9QQUdFUl9URF9BQ1RJVkU7CisJcHItPnByX3BhZ2Vy X2ZsYWdzX3B0ciA9ICZmbGFnczsKKwkKKwlmb3IgKDs7KSB7CisJCWlmIChmbGFncyAmIEpfUEFH RVJfVERfRElFKQorCQkJYnJlYWs7CisJICAgICAgIAorCQlpZiAoamFpbF9saW1pdF9tZW1vcnkg JiYgcHItPnByX21lbV9saW1pdCkgeworCQkJLyogCisJCQkgKiBUT0RPOiBjb25zaWRlciB3aGV0 aGVyIGl0IG1pZ2h0IGJlIGJldHRlciB0byBzdGFydAorCQkJICogcHVzaGluZyBiYWNrIHdoZW4g d2UgYXBwcm9hY2ggdGhlIGxpbWl0LCByYXRoZXIgdGhhbgorCQkJICogd2hlbiB3ZSBoaXQgaXQu CisJCQkgKiAKKwkJCSAqLworCQkJbGltaXQgPSBwcmlzb25fbWVtb3J5X2xpbWl0KHByKTsKKwkJ CQorCQkJc3hfc2xvY2soJmFsbHByb2NfbG9jayk7CisJCQl1c2FnZSA9IHByaXNvbl9tZW1vcnko cHIpOworCisJCQltdHhfbG9jaygmcHItPnByX210eCk7CisJCQlwci0+cHJfbWVtX3VzYWdlID0g dXNhZ2U7CisJCQltdHhfdW5sb2NrKCZwci0+cHJfbXR4KTsKKworCQkJLyoKKwkJCSAqIFRoZSBs b2dpYyBmcm9tIHZtX2RhZW1vbigpIHJlYWxseSBuZWVkcyB0byBnbyBoZXJlLgorCQkJICogUHJv YmxlbTogd2Ugd2FudCB0byBwdXNoIHRoaW5ncyBiZWxvdyB0aGVpciBybGltaXRzLAorCQkJICog YW5kIHZtX2RhZW1vbiBkb2Vzbid0IGRvIHRoYXQuICBJdCdkIGJlIGJldHRlciB0byAKKwkJCSAq IHJlZmFjdG9yIHZtX2RhZW1vbiB0byBmaXQsIGJ1dCB0aGlzJ2xsIGRvIGZvciBub3cuCisJCQkg KgorCQkJICovCisJCQkKKwkJCWlmICgodXNhZ2UgLSBsaW1pdCkgPiAwKSB7CisKKwkJCQlMSVNU X0ZPUkVBQ0gocCwgJmFsbHByb2MsIHBfbGlzdCkgeworCQkJCQkKKwkJCQkgIGlmICggcC0+cF91 Y3JlZCA9PSBOVUxMIHx8IHByICE9IHAtPnBfdWNyZWQtPmNyX3ByaXNvbikKKwkJCQkJCWNvbnRp bnVlOworCQkJCQkKKwkJCQkJUFJPQ19MT0NLKHApOworCQkJCQlpZiAocC0+cF9mbGFnICYgKFBf U1lTVEVNIHwgUF9XRVhJVCkpIHsKKwkJCQkJCVBST0NfVU5MT0NLKHApOworCQkJCQkJY29udGlu dWU7CisJCQkJCX0KKwkJCQkJCisJCQkJCW10eF9sb2NrX3NwaW4oJnNjaGVkX2xvY2spOworCQkJ CQlicmVha291dCA9IDA7CisJCQkJCUZPUkVBQ0hfVEhSRUFEX0lOX1BST0MocCwgdGQpIHsKKwkJ CQkJCWlmICghVERfT05fUlVOUSh0ZCkgJiYKKwkJCQkJCSAgICAhVERfSVNfUlVOTklORyh0ZCkg JiYKKwkJCQkJCSAgICAhVERfSVNfU0xFRVBJTkcodGQpKSB7CisJCQkJCQkJYnJlYWtvdXQgPSAx OworCQkJCQkJCWJyZWFrOworCQkJCQkJfQorCQkJCQl9CisJCQkJCW10eF91bmxvY2tfc3Bpbigm c2NoZWRfbG9jayk7CisJCQkJCWlmIChicmVha291dCkgeworCQkJCQkJUFJPQ19VTkxPQ0socCk7 CisJCQkJCQljb250aW51ZTsKKwkJCQkJfQorCQkJCQkKKwkJCQkJLyogTk9URTogd2UgZGlmZmVy IGhlcmUgZnJvbSB2bV9kYWVtb24gYi9jIHdlIGRvbid0IAorCQkJCQkgKiBjYXJlIGFib3V0IHRo ZSBybGltaXQ7IHRoaW5ncyB0aGF0IGFyZSBleGNlZWRpbmcgdGhhdCB3aWxsCisJCQkJCSAqIGdl dCBjYXVnaHQgaW4gZHVlIGNvdXJzZS4gIFdlIG5lZWQsIGhvd2V2ZXIsIHRvIGRlY3JlYXNlCisJ CQkJCSAqIHRoZSBwcmVzc3VyZSBvbiBvdXIgcGVybWl0dGVkIG1lbW9yeSBhbGxvY2F0aW9uLiAg Rm9ydHVuYXRlbHksIAorCQkJCQkgKiB3ZSBvbmx5IGNhcmUgYWJvdXQgZXZlbnR1YWxseSBoaXR0 aW5nIHRoZSBsaW1pdCwgc28gaWYgd2UKKwkJCQkJICogZG9uJ3QgZ2V0IHRoZXJlIHJpZ2h0IGF3 YXksIGl0J3Mgb2theS4KKwkJCQkJICovICAgICAgCisJCQkJCQorCQkJCQkvKiBUT0RPOiB0aGlz IGFyYml0cmFyaWx5IHJlZHVjZXMgZWFjaCBwcm9jZXNzJ3Mgc3BhY2UgYnkKKwkJCQkJICogNi4y NSUgKHVudGlsIGl0J3MgY29tcGxldGVseSBzd2FwcGVkIG91dCkgd2hpbGUKKwkJCQkJICogd2Un cmUgdW5kZXIgbWVtb3J5IHByZXNzdXJlLiAgQSBiZXR0ZXIgd2F5IHdvdWxkIGJlIAorCQkJCQkg KiB0byBlaXRoZXIgaGl0IGxhcmdlIHByb2Nlc3NlcyBmaXJzdCwgb3IgdG8gaGl0IHRoZQorCQkJ CQkgKiBsZWFzdC1hY3RpdmUgcHJvY2Vzc2VzIGZpcnN0LCBvciBnbyBwcm9wb3J0aW9uYWxseSwK KwkJCQkJICogb3IgLi4uLiAKKwkJCQkJICovCisJCQkJCW5ld3NpemUgPSBjdXJzaXplID0gdm1z cGFjZV9yZXNpZGVudF9jb3VudChwLT5wX3Ztc3BhY2UpOworCQkJCQluZXdzaXplIC09IG5ld3Np emUgLyAxNjsKKwkJCQkJaWYgKGN1cnNpemUgPCAwKQorCQkJCQkJbmV3c2l6ZSA9IDA7CisJCQkJ CVBST0NfVU5MT0NLKHApOworCQkJCQl2bV9wYWdlb3V0X21hcF9kZWFjdGl2YXRlX3BhZ2VzKCZw LT5wX3Ztc3BhY2UtPnZtX21hcCwgbmV3c2l6ZSk7CisJCQkJfSAvKiBlbmQgTElTVF9GT1JFQUNI IHByb2NzICovCisJCQl9CisJCQlzeF9zdW5sb2NrKCZhbGxwcm9jX2xvY2spOworCQl9CisJCXRz bGVlcChwciwgMCwgIi0iLCBqYWlsX21lbW9yeV9wYWdlcl9pbnRlcnZhbCAqIGh6KTsgCisJfQor CQorCWt0aHJlYWRfZXhpdCgwKTsKK30KKwogLyoKICAqIE1QU0FGRQogICoKQEAgLTEwNiw2ICsy NTIsNyBAQAogCXN0cnVjdCBwcmlzb24gKnByLCAqdHByOwogCXN0cnVjdCBqYWlsIGo7CiAJc3Ry dWN0IGphaWxfYXR0YWNoX2FyZ3MgamFhOworCXN0cnVjdCBwcm9jICpqX3BhZ2VyX3Byb2MgPSBO VUxMOwogCWludCB2ZnNsb2NrZWQsIGVycm9yLCB0cnlwcmlkOwogCiAJZXJyb3IgPSBjb3B5aW4o dWFwLT5qYWlsLCAmaiwgc2l6ZW9mKGopKTsKQEAgLTEzNSw3ICsyODIsOSBAQAogCQlnb3RvIGVf ZHJvcHZucmVmOwogCXByLT5wcl9pcCA9IGouaXBfbnVtYmVyOwogCXByLT5wcl9saW51eCA9IE5V TEw7CisJcHItPnByX3NjaGVkX3NoYXJlcyA9IGouc2NoZWRfc2hhcmVzOwogCXByLT5wcl9zZWN1 cmVsZXZlbCA9IHNlY3VyZWxldmVsOworCXByLT5wcl9tZW1fbGltaXQgPSBqLm1lbV9saW1pdDsK IAogCS8qIERldGVybWluZSBuZXh0IHByX2lkIGFuZCBhZGQgcHJpc29uIHRvIGFsbHByaXNvbiBs aXN0LiAqLwogCW10eF9sb2NrKCZhbGxwcmlzb25fbXR4KTsKQEAgLTE1OSw2ICszMDgsMTEgQEAK IAlwcmlzb25jb3VudCsrOwogCW10eF91bmxvY2soJmFsbHByaXNvbl9tdHgpOwogCisJaWYgKGt0 aHJlYWRfY3JlYXRlKGpwYWdlcl90ZCwgcHIsICh2b2lkICopIGpfcGFnZXJfcHJvYywgMCwgMCwg ImpwYWdlciAlZCIsIHByLT5wcl9pZCkpCisJCWdvdG8gZV9kcm9wcHJyZWY7CisJS0FTU0VSVChq X3BhZ2VyX3Byb2MgIT0gTlVMTCwgKCJOVUxMIGpfcGFnZXJfcHJvYyIpKTsKKwlwci0+cHJfcGFn ZXIgPSBqX3BhZ2VyX3Byb2M7CisKIAllcnJvciA9IGphaWxfYXR0YWNoKHRkLCAmamFhKTsKIAlp ZiAoZXJyb3IpCiAJCWdvdG8gZV9kcm9wcHJyZWY7CkBAIC0xNjgsNiArMzIyLDEwIEBACiAJdGQt PnRkX3JldHZhbFswXSA9IGphYS5qaWQ7CiAJcmV0dXJuICgwKTsKIGVfZHJvcHBycmVmOgorCWlm IChqX3BhZ2VyX3Byb2MgIT0gTlVMTCkgeworCQkqcHItPnByX3BhZ2VyX2ZsYWdzX3B0ciA9IEpf UEFHRVJfVERfRElFOworCQl3YWtldXAocHIpOworCX0KIAltdHhfbG9jaygmYWxscHJpc29uX210 eCk7CiAJTElTVF9SRU1PVkUocHIsIHByX2xpc3QpOwogCXByaXNvbmNvdW50LS07CkBAIC0yODIs NiArNDQwLDEwIEBACiAJCXByaXNvbmNvdW50LS07CiAJCW10eF91bmxvY2soJmFsbHByaXNvbl9t dHgpOwogCisgICAgICAgICAgICAgICAgLyogVGVsbCBzY2hlZHVsZXIsIHBhZ2VyIHRvIGRpZS4g IE5vIG5lZWQgdG8gd2FpdC4gKi8KKwkJKnByLT5wcl9wYWdlcl9mbGFnc19wdHIgPSBKX1BBR0VS X1REX0RJRTsKKwkJd2FrZXVwKHByKTsKKwogCQlUQVNLX0lOSVQoJnByLT5wcl90YXNrLCAwLCBw cmlzb25fY29tcGxldGUsIHByKTsKIAkJdGFza3F1ZXVlX2VucXVldWUodGFza3F1ZXVlX3RocmVh ZCwgJnByLT5wcl90YXNrKTsKIAkJcmV0dXJuOwpAQCAtMzkzLDYgKzU1NSw0NSBAQAogCXJldHVy biAob2spOwogfQogCisvKiBHaXZlbiBjcmVkZW50aWFsLCByZXR1cm4gbWVtb3J5IHVzYWdlIGlu IGJ5dGVzLiAqLworbG9uZworcHJpc29uX21lbW9yeShzdHJ1Y3QgcHJpc29uICpwcikKK3sKKwlz dHJ1Y3QgcHJvYyAqcDsKKwlsb25nIG1lbV91c2VkID0gMDsKKwkKKwkvKiAKKwkgKiBUT0RPOiB0 aGlzIGlzIGEgcmVhbGx5IGJhZCB3YXkgb2YgZG9pbmcgdGhlCisJICogc2VhcmNoLCBhcyB3ZSBl bmQgdXAgZ29pbmcgYWNyb3NzIGFsbCBwcm9jZXNzZXMKKwkgKiBmb3IgZWFjaCBqYWlsLiAgSXQn ZCBiZSBtb3JlIGVmZmljaWVudCB0byBqdXN0IGRvIAorCSAqIHRoaXMgb25jZSBpbiBhIHBlcmlv ZCBhbmQgdXBkYXRlIHRoZSByZWxldmFudCBqYWlsLgorCSAqCisJICovCisJRk9SRUFDSF9QUk9D X0lOX1NZU1RFTShwKSB7CisJCWlmICggcC0+cF91Y3JlZCA9PSBOVUxMIHx8CisJCSAgICAgcC0+ cF92bXNwYWNlID09IE5VTEwgfHwKKwkJICAgICAhamFpbGVkKHAtPnBfdWNyZWQpIHx8CisJCSAg ICAgKHByICE9IHAtPnBfdWNyZWQtPmNyX3ByaXNvbikpCisJCQljb250aW51ZTsKKworCQltZW1f dXNlZCArPSB2bXNwYWNlX3Jlc2lkZW50X2NvdW50KHAtPnBfdm1zcGFjZSk7CisJfQorICAgICAg IAltZW1fdXNlZCAqPSBQQUdFX1NJWkU7CisKKwlyZXR1cm4gbWVtX3VzZWQ7Cit9CisKKy8qIEdp dmVuIGNyZWRlbnRpYWwsIHJldHVybiBwZXJtaXR0ZWQgbWVtb3J5IHVzYWdlIGluIGJ5dGVzLiAq LworbG9uZworcHJpc29uX21lbW9yeV9saW1pdChzdHJ1Y3QgcHJpc29uICpwcikKK3sKKwl2bV9w aW5kZXhfdCBtZW1saW1pdDsKKwltdHhfbG9jaygmcHItPnByX210eCk7CisJbWVtbGltaXQgPSAo dm1fcGluZGV4X3QpIHByLT5wcl9tZW1fbGltaXQ7CisJbXR4X3VubG9jaygmcHItPnByX210eCk7 CisJcmV0dXJuIG1lbWxpbWl0OworfQorCiAvKgogICogUmV0dXJuIDAgaWYgamFpbHMgcGVybWl0 IHAxIHRvIGZyb2IgcDIsIG90aGVyd2lzZSBFU1JDSC4KICAqLwpAQCAtNTIzLDYgKzcyNCw1MiBA QAogCX0KIH0KIAorLyogCisgKiBDaGFuZ2UgcmVzb3VyY2UgbGltaXQgZm9yIGEgcHJpc29uLgor ICogCisgKiB1bnNpZ25lZCBpbnQgamlkOiBpZCBvZiBqYWlsIHRvIG1lc3Mgd2l0aAorICoKKyAq IGludCBjcHVzaGFyZXM6ICAwIC0+IHJlbW92ZSBwcmlzb24gZnJvbSBjcHUgbGltaXRzCisgKiAg ICAgICAgICAgICAgICAtMSAtPiBkb24ndCBjaGFuZ2UgZXhpc3Rpbmcgc2hhcmVzCisgKiAgICAg ICAgICAgICAgICA+MCAtPiBzZXQgY3B1IHNoYXJlcworICoKKyAqIGludCBtZW1saW1pdDogICAw IC0+IHJlbW92ZSBwcmlzb24gZnJvbSBtZW0gbGltaXRzCisgKiAgICAgICAgICAgICAgICAtMSAt PiBkb24ndCBjaGFuZ2UgZXhpc3RpbmcgbGltaXQKKyAqICAgICAgICAgICAgICAgID4xIC0+IHNl dCBtZW1vcnkgbGltaXQgKGJ5dGVzKQorICoKKyAqIFRPRE86IG1pZ2h0IHRoaXMgYmUgYmV0dGVy IGhhbmRsZWQgdmlhIGEgd3JpdGFibGUgCisgKiBzeXNjdGwgdGhhbiB3aXRoIGEgbmV3IHN5c2Nh bGw/CisgKi8KK2ludAoramFpbF9zZXRfcmVzb3VyY2VfbGltaXRzKHN0cnVjdCB0aHJlYWQgKnRk LCBzdHJ1Y3QgamFpbF9zZXRfcmVzb3VyY2VfbGltaXRzX2FyZ3MgKnVhcCkKK3sKKwlzdHJ1Y3Qg cHJpc29uICpwcjsKKwlpbnQgZXJyb3I7CisKKwllcnJvciA9IHN1c2VyKHRkKTsKKwlpZiAoZXJy b3IpCisJCXJldHVybiAoZXJyb3IpOworCisJbXR4X2xvY2soJmFsbHByaXNvbl9tdHgpOworCUxJ U1RfRk9SRUFDSChwciwgJmFsbHByaXNvbiwgcHJfbGlzdCkgeworCQlpZiAocHItPnByX2lkID09 IHVhcC0+amlkKQorCQkJYnJlYWs7CisJfQorCWlmIChOVUxMID09IHByKSB7CisJCW10eF91bmxv Y2soJmFsbHByaXNvbl9tdHgpOworCQlyZXR1cm4gMTsKKwl9CisJCisJbXR4X2xvY2soJnByLT5w cl9tdHgpOworCWlmICgtMSAhPSB1YXAtPmNwdXNoYXJlcykKKwkJcHItPnByX3NjaGVkX3NoYXJl cyA9IHVhcC0+Y3B1c2hhcmVzOworCWlmICgtMSAhPSB1YXAtPm1lbWxpbWl0KQorCQlwci0+cHJf bWVtX2xpbWl0ID0gdWFwLT5tZW1saW1pdDsKKwltdHhfdW5sb2NrKCZwci0+cHJfbXR4KTsKKwlt dHhfdW5sb2NrKCZhbGxwcmlzb25fbXR4KTsKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludAog c3lzY3RsX2phaWxfbGlzdChTWVNDVExfSEFORExFUl9BUkdTKQogewpAQCAtNTU1LDYgKzgwMiwx MCBAQAogCQlzdHJsY3B5KHhwLT5wcl9wYXRoLCBwci0+cHJfcGF0aCwgc2l6ZW9mKHhwLT5wcl9w YXRoKSk7CiAJCXN0cmxjcHkoeHAtPnByX2hvc3QsIHByLT5wcl9ob3N0LCBzaXplb2YoeHAtPnBy X2hvc3QpKTsKIAkJeHAtPnByX2lwID0gcHItPnByX2lwOworCQl4cC0+cHJfc2NoZWRfc2hhcmVz ID0gcHItPnByX3NjaGVkX3NoYXJlczsKKwkJeHAtPnByX2VzdGNwdSA9IHByLT5wcl9lc3RjcHU7 CisJCXhwLT5wcl9tZW1fbGltaXQgPSBwci0+cHJfbWVtX2xpbWl0OworCQl4cC0+cHJfbWVtX3Vz YWdlID0gcHItPnByX21lbV91c2FnZTsKIAkJbXR4X3VubG9jaygmcHItPnByX210eCk7CiAJCXhw Kys7CiAJfQo= ------=_Part_12727_24649135.1190831698158--