Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Dec 2001 18:30:26 -0500 (EST)
From:      Mike Silbersack <silby@silby.com>
To:        <net@freebsd.org>
Cc:        David Xu <davidx@viasoft.com.cn>, Mike Barcroft <mike@FreeBSD.ORG>, Leo Bicknell <bicknell@ufp.org>
Subject:   mbuf / maxfiles / maxsockets / etc autoscaling patch
Message-ID:  <Pine.BSF.4.30.0112081756370.61906-200000@niwun.pair.com>

next in thread | raw e-mail | index | archive | help
  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-1639610200-1007852484=:98646
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.BSF.4.30.0112081812131.98646@niwun.pair.com>


Here's the autoscaling patch I was mumbling about earlier this week.
With this patch applied, the necessity of tuning maxusers when one
upgrades to a machine with more ram should be removed in most cases.
(This patch is only to -current, the mbuf changes will make it not apply
cleanly to -stable patch if there is sufficient demand right now.)

Here's a quick look at the size of various memory allocations with various
maxusers sizes and with the autoscaling patch:

With maxusers:

musers  mproc   mfiles  msocket callout nmbcl   nsfbuf  tcp hash size
32	532	1064	1064	1612	1024	1024	512
64	1044	2088	2088	3148	1536	1536	512
128	2068	4136	4136	6220	2560	2560	512
256	4116	8232	8232	12364	4608	4608	512

With autoscaling:

