Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 15 Dec 2015 19:21:03 -0500 (EST)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        Frank de Bot <lists@searchy.net>
Cc:        freebsd-stable@FreeBSD.org
Subject:   Re: kernel process [nfscl] high cpu
Message-ID:  <216819142.133672616.1450225263922.JavaMail.zimbra@uoguelph.ca>
In-Reply-To: <5603FC85.8070105@searchy.net>
References:  <1031959302.30289198.1430594914473.JavaMail.root@uoguelph.ca> <5603AE3D.5090407@searchy.net> <1887696626.8730412.1443097925392.JavaMail.zimbra@uoguelph.ca> <5603FC85.8070105@searchy.net>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_133672613_387212164.1450225263919
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Frank de Bot wrote:
> Rick Macklem wrote:
> > Frank de Bot wrote:
> >> Rick Macklem wrote:
> >>> Frank de Bot wrote:
> >>>> Hi,
> >>>>
> >>>> On a 10.1-RELEASE-p9 server I have several NFS mounts used for a
> >>>> jail.
> >>>> Because it's a server only to test, there is a low load. But the
> >>>> [nfscl]
> >>>> process is hogging a CPU after a while. This happens pretty fast,
> >>>> within
> >>>> 1 or 2 days. I'm noticing the high CPU of the process when I want to
> >>>> do
> >>>> some test after a little while (those 1 or 2 days).
> >>>>
> >>>> My jail.conf look like:
> >>>>
> >>>> exec.start = "/bin/sh /etc/rc";
> >>>> exec.stop = "/bin/sh /etc/rc.shutdown";
> >>>> exec.clean;
> >>>> mount.devfs;
> >>>> exec.consolelog = "/var/log/jail.$name.log";
> >>>> #mount.fstab = "/usr/local/etc/jail.fstab.$name";
> >>>>
> >>>> test01 {
> >>>>         host.hostname = "test01_hosting";
> >>>>         ip4.addr = somepublicaddress;
> >>>>         ip4.addr += someprivateaddress;
> >>>>
> >>>>         mount = "10.13.37.2:/tank/hostingbase      /opt/jails/test01
> >>>>    nfs     nfsv4,minorversion=1,pnfs,ro,noatime        0       0";
> >>>>         mount +=  "10.13.37.2:/tank/hosting/test
> >>>> /opt/jails/test01/opt       nfs     nfsv4,minorversion=1,pnfs,noatime
> >>>>      0       0";
> >>>>
> >>>>         path = "/opt/jails/test01";
> >>>> }
> >>>>
> >>>> Last test was with NFS 4.1, I also worked with NFS 4.(0) with the
> >>>> same
> >>>> result. In the readonly nfs share there are symbolic links point to
> >>>> the
> >>>> read-write share for logging, storing .run files, etc. When I monitor
> >>>> my
> >>>> network interface with tcpdump, there is little nfs traffic, only
> >>>> when I
> >>>> do try to access the shares there is activity.
> >>>>
> >>>> What is causing nfscl to run around in circles, hogging the CPU (it
> >>>> makes the system slow to respond too) or how can I found out what's
> >>>> the
> >>>> cause?
> >>>>
> >>> Well, the nfscl does server->client RPCs referred to as callbacks. I
> >>> have no idea what the implications of running it in a jail is, but I'd
> >>> guess that these server->client RPCs get blocked somehow, etc...
> >>> (The NFSv4.0 mechanism requires a separate IP address that the server
> >>>  can connect to on the client. For NFSv4.1, it should use the same
> >>>  TCP connection as is used for the client->server RPCs. The latter
> >>>  seems like it should work, but there is probably some glitch.)
> >>>
> >>> ** Just run without the nfscl daemon (it is only needed for delegations
> >>> or
> >>> pNFS).
> >>
> >> How can I disable the nfscl daemon?
> >>
> > Well, the daemon for the callbacks is called nfscbd.
> > You should check via "ps ax", to see if you have it running.
> > (For NFSv4.0 you probably don't want it running, but for NFSv4.1 you
> >  do need it. pNFS won't work at all without it, but unless you have a
> >  server that supports pNFS, it won't work anyhow. Unless your server is
> >  a clustered Netapp Filer, you should probably not have the "pnfs" option.)
> > 
> > To run the "nfscbd" daemon you can set:
> > nfscbd_enable="TRUE"
> > in your /etc/rc.conf will start it on boot.
> > Alternately, just type "nfscbd" as root.
> > 
> > The "nfscl" thread is always started when an NFSv4 mount is done. It does
> > an assortment of housekeeping things, including a Renew op to make sure the
> > lease doesn't expire. If for some reason the jail blocks these Renew RPCs,
> > it will try to do them over and over and ... because having the lease
> > expire is bad news for NFSv4. How could you tell?
> > Well, capturing packets between the client and server, then looking at them
> > in wireshark is probably the only way. (Or maybe a large count for Renew
> > in the output from "nfsstat -e".)
> > 
> > "nfscbd" is optional for NFSv4.0. Without it, you simply don't do
> > callbacks/delegations.
> > For NFSv4.1 it is pretty much required, but doesn't need a separate
> > server->client TCP
> > connection.
> > --> I'd enable it for NFSv4.1, but disable it for NFSv4.0 at least as a
> > starting point.
> > 
> > And as I said before, none of this is tested within jails, so I have no
> > idea
> > what effect the jails have. Someone who understands jails might have some
> > insight
> > w.r.t. this?
> > 
> > rick
> > 
> 
> Since last time I haven't tried to use pnfs and just sticked with
> nfsv4.0. nfscbd is not running. The server is now running 10.2. The
> number of renews is not very high (56k, getattr is for example 283M)
> View with wireshark, renew calls look good ,the nfs status is ok.
> 
> Is there a way to know what [nfscl] is active with?
> 
> I do understand nfs + jails could have issues, but I like to understand
> them.
> 
It is conceivable that this high load is caused by the problem identified in
PR#205193, where jails can't talk to the nfsuserd because 127.0.0.1 gets
translated to another ip address for the machine.

