Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Sep 2007 14:34:58 -0400
From:      "Chris Thunes" <cthunes@tqhosting.com>
To:        "Miroslav Lachman" <000.fbsd@quip.cz>
Cc:        cdjones@novusordo.net, freebsd-jail@freebsd.org
Subject:   Re: jtune not showing resource usage - fixed
Message-ID:  <b722430e0709261134j7d60cc3br8bcc628a07ba43a1@mail.gmail.com>
In-Reply-To: <46FA8EEA.4090302@quip.cz>
References:  <b722430e0708131550i12ac1f25ke7197c2f4cb28857@mail.gmail.com> <46FA8EEA.4090302@quip.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_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
> > <mailto: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 <http://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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b722430e0709261134j7d60cc3br8bcc628a07ba43a1>