MB ram  mproc   mfiles  msocket callout nmbcl   nsfbuf  tcp hash size
32	512	4096	2048	4624	1024	1024	512
64	1024	8192	4096	9232	2048	1024	512
128	2048	16384	8192	18448	4096	2048	1024
256	4096	32768	16384	36880	8192	4096	2048
384	6144	49152	24576	55312	12288	6144	3072
512	8192	65536	32767	73744	16384	8192	4096
(Values above this start to flatten out due to #defined maximums)

Note that in general calculations are of the following form:

value = max(maxusers-derived value, autoscale-derived value);
value = loader tuned value if present

As such, under no circumstances will people suddenly see a decrease in
various parameters when they upgrade to an autoscaling kernel; only
increases.

I'm sure that there will be much commotion about what scaling factors are
correct.  To make changes to these easy, I have grouped all the mins,
scaling factors, and maxes in param.h - tweaking them is quite simple.

I included mins and maxes to make sure that autoscaling doesn't cause
problems by creating low values on small memory machines and also so that
it does not specify really high values on 2GB+ machines.  The high case is
what worries me; I have not heard much about how well maxsockets /
nmbclusters > 32767 really works.  If people running high volume systems
that actively use that many simultaneous sockets + clusters + files, I'd
be glad to bump up the maxes.

Oh, there's one more kicker thrown in; I changed maxfilesperproc to equal
9/10ths of maxfiles, and maxprocperuid to equal 9/10 maxproc; this'll help
to prevent a single process or user from forkbombing the system or running
it out of file handles with a default configuration.

Please review.

Thanks,

Mike "Silby" Silbersack

--0-1639610200-1007852484=:98646
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="autoscale.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.30.0112081801240.98646@niwun.pair.com>
Content-Description: 
Content-Disposition: ATTACHMENT; FILENAME="autoscale.patch"

ZGlmZiAtdSAtciBzeXMub2xkL2FscGhhL2FscGhhL21hY2hkZXAuYyBzeXMv
YWxwaGEvYWxwaGEvbWFjaGRlcC5jDQotLS0gc3lzLm9sZC9hbHBoYS9hbHBo
YS9tYWNoZGVwLmMJU2F0IERlYyAgOCAxNjowNToxNSAyMDAxDQorKysgc3lz
L2FscGhhL2FscGhhL21hY2hkZXAuYwlTYXQgRGVjICA4IDE2OjA1OjI4IDIw
MDENCkBAIC01NTYsNyArNTU2LDcgQEANCiAJCWtlcm5fZW52cCA9IGJvb3Rp
bmZvLmVudnA7DQogDQogCS8qIERvIGJhc2ljIHR1bmluZywgaHogZXRjICov
DQotCWluaXRfcGFyYW0oKTsNCisJaW5pdF9oeigpOw0KIA0KIAkvKg0KIAkg
KiBJbml0YWxpemUgdGhlICh0ZW1wb3JhcnkpIGJvb3RzdHJhcCBjb25zb2xl
IGludGVyZmFjZSwgc28NCkBAIC04NjEsNiArODYxLDkgQEANCiAJCQlwaHlz
bWVtIC09IChzeiAtIG5zeik7DQogCQl9DQogCX0NCisNCisJLyogSW5pdCBi
YXNpYyB0dW5hYmxlcyAqLw0KKwlpbml0X3BhcmFtKGFscGhhX3B0b2IocGh5
c21lbSkpOw0KIA0KIAkvKg0KIAkgKiBJbml0aWFsaXplIGVycm9yIG1lc3Nh
Z2UgYnVmZmVyIChhdCBlbmQgb2YgY29yZSkuDQpkaWZmIC11IC1yIHN5cy5v
bGQvaTM4Ni9pMzg2L21hY2hkZXAuYyBzeXMvaTM4Ni9pMzg2L21hY2hkZXAu
Yw0KLS0tIHN5cy5vbGQvaTM4Ni9pMzg2L21hY2hkZXAuYwlTYXQgRGVjICA4
IDE2OjA0OjU0IDIwMDENCisrKyBzeXMvaTM4Ni9pMzg2L21hY2hkZXAuYwlT
YXQgRGVjICA4IDE2OjQzOjIwIDIwMDENCkBAIC0xNjkxLDggKzE2OTEsOCBA
QA0KIAllbHNlIGlmIChib290aW5mby5iaV9lbnZwKQ0KIAkJa2Vybl9lbnZw
ID0gKGNhZGRyX3QpYm9vdGluZm8uYmlfZW52cCArIEtFUk5CQVNFOw0KIA0K
LQkvKiBJbml0IGJhc2ljIHR1bmFibGVzLCBoeiBldGMgKi8NCi0JaW5pdF9w
YXJhbSgpOw0KKwkvKiBJbml0IGh6ICovDQorCWluaXRfaHooKTsNCiANCiAJ
LyoNCiAJICogbWFrZSBnZHQgbWVtb3J5IHNlZ21lbnRzLCB0aGUgY29kZSBz
ZWdtZW50IGdvZXMgdXAgdG8gZW5kIG9mIHRoZQ0KQEAgLTE4NzEsNiArMTg3
MSw5IEBADQogCWdldG1lbXNpemUoZmlyc3QpOw0KIA0KIAkvKiBub3cgcnVu
bmluZyBvbiBuZXcgcGFnZSB0YWJsZXMsIGNvbmZpZ3VyZWQsYW5kIHUvaW9t
IGlzIGFjY2Vzc2libGUgKi8NCisNCisJLyogSW5pdCBiYXNpYyB0dW5hYmxl
cyAqLw0KKwlpbml0X3BhcmFtKHB0b2EoTWF4bWVtKSk7DQogDQogCS8qIE1h
cCB0aGUgbWVzc2FnZSBidWZmZXIuICovDQogCWZvciAob2ZmID0gMDsgb2Zm
IDwgcm91bmRfcGFnZShNU0dCVUZfU0laRSk7IG9mZiArPSBQQUdFX1NJWkUp
DQpkaWZmIC11IC1yIHN5cy5vbGQvaWE2NC9pYTY0L21hY2hkZXAuYyBzeXMv
aWE2NC9pYTY0L21hY2hkZXAuYw0KLS0tIHN5cy5vbGQvaWE2NC9pYTY0L21h
Y2hkZXAuYwlTYXQgRGVjICA4IDE2OjA0OjUyIDIwMDENCisrKyBzeXMvaWE2
NC9pYTY0L21hY2hkZXAuYwlTYXQgRGVjICA4IDE2OjA1OjI4IDIwMDENCkBA
IC01MjIsOCArNTIyLDggQEANCiAJLyogZ2V0IGZwc3dhIGludGVyZmFjZSAq
Lw0KIAlmcHN3YV9pbnRlcmZhY2UgPSAoRlBTV0FfSU5URVJGQUNFKilJQTY0
X1BIWVNfVE9fUlI3KGJvb3RpbmZvLmJpX2Zwc3dhKTsNCiANCi0JLyogSW5p
dCBiYXNpYyB0dW5hYmxlcywgaW5jbHVkaW5nIGh6ICovDQotCWluaXRfcGFy
YW0oKTsNCisJLyogSW5pdCBoeiAqLw0KKwlpbml0X2h6KCk7DQogDQogCXAg
PSBnZXRlbnYoImtlcm5lbG5hbWUiKTsNCiAJaWYgKHApDQpAQCAtNjIzLDYg
KzYyMyw5IEBADQogCXBoeXNfYXZhaWxbcGh5c19hdmFpbF9jbnRdID0gMDsN
CiANCiAJTWF4bWVtID0gcGh5c21lbTsNCisNCisJLyogSW5pdCBiYXNpYyB0
dW5hYmxlcyAqLw0KKwlpbml0X3BhcmFtKGlhNjRfcHRvYihwaHlzbWVtKSk7
DQogDQogCS8qDQogCSAqIEluaXRpYWxpemUgZXJyb3IgbWVzc2FnZSBidWZm
ZXIgKGF0IGVuZCBvZiBjb3JlKS4NCmRpZmYgLXUgLXIgc3lzLm9sZC9rZXJu
L3N1YnJfbWJ1Zi5jIHN5cy9rZXJuL3N1YnJfbWJ1Zi5jDQotLS0gc3lzLm9s
ZC9rZXJuL3N1YnJfbWJ1Zi5jCVNhdCBEZWMgIDggMTY6MDQ6NTEgMjAwMQ0K
KysrIHN5cy9rZXJuL3N1YnJfbWJ1Zi5jCVNhdCBEZWMgIDggMTY6MDk6MTcg
MjAwMQ0KQEAgLTE1MSwxNSArMTUxLDIxIEBADQogc3RhdGljIHZvaWQNCiB0
dW5hYmxlX21iaW5pdCh2b2lkICpkdW1teSkNCiB7DQorCWludCBhdXRvbWNs
cywgYXV0b3NmYnVmOw0KIA0KKwkvKiBDYWxjdWxhdGUgYXV0b3NjYWxlZCB2
YWx1ZXMsIGNob29zZSBpZiBncmVhdGVyLiAqLw0KKw0KKwlhdXRvbWNscyA9
IG1pbihNQVhBVVRPTUNMUywgbWF4KE1JTkFVVE9NQ0xTLCBNQ0xTUEVSTUIg
KiBwaHlzbWVtTUIpKTsNCisJbm1iY2x1c3RlcnMgPSBtYXgoYXV0b21jbHMs
IE5NQkNMVVNURVJTKTsNCisJYXV0b3NmYnVmID0gbWluKE1BWEFVVE9TRkJV
RiwgbWF4KE1JTkFVVE9TRkJVRiwgU0ZCVUZQRVJNQiAqIHBoeXNtZW1NQikp
Ow0KKwluc2ZidWZzID0gbWF4KGF1dG9zZmJ1ZiwgTlNGQlVGUyk7DQorCQ0K
IAkvKg0KIAkgKiBUaGlzIGhhcyB0byBiZSBkb25lIGJlZm9yZSBWTSBpbml0
Lg0KIAkgKi8NCi0Jbm1iY2x1c3RlcnMgPSBOTUJDTFVTVEVSUzsNCiAJVFVO
QUJMRV9JTlRfRkVUQ0goImtlcm4uaXBjLm5tYmNsdXN0ZXJzIiwgJm5tYmNs
dXN0ZXJzKTsNCiAJbm1idWZzID0gTk1CVUZTOw0KIAlUVU5BQkxFX0lOVF9G
RVRDSCgia2Vybi5pcGMubm1idWZzIiwgJm5tYnVmcyk7DQotCW5zZmJ1ZnMg
PSBOU0ZCVUZTOw0KIAlUVU5BQkxFX0lOVF9GRVRDSCgia2Vybi5pcGMubnNm
YnVmcyIsICZuc2ZidWZzKTsNCiAJbm1iY250ID0gTk1CQ05UUzsNCiAJVFVO
QUJMRV9JTlRfRkVUQ0goImtlcm4uaXBjLm5tYmNudCIsICZubWJjbnQpOw0K
ZGlmZiAtdSAtciBzeXMub2xkL2tlcm4vc3Vicl9wYXJhbS5jIHN5cy9rZXJu
L3N1YnJfcGFyYW0uYw0KLS0tIHN5cy5vbGQva2Vybi9zdWJyX3BhcmFtLmMJ
U2F0IERlYyAgOCAxNjowNDo1MSAyMDAxDQorKysgc3lzL2tlcm4vc3Vicl9w
YXJhbS5jCVNhdCBEZWMgIDggMTY6MTA6MDggMjAwMQ0KQEAgLTkwLDM5ICs5
MCw0NiBAQA0KICAqLw0KIHN0cnVjdAlidWYgKnN3YnVmOw0KIA0KK2ludCBw
aHlzbWVtTUI7DQorDQogLyoNCiAgKiBCb290IHRpbWUgb3ZlcnJpZGVzDQog
ICovDQogdm9pZA0KLWluaXRfcGFyYW0odm9pZCkNCitpbml0X3BhcmFtKHVf
aW50NjRfdCBtZW1ieXRlcykNCiB7DQorCWludCBtZW1zaXplbWI7DQorCWlu
dCBhdXRvcHJvYywgYXV0b2ZpbGVzOw0KKw0KKwlwaHlzbWVtTUIgPSBtZW1i
eXRlcyAvIDEwNDg1NzY7DQogDQotCS8qIEJhc2UgcGFyYW1ldGVycyAqLw0K
KwkvKiBDYWxjdWxhdGUgbWF4dXNlcnMtZGVyaXZlZCB2YWx1ZXMuICovDQog
CW1heHVzZXJzID0gTUFYVVNFUlM7DQogCVRVTkFCTEVfSU5UX0ZFVENIKCJr
ZXJuLm1heHVzZXJzIiwgJm1heHVzZXJzKTsNCi0JaHogPSBIWjsNCi0JVFVO
QUJMRV9JTlRfRkVUQ0goImtlcm4uaHoiLCAmaHopOw0KLQl0aWNrID0gMTAw
MDAwMCAvIGh6Ow0KLQl0aWNrYWRqID0gaG93bWFueSgzMDAwMCwgNjAgKiBo
eik7CS8qIGNhbiBhZGp1c3QgMzBtcyBpbiA2MHMgKi8NCi0NCi0JLyogVGhl
IGZvbGxvd2luZyBjYW4gYmUgb3ZlcnJpZGRlbiBhZnRlciBib290IHZpYSBz
eXNjdGwgKi8NCisJbmJ1ZiA9IE5CVUY7DQogCW1heHByb2MgPSBOUFJPQzsN
Ci0JVFVOQUJMRV9JTlRfRkVUQ0goImtlcm4ubWF4cHJvYyIsICZtYXhwcm9j
KTsNCiAJbWF4ZmlsZXMgPSBNQVhGSUxFUzsNCi0JVFVOQUJMRV9JTlRfRkVU
Q0goImtlcm4ubWF4ZmlsZXMiLCAmbWF4ZmlsZXMpOw0KLQltYXhwcm9jcGVy
dWlkID0gbWF4cHJvYyAtIDE7DQotCW1heGZpbGVzcGVycHJvYyA9IG1heGZp
bGVzOw0KLQ0KLQkvKiBDYW5ub3QgYmUgY2hhbmdlZCBhZnRlciBib290ICov
DQotCW5idWYgPSBOQlVGOw0KLQlUVU5BQkxFX0lOVF9GRVRDSCgia2Vybi5u
YnVmIiwgJm5idWYpOw0KICNpZmRlZiBWTV9TV1pPTkVfU0laRV9NQVgNCiAJ
bWF4c3d6b25lID0gVk1fU1daT05FX1NJWkVfTUFYOw0KICNlbmRpZg0KLQlU
VU5BQkxFX0lOVF9GRVRDSCgia2Vybi5tYXhzd3pvbmUiLCAmbWF4c3d6b25l
KTsNCiAjaWZkZWYgVk1fQkNBQ0hFX1NJWkVfTUFYDQogCW1heGJjYWNoZSA9
IFZNX0JDQUNIRV9TSVpFX01BWDsNCiAjZW5kaWYNCisNCisJLyogQ2FsY3Vs
YXRlIGF1dG9zY2FsZWQgdmFsdWVzLCBjaG9vc2UgdGhlbSBpZiBncmVhdGVy
IHRoYW4gYWJvdmUuICovDQorCWF1dG9wcm9jID0gbWluKE1BWEFVVE9QUk9D
LCBtYXgoTUlOQVVUT1BST0MsIFBST0NQRVJNQiAqIHBoeXNtZW1NQikpOw0K
KwltYXhwcm9jID0gbWF4KG1heHByb2MsIGF1dG9wcm9jKTsNCisJYXV0b2Zp
bGVzID0gbWluKE1BWEFVVE9GSUxFUywgbWF4KE1JTkFVVE9GSUxFUywgRklM
RVNQRVJNQiAqIHBoeXNtZW1NQikpOw0KKwltYXhmaWxlcyA9IG1heChtYXhm
aWxlcywgYXV0b2ZpbGVzKTsNCisNCisJLyogQWxsb3cgbG9hZGVyLXNwZWNp
ZmllZCB0dW5lYWJsZXMgdG8gdGFrZSBlZmZlY3QuICovDQorCVRVTkFCTEVf
SU5UX0ZFVENIKCJrZXJuLm1heHByb2MiLCAmbWF4cHJvYyk7DQorCVRVTkFC
TEVfSU5UX0ZFVENIKCJrZXJuLm1heGZpbGVzIiwgJm1heGZpbGVzKTsNCisJ
bWF4cHJvY3BlcnVpZCA9IChtYXhwcm9jICogOSkgLyAxMDsNCisJbWF4Zmls
ZXNwZXJwcm9jID0gKG1heGZpbGVzICogOSkgLyAxMDsNCisNCisJVFVOQUJM
RV9JTlRfRkVUQ0goImtlcm4ubmJ1ZiIsICZuYnVmKTsNCisJVFVOQUJMRV9J
TlRfRkVUQ0goImtlcm4ubWF4c3d6b25lIiwgJm1heHN3em9uZSk7DQogCVRV
TkFCTEVfSU5UX0ZFVENIKCJrZXJuLm1heGJjYWNoZSIsICZtYXhiY2FjaGUp
Ow0KIAluY2FsbG91dCA9IDE2ICsgbWF4cHJvYyArIG1heGZpbGVzOw0KIAlU
VU5BQkxFX0lOVF9GRVRDSCgia2Vybi5uY2FsbG91dCIsICZuY2FsbG91dCk7
DQpAQCAtMTM5LDQgKzE0NiwxNiBAQA0KIAlUVU5BQkxFX1FVQURfRkVUQ0go
Imtlcm4ubWF4c3NpeiIsICZtYXhzc2l6KTsNCiAJc2dyb3dzaXogPSBTR1JP
V1NJWjsNCiAJVFVOQUJMRV9RVUFEX0ZFVENIKCJrZXJuLnNncm93c2l6Iiwg
JnNncm93c2l6KTsNCit9DQorDQorLyoNCisgKiBTZXQgaHouICBUaGlzIG11
c3QgYmUgY2FsbGVkIGVhcmxpZXIgaW4gbWFjaGRlcC5jIHRoYW4gaW5pdF9w
YXJhbSgpLg0KKyAqLw0KK3ZvaWQNCitpbml0X2h6KHZvaWQpDQorew0KKwlo
eiA9IEhaOw0KKwlUVU5BQkxFX0lOVF9GRVRDSCgia2Vybi5oeiIsICZoeik7
DQorCXRpY2sgPSAxMDAwMDAwIC8gaHo7DQorCXRpY2thZGogPSBob3dtYW55
KDMwMDAwLCA2MCAqIGh6KTsJLyogY2FuIGFkanVzdCAzMG1zIGluIDYwcyAq
Lw0KIH0NCmRpZmYgLXUgLXIgc3lzLm9sZC9rZXJuL3VpcGNfc29ja2V0Mi5j
IHN5cy9rZXJuL3VpcGNfc29ja2V0Mi5jDQotLS0gc3lzLm9sZC9rZXJuL3Vp
cGNfc29ja2V0Mi5jCVNhdCBEZWMgIDggMTY6MDQ6NTAgMjAwMQ0KKysrIHN5
cy9rZXJuL3VpcGNfc29ja2V0Mi5jCVNhdCBEZWMgIDggMTY6MDg6NDMgMjAw
MQ0KQEAgLTEwMjYsNyArMTAyNiwxMiBAQA0KICAqLw0KIHN0YXRpYyB2b2lk
IGluaXRfbWF4c29ja2V0cyh2b2lkICppZ25vcmVkKQ0KIHsNCisJaW50IGF1
dG9zb2NrZXRzLCBtYXh1c2Vyc3NvY2tldHM7DQorCQ0KKwlhdXRvc29ja2V0
cyA9IHBoeXNtZW1NQiAqIFNPQ0tFVFNQRVJNQjsNCisJYXV0b3NvY2tldHMg
PSBtaW4oTUFYQVVUT1NPQ0tFVFMsIG1heChNSU5BVVRPU09DS0VUUywgYXV0
b3NvY2tldHMpKTsNCisJbWF4dXNlcnNzb2NrZXRzID0gMiAqICgyMCArICgx
NiAqIG1heHVzZXJzKSk7IA0KKwltYXhzb2NrZXRzID0gbWF4KG1heHVzZXJz
c29ja2V0cywgbWF4KGF1dG9zb2NrZXRzLCBubWJjbHVzdGVycykpOw0KIAlU
VU5BQkxFX0lOVF9GRVRDSCgia2Vybi5pcGMubWF4c29ja2V0cyIsICZtYXhz
b2NrZXRzKTsNCi0JbWF4c29ja2V0cyA9IGltYXgobWF4c29ja2V0cywgaW1h
eChtYXhmaWxlcywgbm1iY2x1c3RlcnMpKTsNCiB9DQogU1lTSU5JVChwYXJh
bSwgU0lfU1VCX1RVTkFCTEVTLCBTSV9PUkRFUl9BTlksIGluaXRfbWF4c29j
a2V0cywgTlVMTCk7DQpkaWZmIC11IC1yIHN5cy5vbGQvbmV0aW5ldC90Y3Bf
c3Vici5jIHN5cy9uZXRpbmV0L3RjcF9zdWJyLmMNCi0tLSBzeXMub2xkL25l
dGluZXQvdGNwX3N1YnIuYwlTYXQgRGVjICA4IDE2OjA0OjQyIDIwMDENCisr
KyBzeXMvbmV0aW5ldC90Y3Bfc3Vici5jCVNhdCBEZWMgIDggMTY6MTA6MzEg
MjAwMQ0KQEAgLTE5MCw2ICsxOTAsNyBAQA0KIHRjcF9pbml0KCkNCiB7DQog
CWludCBoYXNoc2l6ZSA9IFRDQkhBU0hTSVpFOw0KKwlpbnQgYXV0b2hhc2hz
aXplOw0KIAkNCiAJdGNwX2NjZ2VuID0gMTsNCiAJdGNwX2NsZWFydGFvY2Fj
aGUoKTsNCkBAIC0yMDMsNiArMjA0LDEzIEBADQogDQogCUxJU1RfSU5JVCgm
dGNiKTsNCiAJdGNiaW5mby5saXN0aGVhZCA9ICZ0Y2I7DQorDQorCS8qIENh
bGN1bGF0ZSBhdXRvc2NhbGVkIGhhc2ggc2l6ZSwgdXNlIGlmID4gZGVmYXVs
dCBoYXNoIHNpemUuICovDQorCWF1dG9oYXNoc2l6ZSA9IHBoeXNtZW1NQiAq
IFRDQkhBU0hQRVJNQjsNCisJYXV0b2hhc2hzaXplID0gbWluKE1BWEFVVE9U
Q0JIQVNILCBtYXgoTUlOQVVUT1RDQkhBU0gsIGF1dG9oYXNoc2l6ZSkpOw0K
Kwl3aGlsZSAoIXBvd2Vyb2YyKGF1dG9oYXNoc2l6ZSkpDQorCQlhdXRvaGFz
aHNpemUrKzsNCisJaGFzaHNpemUgPSBtYXgoaGFzaHNpemUsIGF1dG9oYXNo
c2l6ZSk7DQogCVRVTkFCTEVfSU5UX0ZFVENIKCJuZXQuaW5ldC50Y3AudGNi
aGFzaHNpemUiLCAmaGFzaHNpemUpOw0KIAlpZiAoIXBvd2Vyb2YyKGhhc2hz
aXplKSkgew0KIAkJcHJpbnRmKCJXQVJOSU5HOiBUQ0IgaGFzaCBzaXplIG5v
dCBhIHBvd2VyIG9mIDJcbiIpOw0KZGlmZiAtdSAtciBzeXMub2xkL3Bvd2Vy
cGMvcG93ZXJwYy9tYWNoZGVwLmMgc3lzL3Bvd2VycGMvcG93ZXJwYy9tYWNo
ZGVwLmMNCi0tLSBzeXMub2xkL3Bvd2VycGMvcG93ZXJwYy9tYWNoZGVwLmMJ
U2F0IERlYyAgOCAxNjowNDozOSAyMDAxDQorKysgc3lzL3Bvd2VycGMvcG93
ZXJwYy9tYWNoZGVwLmMJU2F0IERlYyAgOCAxNjo0ODozMCAyMDAxDQpAQCAt
NDM2LDcgKzQzNiw4IEBADQogCV9fYXNtICgibXRzcHJnIDAsICUwIiA6OiAi
ciIoZ2xvYmFscCkpOw0KIA0KIAkvKiBJbml0IGJhc2ljIHR1bmFibGVzLCBo
eiBldGMgKi8NCi0JaW5pdF9wYXJhbSgpOw0KKwlpbml0X2h6KCk7DQorCWlu
aXRfcGFyYW0oMCk7IC8qIFhYWCAtIG5lZWRzIHRvIGJlIGZlZCBwaHlzbWVt
IGZvciBwcm9wZXIgYXV0b3NjYWxpbmcgKi8NCiANCiAJLyogc2V0dXAgY3Vy
cHJvYyBzbyB0aGUgbXV0ZXhlcyB3b3JrICovDQogDQpkaWZmIC11IC1yIHN5
cy5vbGQvc3BhcmM2NC9zcGFyYzY0L21hY2hkZXAuYyBzeXMvc3BhcmM2NC9z
cGFyYzY0L21hY2hkZXAuYw0KLS0tIHN5cy5vbGQvc3BhcmM2NC9zcGFyYzY0
L21hY2hkZXAuYwlTYXQgRGVjICA4IDE2OjA0OjM4IDIwMDENCisrKyBzeXMv
c3BhcmM2NC9zcGFyYzY0L21hY2hkZXAuYwlTYXQgRGVjICA4IDE2OjQ3OjI5
IDIwMDENCkBAIC0yNDksMTAgKzI0OSwxMCBAQA0KIAkJZW5kID0gKHZtX29m
ZnNldF90KV9lbmQ7DQogCX0NCiANCi0JLyoNCi0JICogSW5pdGlhbGl6ZSB0
dW5hYmxlcy4NCi0JICovDQotCWluaXRfcGFyYW0oKTsNCisJLyogSW5pdCBo
eiAqLw0KKwlpbml0X2h6KCk7DQorCS8qIEluaXQgYmFzaWMgdHVuZWFibGVz
IC0gWFhYIC0gdGhpcyBuZWVkcyB0byBiZSBtb3ZlZCBvbmNlIG1heG1lbSBl
eGlzdHMgaGVyZS4gKi8NCisJaW5pdF9wYXJhbSgwKTsNCiANCiAjaWZkZWYg
RERCDQogCWtkYl9pbml0KCk7DQpkaWZmIC11IC1yIHN5cy5vbGQvc3lzL3Bh
cmFtLmggc3lzL3N5cy9wYXJhbS5oDQotLS0gc3lzLm9sZC9zeXMvcGFyYW0u
aAlTYXQgRGVjICA4IDE2OjA0OjM3IDIwMDENCisrKyBzeXMvc3lzL3BhcmFt
LmgJU2F0IERlYyAgOCAxNjowNToyOCAyMDAxDQpAQCAtMjMwLDYgKzIzMCw0
NCBAQA0KICNkZWZpbmUgY3RvZGIoZGIpCQkJLyogY2FsY3VsYXRlcyBwYWdl
cyB0byBkZXZibGtzICovIFwNCiAJKChkYikgPDwgKFBBR0VfU0hJRlQgLSBE
RVZfQlNISUZUKSkNCiANCisvKg0KKyAqIFZhbHVlcyB1c2VkIGluIGF1dG9z
Y2FsaW5nIHN5c3RlbSBzdHJ1Y3R1cmVzIGJhc2VkIG9uIFJBTSBzaXplLg0K
KyAqDQorICogQWx0aG91Z2ggc2V0dGluZ3MgYXJlIHNjYXR0ZXJlZCBhY3Jv
c3MgdmFyaW91cyBzdWJzeXN0ZW1zLCBhDQorICogY29tbW9uIGZvcm11bGEg
aXMgZm9sbG93ZWQuICBHZW5lcmFsbHksIHRoZXJlIGFyZSB0aHJlZQ0KKyAq
IHBvc3NpYmxlIHZhbHVlcyB0byBjaG9vc2UgZnJvbTogIFRoZSB2YWx1ZSBz
dWdnZXN0ZWQgYnkgbWF4dXNlcnMsDQorICogdGhlIHZhbHVlIHN1Z2dlc3Rl
ZCBieSB0aGUgYXV0b3NjYWxpbmcgZm9ybXVsYSwgYW5kIGEgbWFudWFsbHkN
CisgKiB0dW5lZCB2YWx1ZSBmcm9tIGxvYWRlci5jb25mLiAgSWYgYSBtYW51
YWxseSB0dW5lZCB2YWx1ZSBpcyBzcGVjaWZpZWQsDQorICogdGhpcyB2YWx1
ZSB3aWxsIGJlIHVzZWQuICBPdGhlcndpc2UsIHRoZSBtYXhpbXVtIG9mIHRo
ZSBtYXh1c2Vycw0KKyAqIGFuZCBhdXRvc2NhbGVkIHNldHRpbmcgd2lsbCBi
ZSB1c2VkLg0KKyAqDQorICovDQorDQorLyogTWF4IHByb2Nlc3NlcywgZmls
ZXMuICBUaGVzZSBhcmUgc2V0IGluIHN1YnJfcGFyYW0uYyAqLw0KKyNkZWZp
bmUgUFJPQ1BFUk1CIDE2DQorI2RlZmluZSBNSU5BVVRPUFJPQyAyNTYNCisj
ZGVmaW5lIE1BWEFVVE9QUk9DIDMyMDAwDQorI2RlZmluZSBGSUxFU1BFUk1C
IDEyOA0KKyNkZWZpbmUgTUlOQVVUT0ZJTEVTIDEwMjQNCisjZGVmaW5lIE1B
WEFVVE9GSUxFUyA2NTUzNg0KKw0KKy8qIE1heCBzb2NrZXRzLiAgVGhlc2Ug
YXJlIHNldCBpbiB1aXBjX3NvY2tldDIuYyAqLw0KKyNkZWZpbmUgU09DS0VU
U1BFUk1CIDY0DQorI2RlZmluZSBNSU5BVVRPU09DS0VUUyA1MTINCisjZGVm
aW5lIE1BWEFVVE9TT0NLRVRTIDMyMDAwDQorDQorLyogTWF4IG1idWYgY2x1
c3RlcnMsIHNlbmRmaWxlIGJ1ZmZlcnMuICBUaGVzZSBhcmUgc2V0IGluIHN1
YnJfbWJ1Zi5jICovDQorI2RlZmluZSBNQ0xTUEVSTUIgMzINCisjZGVmaW5l
IE1JTkFVVE9NQ0xTIDUxMg0KKyNkZWZpbmUgTUFYQVVUT01DTFMgMzIwMDAN
CisjZGVmaW5lIFNGQlVGUEVSTUIgMTYNCisjZGVmaW5lIE1JTkFVVE9TRkJV
RiAxMDI0DQorI2RlZmluZSBNQVhBVVRPU0ZCVUYgMzIwMDANCisNCisvKiBO
dW1iZXIgb2YgVENQIGhhc2ggYnVja2V0cy4gIFRoZXNlIGFyZSBzZXQgaW4g
dGNwX3N1YnIuYyAqLw0KKyNkZWZpbmUgVENCSEFTSFBFUk1CIDgNCisjZGVm
aW5lIE1JTkFVVE9UQ0JIQVNIIDUxMg0KKyNkZWZpbmUgTUFYQVVUT1RDQkhB
U0ggODE5Mg0KIA0KIC8qDQogICogTWFrZSB0aGlzIGF2YWlsYWJsZSBmb3Ig
bW9zdCBvZiB0aGUga2VybmVsLiAgVGhlcmUgd2VyZSB0b28gbWFueQ0KZGlm
ZiAtdSAtciBzeXMub2xkL3N5cy9zeXN0bS5oIHN5cy9zeXMvc3lzdG0uaA0K
LS0tIHN5cy5vbGQvc3lzL3N5c3RtLmgJU2F0IERlYyAgOCAxNjowNDozNyAy
MDAxDQorKysgc3lzL3N5cy9zeXN0bS5oCVNhdCBEZWMgIDggMTY6MDc6NDUg
MjAwMQ0KQEAgLTYwLDYgKzYwLDcgQEANCiBleHRlcm4gc3RydWN0IGN2IHNl
bHdhaXQ7CS8qIHNlbGVjdCBjb25kaXRpb25hbCB2YXJpYWJsZSAqLw0KIA0K
IGV4dGVybiBpbnQgcGh5c21lbTsJCS8qIHBoeXNpY2FsIG1lbW9yeSAqLw0K
K2V4dGVybiBpbnQgcGh5c21lbU1COwkJLyogcGh5c2ljYWwgbWVtb3J5IHNp
emUgaW4gbWVnYWJ5dGVzICovDQogDQogZXh0ZXJuIGRldl90IGR1bXBkZXY7
CQkvKiBkdW1wIGRldmljZSAqLw0KIGV4dGVybiBsb25nIGR1bXBsbzsJCS8q
IG9mZnNldCBpbnRvIGR1bXBkZXYgKi8NCkBAIC0xMjEsNyArMTIyLDggQEAN
CiANCiB2b2lkCWNwdV9ib290IF9fUCgoaW50KSk7DQogdm9pZAljcHVfcm9v
dGNvbmYgX19QKCh2b2lkKSk7DQotdm9pZAlpbml0X3BhcmFtIF9fUCgodm9p
ZCkpOw0KK3ZvaWQJaW5pdF9oeiBfX1AoKHZvaWQpKTsNCit2b2lkCWluaXRf
cGFyYW0gX19QKCh1X2ludDY0X3QpKTsNCiB2b2lkCXRhYmxlZnVsbCBfX1Ao
KGNvbnN0IGNoYXIgKikpOw0KIGludAlrdnByaW50ZiBfX1AoKGNoYXIgY29u
c3QgKiwgdm9pZCAoKikoaW50LCB2b2lkKiksIHZvaWQgKiwgaW50LA0KIAkJ
ICAgICAgX0JTRF9WQV9MSVNUXykpIF9fcHJpbnRmbGlrZSgxLCAwKTsNCg==
--0-1639610200-1007852484=:98646--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




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