The attached patches are the same ones as in the PR, which change the nfsuserd
to use an AF_LOCAL socket instead.

If it's convenient, it would be nice to try these patches (kernel + nfsuserd).

rick
ps: They are against head, so I'm not sure how easily they will apply to FreeBSD10.

> 
> Frank
> 
> _______________________________________________
> freebsd-stable@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"
> 

------=_Part_133672613_387212164.1450225263919
Content-Type: text/x-patch; name=nfsuserd-aflocal-kern.patch
Content-Disposition: attachment; filename=nfsuserd-aflocal-kern.patch
Content-Transfer-Encoding: base64

LS0tIGZzL25mcy9uZnNfY29tbW9ua3JwYy5jLnNhdgkyMDE1LTEyLTEwIDIwOjAxOjM1LjQ4ODMx
NzAwMCAtMDUwMAorKysgZnMvbmZzL25mc19jb21tb25rcnBjLmMJMjAxNS0xMi0xMCAyMDowNDo0
MC45MDM4NTQwMDAgLTA1MDAKQEAgLTE5OCw2ICsxOTgsOCBAQCBuZXduZnNfY29ubmVjdChzdHJ1
Y3QgbmZzbW91bnQgKm5tcCwgc3RyCiAJCQluY29uZiA9IGdldG5ldGNvbmZpZ2VudCgidWRwIik7
CiAJCWVsc2UKIAkJCW5jb25mID0gZ2V0bmV0Y29uZmlnZW50KCJ0Y3AiKTsKKwllbHNlIGlmIChz
YWRkci0+c2FfZmFtaWx5ID09IEFGX0xPQ0FMKQorCQluY29uZiA9IGdldG5ldGNvbmZpZ2VudCgi
bG9jYWwiKTsKIAllbHNlCiAJCWlmIChucnAtPm5yX3NvdHlwZSA9PSBTT0NLX0RHUkFNKQogCQkJ
bmNvbmYgPSBnZXRuZXRjb25maWdlbnQoInVkcDYiKTsKLS0tIGZzL25mcy9uZnNfY29tbW9uc3Vi
cy5jLnNhdgkyMDE1LTEyLTEwIDIwOjA5OjI1LjIxODI4MjAwMCAtMDUwMAorKysgZnMvbmZzL25m
c19jb21tb25zdWJzLmMJMjAxNS0xMi0xMSAxNzoxNjoxMC45MTI3MTcwMDAgLTA1MDAKQEAgLTMw
NDgsNyArMzA0OCw3IEBAIG5mc3J2X2NtcG1peGVkY2FzZSh1X2NoYXIgKmNwLCB1X2NoYXIgKmMK
ICAqIFNldCB0aGUgcG9ydCBmb3IgdGhlIG5mc3VzZXJkLgogICovCiBBUFBMRVNUQVRJQyBpbnQK
LW5mc3J2X25mc3VzZXJkcG9ydCh1X3Nob3J0IHBvcnQsIE5GU1BST0NfVCAqcCkKK25mc3J2X25m
c3VzZXJkcG9ydChzdHJ1Y3Qgc29ja2FkZHIgKnNhZCwgdV9zaG9ydCBwb3J0LCBORlNQUk9DX1Qg
KnApCiB7CiAJc3RydWN0IG5mc3NvY2tyZXEgKnJwOwogCXN0cnVjdCBzb2NrYWRkcl9pbiAqYWQ7
CkBAIC0zMDY3LDE2ICszMDY3LDI0IEBAIG5mc3J2X25mc3VzZXJkcG9ydCh1X3Nob3J0IHBvcnQs
IE5GU1BST0MKIAkgKi8KIAlycCA9ICZuZnNydl9uZnN1c2VyZHNvY2s7CiAJcnAtPm5yX2NsaWVu
dCA9IE5VTEw7Ci0JcnAtPm5yX3NvdHlwZSA9IFNPQ0tfREdSQU07Ci0JcnAtPm5yX3NvcHJvdG8g
PSBJUFBST1RPX1VEUDsKLQlycC0+bnJfbG9jayA9IChORlNSX1JFU0VSVkVEUE9SVCB8IE5GU1Jf
TE9DQUxIT1NUKTsKIAlycC0+bnJfY3JlZCA9IE5VTEw7Ci0JTkZTU09DS0FERFJBTExPQyhycC0+
bnJfbmFtKTsKLQlORlNTT0NLQUREUlNJWkUocnAtPm5yX25hbSwgc2l6ZW9mIChzdHJ1Y3Qgc29j
a2FkZHJfaW4pKTsKLQlhZCA9IE5GU1NPQ0tBRERSKHJwLT5ucl9uYW0sIHN0cnVjdCBzb2NrYWRk
cl9pbiAqKTsKLQlhZC0+c2luX2ZhbWlseSA9IEFGX0lORVQ7Ci0JYWQtPnNpbl9hZGRyLnNfYWRk
ciA9IGh0b25sKCh1X2ludDMyX3QpMHg3ZjAwMDAwMSk7CS8qIDEyNy4wLjAuMSAqLwotCWFkLT5z
aW5fcG9ydCA9IHBvcnQ7CisJcnAtPm5yX2xvY2sgPSAoTkZTUl9SRVNFUlZFRFBPUlQgfCBORlNS
X0xPQ0FMSE9TVCk7CisJaWYgKHNhZCAhPSBOVUxMKSB7CisJCS8qIFVzZSB0aGUgQUZfTE9DQUwg
c29ja2V0IGFkZHJlc3MgcGFzc2VkIGluLiAqLworCQlycC0+bnJfc290eXBlID0gU09DS19TVFJF
QU07CisJCXJwLT5ucl9zb3Byb3RvID0gMDsKKwkJcnAtPm5yX25hbSA9IHNhZDsKKwl9IGVsc2Ug
eworCQkvKiBVc2UgdGhlIHBvcnQjIGZvciBhIFVEUCBzb2NrZXQgKG9sZCBuZnN1c2VyZCkuICov
CisJCXJwLT5ucl9zb3R5cGUgPSBTT0NLX0RHUkFNOworCQlycC0+bnJfc29wcm90byA9IElQUFJP
VE9fVURQOworCQlORlNTT0NLQUREUkFMTE9DKHJwLT5ucl9uYW0pOworCQlORlNTT0NLQUREUlNJ
WkUocnAtPm5yX25hbSwgc2l6ZW9mIChzdHJ1Y3Qgc29ja2FkZHJfaW4pKTsKKwkJYWQgPSBORlNT
T0NLQUREUihycC0+bnJfbmFtLCBzdHJ1Y3Qgc29ja2FkZHJfaW4gKik7CisJCWFkLT5zaW5fZmFt
aWx5ID0gQUZfSU5FVDsKKwkJYWQtPnNpbl9hZGRyLnNfYWRkciA9IGh0b25sKCh1X2ludDMyX3Qp
MHg3ZjAwMDAwMSk7CisJCWFkLT5zaW5fcG9ydCA9IHBvcnQ7CisJfQogCXJwLT5ucl9wcm9nID0g
UlBDUFJPR19ORlNVU0VSRDsKIAlycC0+bnJfdmVycyA9IFJQQ05GU1VTRVJEX1ZFUlM7CiAJZXJy
b3IgPSBuZXduZnNfY29ubmVjdChOVUxMLCBycCwgTkZTUFJPQ0NSRUQocCksIHAsIDApOwotLS0g
ZnMvbmZzL25mc192YXIuaC5zYXYJMjAxNS0xMi0xMCAyMDozNjowMS4zNjk1MzYwMDAgLTA1MDAK
KysrIGZzL25mcy9uZnNfdmFyLmgJMjAxNS0xMi0xMCAyMDozNjoyMi40NDYyMzcwMDAgLTA1MDAK
QEAgLTEyOCw3ICsxMjgsNyBAQCBpbnQgbmZzcnZfY2hlY2tzZXRhdHRyKHZub2RlX3QsIHN0cnVj
dCBuCiAgICAgTkZTUFJPQ19UICopOwogaW50IG5mc3J2X2NoZWNrZ2V0YXR0cihzdHJ1Y3QgbmZz
cnZfZGVzY3JpcHQgKiwgdm5vZGVfdCwKICAgICBzdHJ1Y3QgbmZzdmF0dHIgKiwgbmZzYXR0cmJp
dF90ICosIHN0cnVjdCB1Y3JlZCAqLCBORlNQUk9DX1QgKik7Ci1pbnQgbmZzcnZfbmZzdXNlcmRw
b3J0KHVfc2hvcnQsIE5GU1BST0NfVCAqKTsKK2ludCBuZnNydl9uZnN1c2VyZHBvcnQoc3RydWN0
IHNvY2thZGRyICosIHVfc2hvcnQsIE5GU1BST0NfVCAqKTsKIHZvaWQgbmZzcnZfbmZzdXNlcmRk
ZWxwb3J0KHZvaWQpOwogdm9pZCBuZnNydl90aHJvd2F3YXlhbGxzdGF0ZShORlNQUk9DX1QgKik7
CiBpbnQgbmZzcnZfY2hlY2tzZXF1ZW5jZShzdHJ1Y3QgbmZzcnZfZGVzY3JpcHQgKiwgdWludDMy
X3QsIHVpbnQzMl90ICosCi0tLSBmcy9uZnMvbmZzX2NvbW1vbnBvcnQuYy5zYXYJMjAxNS0xMi0x
MCAyMDozNjo1Ni40NjU2NTYwMDAgLTA1MDAKKysrIGZzL25mcy9uZnNfY29tbW9ucG9ydC5jCTIw
MTUtMTItMTEgMTc6MTU6MzAuMDI1MzA3MDAwIC0wNTAwCkBAIC00MSw2ICs0MSw3IEBAIF9fRkJT
RElEKCIkRnJlZUJTRDogaGVhZC9zeXMvZnMvbmZzL25mc18KICAqLwogI2luY2x1ZGUgPGZzL25m
cy9uZnNwb3J0Lmg+CiAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgorI2luY2x1ZGUgPHJwYy9ycGNf
Y29tLmg+CiAjaW5jbHVkZSA8dm0vdm0uaD4KICNpbmNsdWRlIDx2bS92bV9vYmplY3QuaD4KICNp
bmNsdWRlIDx2bS92bV9wYWdlLmg+CkBAIC01MzQsMTEgKzUzNSwzMCBAQCBuZnNzdmNfY2FsbChz
dHJ1Y3QgdGhyZWFkICpwLCBzdHJ1Y3QgbmZzCiAJCWdvdG8gb3V0OwogCX0gZWxzZSBpZiAodWFw
LT5mbGFnICYgTkZTU1ZDX05GU1VTRVJEUE9SVCkgewogCQl1X3Nob3J0IHNvY2twb3J0OworCQlz
dHJ1Y3Qgc29ja2FkZHIgKnNhZDsKKwkJc3RydWN0IHNvY2thZGRyX3VuICpzdW47CiAKLQkJZXJy
b3IgPSBjb3B5aW4odWFwLT5hcmdwLCAoY2FkZHJfdCkmc29ja3BvcnQsCi0JCSAgICBzaXplb2Yg
KHVfc2hvcnQpKTsKLQkJaWYgKCFlcnJvcikKLQkJCWVycm9yID0gbmZzcnZfbmZzdXNlcmRwb3J0
KHNvY2twb3J0LCBwKTsKKwkJaWYgKCh1YXAtPmZsYWcgJiBORlNTVkNfTkVXU1RSVUNUKSAhPSAw
KSB7CisJCQkvKiBOZXcgbmZzdXNlcmQgdXNpbmcgYW4gQUZfTE9DQUwgc29ja2V0LiAqLworCQkJ
c3VuID0gbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfdW4pLCBNX1NPTkFNRSwKKwkJCSAg
ICBNX1dBSVRPSyB8IE1fWkVSTyk7CisJCQllcnJvciA9IGNvcHlpbnN0cih1YXAtPmFyZ3AsIHN1
bi0+c3VuX3BhdGgsCisJCQkgICAgc2l6ZW9mKHN1bi0+c3VuX3BhdGgpLCBOVUxMKTsKKwkJCWlm
IChlcnJvciAhPSAwKSB7CisJCQkJZnJlZShzdW4sIE1fU09OQU1FKTsKKwkJCQlyZXR1cm4gKGVy
cm9yKTsKKwkJCX0KKwkJICAgICAgICBzdW4tPnN1bl9mYW1pbHkgPSBBRl9MT0NBTDsKKwkJICAg
ICAgICBzdW4tPnN1bl9sZW4gPSBTVU5fTEVOKHN1bik7CisJCQlzb2NrcG9ydCA9IDA7CisJCQlz
YWQgPSAoc3RydWN0IHNvY2thZGRyICopc3VuOworCQl9IGVsc2UgeworCQkJZXJyb3IgPSBjb3B5
aW4odWFwLT5hcmdwLCAoY2FkZHJfdCkmc29ja3BvcnQsCisJCQkgICAgc2l6ZW9mICh1X3Nob3J0
KSk7CisJCQlzYWQgPSBOVUxMOworCQl9CisJCWlmIChlcnJvciA9PSAwKQorCQkJZXJyb3IgPSBu
ZnNydl9uZnN1c2VyZHBvcnQoc2FkLCBzb2NrcG9ydCwgcCk7CiAJfSBlbHNlIGlmICh1YXAtPmZs
YWcgJiBORlNTVkNfTkZTVVNFUkRERUxQT1JUKSB7CiAJCW5mc3J2X25mc3VzZXJkZGVscG9ydCgp
OwogCQllcnJvciA9IDA7Cg==
------=_Part_133672613_387212164.1450225263919
Content-Type: text/x-patch; name=nfsuserd-aflocal.patch
Content-Disposition: attachment; filename=nfsuserd-aflocal.patch
Content-Transfer-Encoding: base64

LS0tIHVzci5zYmluL25mc3VzZXJkL25mc3VzZXJkLmMuc2F2CTIwMTUtMTItMDkgMTg6NDY6Mjku
Mjg0OTcyMDAwIC0wNTAwCisrKyB1c3Iuc2Jpbi9uZnN1c2VyZC9uZnN1c2VyZC5jCTIwMTUtMTIt
MTAgMjE6MzU6MTcuNTA1MzQzMDAwIC0wNTAwCkBAIC0zNSw2ICszNSw3IEBAIF9fRkJTRElEKCIk
RnJlZUJTRDogaGVhZC91c3Iuc2Jpbi9uZnN1c2UKICNpbmNsdWRlIDxzeXMvbW91bnQuaD4KICNp
bmNsdWRlIDxzeXMvc29ja2V0Lmg+CiAjaW5jbHVkZSA8c3lzL3NvY2tldHZhci5oPgorI2luY2x1
ZGUgPHN5cy9zdGF0Lmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICNpbmNsdWRlIDxzeXMvdWNy
ZWQuaD4KICNpbmNsdWRlIDxzeXMvdm5vZGUuaD4KQEAgLTQzLDYgKzQ0LDcgQEAgX19GQlNESUQo
IiRGcmVlQlNEOiBoZWFkL3Vzci5zYmluL25mc3VzZQogI2luY2x1ZGUgPG5mcy9uZnNzdmMuaD4K
IAogI2luY2x1ZGUgPHJwYy9ycGMuaD4KKyNpbmNsdWRlIDxycGMvcnBjX2NvbS5oPgogCiAjaW5j
bHVkZSA8ZnMvbmZzL3JwY3YyLmg+CiAjaW5jbHVkZSA8ZnMvbmZzL25mc3Byb3RvLmg+CkBAIC03
Myw2ICs3NSw5IEBAIHN0YXRpYyBib29sX3QJeGRyX2dldGlkKFhEUiAqLCBjYWRkcl90KTsKIHN0
YXRpYyBib29sX3QJeGRyX2dldG5hbWUoWERSICosIGNhZGRyX3QpOwogc3RhdGljIGJvb2xfdAl4
ZHJfcmV0dmFsKFhEUiAqLCBjYWRkcl90KTsKIAorI2lmbmRlZiBfUEFUSF9ORlNVU0VSRFNPQ0sK
KyNkZWZpbmUgX1BBVEhfTkZTVVNFUkRTT0NLCSIvdmFyL3J1bi9uZnN1c2VyZC5zb2NrIgorI2Vu
ZGlmCiAjZGVmaW5lCU1BWE5BTUUJCTEwMjQKICNkZWZpbmUJTUFYTkZTVVNFUkQJMjAKICNkZWZp
bmUJREVGTkZTVVNFUkQJNApAQCAtMTAzLDE1ICsxMDgsMTUgQEAgbWFpbihpbnQgYXJnYywgY2hh
ciAqYXJndltdKQogCXN0cnVjdCBuZnNkX2lkYXJncyBuaWQ7CiAJc3RydWN0IHBhc3N3ZCAqcHdk
OwogCXN0cnVjdCBncm91cCAqZ3JwOwotCWludCBzb2NrLCBvbmUgPSAxOwotCVNWQ1hQUlQgKnVk
cHRyYW5zcDsKLQl1X3Nob3J0IHBvcnRudW07CisJaW50IG9sZG1hc2ssIHNvY2s7CisJU1ZDWFBS
VCAqeHBydDsKIAlzaWdzZXRfdCBzaWduZXc7CiAJY2hhciBob3N0bmFtZVtNQVhIT1NUTkFNRUxF
TiArIDFdLCAqY3A7CiAJc3RydWN0IGFkZHJpbmZvICphaXAsIGhpbnRzOwogCXN0YXRpYyB1aWRf
dCBjaGVja19kdXBzW01BWFVTRVJNQVhdOwogCWdpZF90IGdycHNbTkdST1VQU107CiAJaW50IG5n
cm91cDsKKwlzdHJ1Y3Qgc29ja2FkZHJfdW4gc3VuOwogCiAJaWYgKG1vZGZpbmQoIm5mc2NvbW1v
biIpIDwgMCkgewogCQkvKiBOb3QgcHJlc2VudCBpbiBrZXJuZWwsIHRyeSBsb2FkaW5nIGl0ICov
CkBAIC0yNDUsNDYgKzI1MCw0MiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJZm9y
IChpID0gMDsgaSA8IG5mc3VzZXJkY250OyBpKyspCiAJCXNsYXZlc1tpXSA9IChwaWRfdCktMTsK
IAotCS8qCi0JICogU2V0IHVwIHRoZSBzZXJ2aWNlIHBvcnQgdG8gYWNjZXB0IHJlcXVlc3RzIHZp
YSBVRFAgZnJvbQotCSAqIGxvY2FsaG9zdCAoMTI3LjAuMC4xKS4KLQkgKi8KLQlpZiAoKHNvY2sg
PSBzb2NrZXQoQUZfSU5FVCwgU09DS19ER1JBTSwgSVBQUk9UT19VRFApKSA8IDApCi0JCWVycigx
LCAiY2Fubm90IGNyZWF0ZSB1ZHAgc29ja2V0Iik7Ci0KLQkvKgotCSAqIE5vdCBzdXJlIHdoYXQg
dGhpcyBkb2VzLCBzbyBJJ2xsIGxlYXZlIGl0IGhlcmUgZm9yIG5vdy4KLQkgKi8KLQlzZXRzb2Nr
b3B0KHNvY2ssIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgJm9uZSwgc2l6ZW9mKG9uZSkpOwot
CQotCWlmICgodWRwdHJhbnNwID0gc3ZjdWRwX2NyZWF0ZShzb2NrKSkgPT0gTlVMTCkKLQkJZXJy
KDEsICJDYW4ndCBzZXQgdXAgc29ja2V0Iik7Ci0KLQkvKgotCSAqIEJ5IG5vdCBzcGVjaWZ5aW5n
IGEgcHJvdG9jb2wsIGl0IGlzIGxpbmtlZCBpbnRvIHRoZQotCSAqIGRpc3BhdGNoIHF1ZXVlLCBi
dXQgbm90IHJlZ2lzdGVyZWQgd2l0aCBwb3J0bWFwcGVyLAotCSAqIHdoaWNoIGlzIGp1c3Qgd2hh
dCBJIHdhbnQuCi0JICovCi0JaWYgKCFzdmNfcmVnaXN0ZXIodWRwdHJhbnNwLCBSUENQUk9HX05G
U1VTRVJELCBSUENORlNVU0VSRF9WRVJTLAotCSAgICBuZnN1c2VyZHNydiwgMCkpCi0JCWVycigx
LCAiQ2FuJ3QgcmVnaXN0ZXIgbmZzdXNlcmQiKTsKKwltZW1zZXQoJnN1biwgMCwgc2l6ZW9mIHN1
bik7CisJc3VuLnN1bl9mYW1pbHkgPSBBRl9MT0NBTDsKKwl1bmxpbmsoX1BBVEhfTkZTVVNFUkRT
T0NLKTsKKwlzdHJjcHkoc3VuLnN1bl9wYXRoLCBfUEFUSF9ORlNVU0VSRFNPQ0spOworCXN1bi5z
dW5fbGVuID0gU1VOX0xFTigmc3VuKTsKKwlzb2NrID0gc29ja2V0KEFGX0xPQ0FMLCBTT0NLX1NU
UkVBTSwgMCk7CisJaWYgKHNvY2sgPCAwKQorCQllcnIoMSwgIkNhbid0IGNyZWF0ZSBsb2NhbCBu
ZnN1c2VyZCBzb2NrZXQiKTsKKwlvbGRtYXNrID0gdW1hc2soU19JWFVTUiB8IFNfSVJXWEcgfCBT
X0lSV1hPKTsKKwlpZiAoYmluZChzb2NrLCAoc3RydWN0IHNvY2thZGRyICopJnN1biwgc3VuLnN1
bl9sZW4pIDwgMCkKKwkJZXJyKDEsICJDYW4ndCBiaW5kIGxvY2FsIG5mc3VzZXJkIHNvY2tldCIp
OworCXVtYXNrKG9sZG1hc2spOworCWlmIChsaXN0ZW4oc29jaywgU09NQVhDT05OKSA8IDApCisJ
CWVycigxLCAiQ2FuJ3QgbGlzdGVuIG9uIGxvY2FsIG5mc3VzZXJkIHNvY2tldCIpOworCXhwcnQg
PSBzdmNfdmNfY3JlYXRlKHNvY2ssIFJQQ19NQVhEQVRBU0laRSwgUlBDX01BWERBVEFTSVpFKTsK
KwlpZiAoeHBydCA9PSBOVUxMKQorCQllcnIoMSwgIkNhbid0IGNyZWF0ZSB0cmFuc3BvcnQgZm9y
IGxvY2FsIG5mc3VzZXJkIHNvY2tldCIpOworCWlmICghc3ZjX3JlZyh4cHJ0LCBSUENQUk9HX05G
U1VTRVJELCBSUENORlNVU0VSRF9WRVJTLCBuZnN1c2VyZHNydiwKKwkgICAgTlVMTCkpCisJCWVy
cigxLCAiQ2FuJ3QgcmVnaXN0ZXIgc2VydmljZSBmb3IgbG9jYWwgbmZzdXNlcmQgc29ja2V0Iik7
CiAKIAkvKgotCSAqIFRlbGwgdGhlIGtlcm5lbCB3aGF0IG15IHBvcnQjIGlzLgorCSAqIFRlbGwg
dGhlIGtlcm5lbCB3aGF0IHRoZSBzb2NrZXQncyBwYXRoIGlzLgogCSAqLwotCXBvcnRudW0gPSBo
dG9ucyh1ZHB0cmFuc3AtPnhwX3BvcnQpOwogI2lmZGVmIERFQlVHCi0JcHJpbnRmKCJwb3J0bnVt
PTB4JXhcbiIsIHBvcnRudW0pOworCXByaW50Zigic29ja3BhdGg9JXNcbiIsIF9QQVRIX05GU1VT
RVJEU09DSyk7CiAjZWxzZQotCWlmIChuZnNzdmMoTkZTU1ZDX05GU1VTRVJEUE9SVCwgKGNhZGRy
X3QpJnBvcnRudW0pIDwgMCkgeworCWlmIChuZnNzdmMoTkZTU1ZDX05GU1VTRVJEUE9SVCB8IE5G
U1NWQ19ORVdTVFJVQ1QsIF9QQVRIX05GU1VTRVJEU09DSykKKwkgICAgPCAwKSB7CiAJCWlmIChl
cnJubyA9PSBFUEVSTSkgewogCQkJZnByaW50ZihzdGRlcnIsCiAJCQkgICAgIkNhbid0IHN0YXJ0
IG5mc3VzZXJkIHdoZW4gYWxyZWFkeSBydW5uaW5nIik7CiAJCQlmcHJpbnRmKHN0ZGVyciwKIAkJ
CSAgICAiIElmIG5vdCBydW5uaW5nLCB1c2UgdGhlIC1mb3JjZSBvcHRpb24uXG4iKTsKLQkJfSBl
bHNlIHsKLQkJCWZwcmludGYoc3RkZXJyLCAiQ2FuJ3QgZG8gbmZzc3ZjKCkgdG8gYWRkIHBvcnRc
biIpOwotCQl9CisJCX0gZWxzZQorCQkJZnByaW50ZihzdGRlcnIsICJDYW4ndCBkbyBuZnNzdmMo
KSB0byBhZGQgc29ja2V0XG4iKTsKIAkJZXhpdCgxKTsKIAl9CiAjZW5kaWYKQEAgLTQ1NSwyOCAr
NDU2LDExIEBAIG5mc3VzZXJkc3J2KHN0cnVjdCBzdmNfcmVxICpycXN0cCwgU1ZDWFAKIAlzdHJ1
Y3QgcGFzc3dkICpwd2Q7CiAJc3RydWN0IGdyb3VwICpncnA7CiAJaW50IGVycm9yOwotCXVfc2hv
cnQgc3BvcnQ7CiAJc3RydWN0IGluZm8gaW5mbzsKIAlzdHJ1Y3QgbmZzZF9pZGFyZ3MgbmlkOwot
CXVfaW50MzJfdCBzYWRkcjsKIAlnaWRfdCBncnBzW05HUk9VUFNdOwogCWludCBuZ3JvdXA7CiAK
LQkvKgotCSAqIE9ubHkgaGFuZGxlIHJlcXVlc3RzIGZyb20gMTI3LjAuMC4xIG9uIGEgcmVzZXJ2
ZWQgcG9ydCBudW1iZXIuCi0JICogKFNpbmNlIGEgcmVzZXJ2ZWQgcG9ydCAjIGF0IGxvY2FsaG9z
dCBpbXBsaWVzIGEgY2xpZW50IHdpdGgKLQkgKiAgbG9jYWwgcm9vdCwgdGhlcmUgd29uJ3QgYmUg
YSBzZWN1cml0eSBicmVhY2guIFRoaXMgaXMgYWJvdXQKLQkgKiAgdGhlIG9ubHkgY2FzZSBJIGNh
biB0aGluayBvZiB3aGVyZSBhIHJlc2VydmVkIHBvcnQgIyBtZWFucwotCSAqICBzb21ldGhpbmcu
KQotCSAqLwotCXNwb3J0ID0gbnRvaHModHJhbnNwLT54cF9yYWRkci5zaW5fcG9ydCk7Ci0Jc2Fk
ZHIgPSBudG9obCh0cmFuc3AtPnhwX3JhZGRyLnNpbl9hZGRyLnNfYWRkcik7Ci0JaWYgKChycXN0
cC0+cnFfcHJvYyAhPSBOVUxMUFJPQyAmJiBzcG9ydCA+PSBJUFBPUlRfUkVTRVJWRUQpIHx8Ci0J
ICAgIHNhZGRyICE9IDB4N2YwMDAwMDEpIHsKLQkJc3lzbG9nKExPR19FUlIsICJyZXEgZnJvbSBp
cD0weCV4IHBvcnQ9JWRcbiIsIHNhZGRyLCBzcG9ydCk7Ci0JCXN2Y2Vycl93ZWFrYXV0aCh0cmFu
c3ApOwotCQlyZXR1cm47Ci0JfQogCXN3aXRjaCAocnFzdHAtPnJxX3Byb2MpIHsKIAljYXNlIE5V
TExQUk9DOgogCQlpZiAoIXN2Y19zZW5kcmVwbHkodHJhbnNwLCAoeGRycHJvY190KXhkcl92b2lk
LCBOVUxMKSkK
------=_Part_133672613_387212164.1450225263919--



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