Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 1 May 2010 04:46:50 +0530
From:      "C. Jayachandran" <c.jayachandran@gmail.com>
To:        freebsd-mips@freebsd.org, Randall Stewart <rrs@lakerest.net>
Subject:   Re: Alternate scheme for page table page allocation
Message-ID:  <m2m98a59be81004301616nd3f1b6b0yc0db67ad93a870f7@mail.gmail.com>
In-Reply-To: <t2m98a59be81004300404x408e4b7fx8eea156061153b30@mail.gmail.com>
References:  <t2m98a59be81004300404x408e4b7fx8eea156061153b30@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--001636b2ac73204f5704857c70c3
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Here's a version which will apply on HEAD (also at
http://sites.google.com/site/cjayachandran/files).

Regards,
JC.

On Fri, Apr 30, 2010 at 4:34 PM, C. Jayachandran
<c.jayachandran@gmail.com> wrote:
> I was looking at a hang I get during 'make -j32 buildworld' on XLR
> SMP, and as far as I can see, it is caused by the way page table pages
> are allocated when we have >512MB memory.
>
> The attached patch
> (http://sites.google.com/site/cjayachandran/files//pmap-page-alloc.patch)
> changes the way pages for the PTE/PDE entries are allocated in systems
> with >512M. This scheme uses vm_phys_alloc_contig to allocate page
> table pages KSEG0 region and =A0has a UMA zone to cache them. This will
> allow us to avoid multi-TLB misses that happen when we access page
> table entires in the TLB miss handler. I think a similar approach can
> be taken to allocate 8K page-pairs for N32(for >4GB RAM) and N64.
>
> With this patch, 'make -j32 buildworld' consistently works with 32
> cpus =A0on an XLR is booted SMP with 4GB RAM. =A0With the current page
> alloc code, I get a hang about an hour into buildworld.
>
> The patch is based off r206712 - I still have not found a fix for the
> crashes I see in versions after that. Please let me know your
> comments, =A0especially if you can think of a better way of doing this.
> I can make a version of this patch for HEAD if this is acceptable.
>
> JC.

--001636b2ac73204f5704857c70c3
Content-Type: application/octet-stream; name="pmap-page-alloc-HEAD.patch"
Content-Disposition: attachment; filename="pmap-page-alloc-HEAD.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g8nmgnva1

SW5kZXg6IHN5cy9taXBzL21pcHMvcG1hcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL21pcHMv
cG1hcC5jCShyZXZpc2lvbiAyMDc0NTEpCisrKyBzeXMvbWlwcy9taXBzL3BtYXAuYwkod29ya2lu
ZyBjb3B5KQpAQCAtODAsNiArODAsNyBAQAogCiAjaW5jbHVkZSA8dm0vdm0uaD4KICNpbmNsdWRl
IDx2bS92bV9wYXJhbS5oPgorI2luY2x1ZGUgPHZtL3ZtX3BoeXMuaD4KICNpbmNsdWRlIDxzeXMv
bG9jay5oPgogI2luY2x1ZGUgPHN5cy9tdXRleC5oPgogI2luY2x1ZGUgPHZtL3ZtX2tlcm4uaD4K
QEAgLTEwOSw2ICsxMTAsMTAgQEAKICNkZWZpbmUJUE1BUF9TSFBHUEVSUFJPQyAyMDAKICNlbmRp
ZgogCisjaWYgZGVmaW5lZChUQVJHRVRfWExSX1hMUykKKyNkZWZpbmUgSElHSE1FTV9TVVBQT1JU
CisjZW5kaWYKKwogI2lmICFkZWZpbmVkKFBNQVBfRElBR05PU1RJQykKICNkZWZpbmUJUE1BUF9J
TkxJTkUgX19pbmxpbmUKICNlbHNlCkBAIC0xODMsMTIgKzE4OCwxOCBAQAogc3RhdGljIGludCBp
bml0X3B0ZV9wcm90KHZtX29mZnNldF90IHZhLCB2bV9wYWdlX3QgbSwgdm1fcHJvdF90IHByb3Qp
Owogc3RhdGljIHZvaWQgcG1hcF9UTEJfaW52YWxpZGF0ZV9rZXJuZWwodm1fb2Zmc2V0X3QpOwog
c3RhdGljIHZvaWQgcG1hcF9UTEJfdXBkYXRlX2tlcm5lbCh2bV9vZmZzZXRfdCwgcHRfZW50cnlf
dCk7CitzdGF0aWMgdm1fcGFnZV90IHBtYXBfYWxsb2NfcHRlX3BhZ2UocG1hcF90LCB1bnNpZ25l
ZCBpbnQsIGludCwgdm1fb2Zmc2V0X3QgKik7CitzdGF0aWMgdm9pZCBwbWFwX3JlbGVhc2VfcHRl
X3BhZ2Uodm1fcGFnZV90KTsKIAogI2lmZGVmIFNNUAogc3RhdGljIHZvaWQgcG1hcF9pbnZhbGlk
YXRlX3BhZ2VfYWN0aW9uKHZvaWQgKmFyZyk7CiBzdGF0aWMgdm9pZCBwbWFwX2ludmFsaWRhdGVf
YWxsX2FjdGlvbih2b2lkICphcmcpOwogc3RhdGljIHZvaWQgcG1hcF91cGRhdGVfcGFnZV9hY3Rp
b24odm9pZCAqYXJnKTsKKyNlbmRpZgogCisjaWZkZWYgSElHSE1FTV9TVVBQT1JUCitzdGF0aWMg
dm9pZCAqIHBtYXBfcHRwZ3pvbmVfYWxsb2NmKHVtYV96b25lX3QsIGludCwgdV9pbnQ4X3QqLCBp
bnQpOworc3RhdGljIHVtYV96b25lX3QgcHRwZ3pvbmU7CiAjZW5kaWYKIAogc3RydWN0IGxvY2Fs
X3N5c21hcHMgewpAQCAtNTMwLDYgKzU0MSwxMiBAQAogCXB2X2VudHJ5X21heCA9IFBNQVBfU0hQ
R1BFUlBST0MgKiBtYXhwcm9jICsgY250LnZfcGFnZV9jb3VudDsKIAlwdl9lbnRyeV9oaWdoX3dh
dGVyID0gOSAqIChwdl9lbnRyeV9tYXggLyAxMCk7CiAJdW1hX3pvbmVfc2V0X29iaihwdnpvbmUs
ICZwdnpvbmVfb2JqLCBwdl9lbnRyeV9tYXgpOworCisjaWZkZWYgSElHSE1FTV9TVVBQT1JUCisJ
cHRwZ3pvbmUgPSB1bWFfemNyZWF0ZSgiUFQgRU5UUlkiLCBQQUdFX1NJWkUsIE5VTEwsCisJICAg
IE5VTEwsIE5VTEwsIE5VTEwsIFBBR0VfU0laRS0xLCBVTUFfWk9ORV9OT0ZSRUUpOworCXVtYV96
b25lX3NldF9hbGxvY2YocHRwZ3pvbmUsIHBtYXBfcHRwZ3pvbmVfYWxsb2NmKTsKKyNlbmRpZgog
fQogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
CkBAIC04ODcsNyArOTA0LDcgQEAKIAkvKgogCSAqIElmIHRoZSBwYWdlIGlzIGZpbmFsbHkgdW53
aXJlZCwgc2ltcGx5IGZyZWUgaXQuCiAJICovCi0Jdm1fcGFnZV9mcmVlX3plcm8obSk7CisJcG1h
cF9yZWxlYXNlX3B0ZV9wYWdlKG0pOwogCWF0b21pY19zdWJ0cmFjdF9pbnQoJmNudC52X3dpcmVf
Y291bnQsIDEpOwogCXJldHVybiAoMSk7CiB9CkBAIC05NDcsNiArOTY0LDExOCBAQAogCWJ6ZXJv
KCZwbWFwLT5wbV9zdGF0cywgc2l6ZW9mIHBtYXAtPnBtX3N0YXRzKTsKIH0KIAorI2lmZGVmIEhJ
R0hNRU1fU1VQUE9SVAorc3RhdGljIHZvaWQgKgorcG1hcF9wdHBnem9uZV9hbGxvY2YodW1hX3pv
bmVfdCB6b25lLCBpbnQgYnl0ZXMsIHVfaW50OF90ICpmbGFncywgaW50IHdhaXQpCit7CisJdm1f
cGFnZV90IG07CisJdm1fcGFkZHJfdCBwYWRkcjsKKworCSpmbGFncyA9IFVNQV9TTEFCX1BSSVY7
CisJbSA9IHZtX3BoeXNfYWxsb2NfY29udGlnKDEsIDAsIE1JUFNfS1NFRzBfTEFSR0VTVF9QSFlT
LAorCSAgICAgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCWlmIChtID09IE5VTEwpCisJCXJldHVy
biAoTlVMTCk7CisKKwlwYWRkciA9IFZNX1BBR0VfVE9fUEhZUyhtKTsKKwlyZXR1cm4gKCh2b2lk
ICopTUlQU19QSFlTX1RPX0tTRUcwKHBhZGRyKSk7Cit9CQorCitzdGF0aWMgdm1fcGFnZV90Citw
bWFwX2FsbG9jX3B0ZV9wYWdlKHBtYXBfdCBwbWFwLCB1bnNpZ25lZCBpbnQgaW5kZXgsIGludCB3
YWl0LCB2bV9vZmZzZXRfdCAqdmFwKQoreworCXZtX3BhZGRyX3QgcGFkZHI7CisJdm9pZCAqdmE7
CisJdm1fcGFnZV90IG07CisJaW50IGxvY2tlZDsKKworCWxvY2tlZCA9IG10eF9vd25lZCgmcG1h
cC0+cG1fbXR4KTsKKwlpZiAobG9ja2VkKSB7CisJCW10eF9hc3NlcnQoJnZtX3BhZ2VfcXVldWVf
bXR4LCBNQV9PV05FRCk7CisJCVBNQVBfVU5MT0NLKHBtYXApOworCQl2bV9wYWdlX3VubG9ja19x
dWV1ZXMoKTsKKwl9CisJdmEgPSB1bWFfemFsbG9jKHB0cGd6b25lLCB3YWl0KTsKKwlpZiAobG9j
a2VkKSB7CisJCXZtX3BhZ2VfbG9ja19xdWV1ZXMoKTsKKwkJUE1BUF9MT0NLKHBtYXApOworCX0K
KwlpZiAodmEgPT0gTlVMTCkKKwkJcmV0dXJuIChOVUxMKTsKKworCXBhZGRyID0gTUlQU19LU0VH
MF9UT19QSFlTKHZhKTsKKwltID0gUEhZU19UT19WTV9QQUdFKHBhZGRyKTsKKwkKKwlpZiAoKG0t
PmZsYWdzICYgUEdfWkVSTykgPT0gMCkKKwkJYnplcm8odmEsIFBBR0VfU0laRSk7CisJbS0+cGlu
ZGV4ID0gaW5kZXg7CisJbS0+dmFsaWQgPSBWTV9QQUdFX0JJVFNfQUxMOworCW0tPndpcmVfY291
bnQgPSAxOworCWF0b21pY19hZGRfaW50KCZjbnQudl93aXJlX2NvdW50LCAxKTsKKwkqdmFwID0g
KHZtX29mZnNldF90KXZhOworCXJldHVybiAobSk7Cit9CisKK3N0YXRpYyB2b2lkCitwbWFwX3Jl
bGVhc2VfcHRlX3BhZ2Uodm1fcGFnZV90IG0pCit7CisJdm9pZCAqdmE7CisJdm1fcGFkZHJfdCBw
YWRkcjsKKworCXBhZGRyID0gVk1fUEFHRV9UT19QSFlTKG0pOworCXZhID0gKHZvaWQgKilNSVBT
X1BIWVNfVE9fS1NFRzAocGFkZHIpOworCXVtYV96ZnJlZShwdHBnem9uZSwgdmEpOworfQorI2Vs
c2UKK3N0YXRpYyB2bV9wYWdlX3QKK3BtYXBfYWxsb2NfcHRlX3BhZ2UocG1hcF90IHBtYXAsIHVu
c2lnbmVkIGludCBpbmRleCwgaW50IHdhaXQsIHZtX29mZnNldF90ICp2YXApCit7CisJdm1fb2Zm
c2V0X3QgdmE7CisJdm1fcGFnZV90IG07CisJaW50IGxvY2tlZCwgcmVxOworCisJbG9ja2VkID0g
bXR4X293bmVkKCZwbWFwLT5wbV9tdHgpOworCXJlcSA9IFZNX0FMTE9DX1dJUkVEIHwgVk1fQUxM
T0NfTk9PQko7CisJaWYgKHdhaXQgJiBNX1dBSVRPSykKKwkJcmVxIHw9IFZNX0FMTE9DX05PUk1B
TDsKKwllbHNlCisJCXJlcSB8PSBWTV9BTExPQ19JTlRFUlJVUFQ7CisKKwltID0gdm1fcGFnZV9h
bGxvYyhOVUxMLCBpbmRleCwgcmVxKTsKKwlpZiAobSA9PSBOVUxMKSB7CisJCWlmICh3YWl0ICYg
TV9XQUlUT0spIHsKKwkJCWlmIChsb2NrZWQpIHsKKwkJCQltdHhfYXNzZXJ0KCZ2bV9wYWdlX3F1
ZXVlX210eCwgTUFfT1dORUQpOworCQkJCVBNQVBfVU5MT0NLKHBtYXApOworCQkJCXZtX3BhZ2Vf
dW5sb2NrX3F1ZXVlcygpOworCQkJfQorCQkJVk1fV0FJVDsKKwkJCWlmIChsb2NrZWQpIHsKKwkJ
CQl2bV9wYWdlX2xvY2tfcXVldWVzKCk7CisJCQkJUE1BUF9MT0NLKHBtYXApOworCQkJfQorCQl9
CisJCXJldHVybiBOVUxMOworCX0KKwkKKwl2YSA9IE1JUFNfUEhZU19UT19LU0VHMChWTV9QQUdF
X1RPX1BIWVMobSkpOworCWlmICgobS0+ZmxhZ3MgJiBQR19aRVJPKSA9PSAwKQorCQliemVybygo
dm9pZCAqKXZhLCBQQUdFX1NJWkUpOworCWVsc2UKKwkJdm1fcGFnZV9mbGFnX2NsZWFyKG0sIFBH
X1pFUk8pOworCQorCW0tPnZhbGlkID0gVk1fUEFHRV9CSVRTX0FMTDsKKwkqdmFwID0gKHZtX29m
ZnNldF90KXZhOworCXJldHVybiAobSk7Cit9CisKK3N0YXRpYyB2b2lkCitwbWFwX3JlbGVhc2Vf
cHRlX3BhZ2Uodm1fcGFnZV90IG0pCit7CisJdm1fcGFnZV9mcmVlKG0pOworfQorI2VuZGlmCisK
IC8qCiAgKiBJbml0aWFsaXplIGEgcHJlYWxsb2NhdGVkIGFuZCB6ZXJvZWQgcG1hcCBzdHJ1Y3R1
cmUsCiAgKiBzdWNoIGFzIG9uZSBpbiBhIHZtc3BhY2Ugc3RydWN0dXJlLgpAQCAtOTU1LDM3ICsx
MDg0LDE2IEBACiBwbWFwX3Bpbml0KHBtYXBfdCBwbWFwKQogewogCXZtX29mZnNldF90IHB0ZHZh
OwotCXZtX3BhZGRyX3QgcHRkcGE7CiAJdm1fcGFnZV90IHB0ZHBnOwogCWludCBpOwotCWludCBy
ZXE7CiAKIAlQTUFQX0xPQ0tfSU5JVChwbWFwKTsKIAotCXJlcSA9IFZNX0FMTE9DX05PT0JKIHwg
Vk1fQUxMT0NfTk9STUFMIHwgVk1fQUxMT0NfV0lSRUQgfAotCSAgICBWTV9BTExPQ19aRVJPOwot
CiAJLyoKIAkgKiBhbGxvY2F0ZSB0aGUgcGFnZSBkaXJlY3RvcnkgcGFnZQogCSAqLwotCXdoaWxl
ICgocHRkcGcgPSB2bV9wYWdlX2FsbG9jKE5VTEwsIE5VU0VSUEdUQkxTLCByZXEpKSA9PSBOVUxM
KQotCQlWTV9XQUlUOwotCi0JcHRkcGctPnZhbGlkID0gVk1fUEFHRV9CSVRTX0FMTDsKLQotCXB0
ZHBhID0gVk1fUEFHRV9UT19QSFlTKHB0ZHBnKTsKLQlpZiAocHRkcGEgPCBNSVBTX0tTRUcwX0xB
UkdFU1RfUEhZUykgewotCQlwdGR2YSA9IE1JUFNfUEhZU19UT19LU0VHMChwdGRwYSk7Ci0JfSBl
bHNlIHsKLQkJcHRkdmEgPSBrbWVtX2FsbG9jX25vZmF1bHQoa2VybmVsX21hcCwgUEFHRV9TSVpF
KTsKLQkJaWYgKHB0ZHZhID09IDApCi0JCQlwYW5pYygicG1hcF9waW5pdDogdW5hYmxlIHRvIGFs
bG9jYXRlIGt2YSIpOwotCQlwbWFwX2tlbnRlcihwdGR2YSwgcHRkcGEpOwotCX0KLQorCXB0ZHBn
ID0gcG1hcF9hbGxvY19wdGVfcGFnZShwbWFwLCBOVVNFUlBHVEJMUywgTV9XQUlUT0ssICZwdGR2
YSk7CiAJcG1hcC0+cG1fc2VndGFiID0gKHBkX2VudHJ5X3QgKilwdGR2YTsKLQlpZiAoKHB0ZHBn
LT5mbGFncyAmIFBHX1pFUk8pID09IDApCi0JCWJ6ZXJvKHBtYXAtPnBtX3NlZ3RhYiwgUEFHRV9T
SVpFKTsKIAogCXBtYXAtPnBtX2FjdGl2ZSA9IDA7CiAJcG1hcC0+cG1fcHRwaGludCA9IE5VTEw7
CkBAIC0xMDA2LDcgKzExMTQsNyBAQAogc3RhdGljIHZtX3BhZ2VfdAogX3BtYXBfYWxsb2NwdGUo
cG1hcF90IHBtYXAsIHVuc2lnbmVkIHB0ZXBpbmRleCwgaW50IGZsYWdzKQogewotCXZtX29mZnNl
dF90IHB0ZXZhLCBwdGVwYTsKKwl2bV9vZmZzZXRfdCBwdGV2YTsKIAl2bV9wYWdlX3QgbTsKIAlp
bnQgcmVxOwogCkBAIC0xMDE4LDYwICsxMTI2LDIyIEBACiAJLyoKIAkgKiBGaW5kIG9yIGZhYnJp
Y2F0ZSBhIG5ldyBwYWdldGFibGUgcGFnZQogCSAqLwotCWlmICgobSA9IHZtX3BhZ2VfYWxsb2Mo
TlVMTCwgcHRlcGluZGV4LCByZXEpKSA9PSBOVUxMKSB7Ci0JCWlmIChmbGFncyAmIE1fV0FJVE9L
KSB7Ci0JCQlQTUFQX1VOTE9DSyhwbWFwKTsKLQkJCXZtX3BhZ2VfdW5sb2NrX3F1ZXVlcygpOwot
CQkJVk1fV0FJVDsKLQkJCXZtX3BhZ2VfbG9ja19xdWV1ZXMoKTsKLQkJCVBNQVBfTE9DSyhwbWFw
KTsKLQkJfQotCQkvKgotCQkgKiBJbmRpY2F0ZSB0aGUgbmVlZCB0byByZXRyeS4JV2hpbGUgd2Fp
dGluZywgdGhlIHBhZ2UKLQkJICogdGFibGUgcGFnZSBtYXkgaGF2ZSBiZWVuIGFsbG9jYXRlZC4K
LQkJICovCisJbSA9IHBtYXBfYWxsb2NfcHRlX3BhZ2UocG1hcCwgcHRlcGluZGV4LCBmbGFncywg
JnB0ZXZhKTsKKwlpZiAobSA9PSBOVUxMKQogCQlyZXR1cm4gKE5VTEwpOwotCX0KLQlpZiAoKG0t
PmZsYWdzICYgUEdfWkVSTykgPT0gMCkKLQkJcG1hcF96ZXJvX3BhZ2UobSk7CiAKLQlLQVNTRVJU
KG0tPnF1ZXVlID09IFBRX05PTkUsCi0JICAgICgiX3BtYXBfYWxsb2NwdGU6ICVwLT5xdWV1ZSAh
PSBQUV9OT05FIiwgbSkpOwotCiAJLyoKIAkgKiBNYXAgdGhlIHBhZ2V0YWJsZSBwYWdlIGludG8g
dGhlIHByb2Nlc3MgYWRkcmVzcyBzcGFjZSwgaWYgaXQKIAkgKiBpc24ndCBhbHJlYWR5IHRoZXJl
LgogCSAqLwogCiAJcG1hcC0+cG1fc3RhdHMucmVzaWRlbnRfY291bnQrKzsKLQotCXB0ZXBhID0g
Vk1fUEFHRV9UT19QSFlTKG0pOwotCWlmIChwdGVwYSA8IE1JUFNfS1NFRzBfTEFSR0VTVF9QSFlT
KSB7Ci0JCXB0ZXZhID0gTUlQU19QSFlTX1RPX0tTRUcwKHB0ZXBhKTsKLQl9IGVsc2UgewotCQlw
dGV2YSA9IGttZW1fYWxsb2Nfbm9mYXVsdChrZXJuZWxfbWFwLCBQQUdFX1NJWkUpOwotCQlpZiAo
cHRldmEgPT0gMCkKLQkJCXBhbmljKCJfcG1hcF9hbGxvY3B0ZTogdW5hYmxlIHRvIGFsbG9jYXRl
IGt2YSIpOwotCQlwbWFwX2tlbnRlcihwdGV2YSwgcHRlcGEpOwotCX0KLQogCXBtYXAtPnBtX3Nl
Z3RhYltwdGVwaW5kZXhdID0gKHBkX2VudHJ5X3QpcHRldmE7CiAKIAkvKgogCSAqIFNldCB0aGUg
cGFnZSB0YWJsZSBoaW50CiAJICovCiAJcG1hcC0+cG1fcHRwaGludCA9IG07Ci0KLQkvKgotCSAq
IEtlcm5lbCBwYWdlIHRhYmxlcyBhcmUgYWxsb2NhdGVkIGluIHBtYXBfYm9vdHN0cmFwKCkgb3IK
LQkgKiBwbWFwX2dyb3drZXJuZWwoKS4KLQkgKi8KLQlpZiAoaXNfa2VybmVsX3BtYXAocG1hcCkp
Ci0JCXBhbmljKCJfcG1hcF9hbGxvY3B0ZSgpIGNhbGxlZCBmb3Iga2VybmVsIHBtYXBcbiIpOwot
Ci0JbS0+dmFsaWQgPSBWTV9QQUdFX0JJVFNfQUxMOwotCXZtX3BhZ2VfZmxhZ19jbGVhcihtLCBQ
R19aRVJPKTsKLQogCXJldHVybiAobSk7CiB9CiAKQEAgLTExNTgsMTcgKzEyMjgsMTIgQEAKIAlw
dGR2YSA9ICh2bV9vZmZzZXRfdClwbWFwLT5wbV9zZWd0YWI7CiAJcHRkcGcgPSBQSFlTX1RPX1ZN
X1BBR0UodnRvcGh5cyhwdGR2YSkpOwogCi0JaWYgKHB0ZHZhID49IFZNX01JTl9LRVJORUxfQURE
UkVTUykgewotCQlwbWFwX2tyZW1vdmUocHRkdmEpOwotCQlrbWVtX2ZyZWUoa2VybmVsX21hcCwg
cHRkdmEsIFBBR0VfU0laRSk7Ci0JfSBlbHNlIHsKLQkJS0FTU0VSVChNSVBTX0lTX0tTRUcwX0FE
RFIocHRkdmEpLAotCQkgICAgKCJwbWFwX3JlbGVhc2U6IDB4JTBseCBpcyBub3QgaW4ga3NlZzAi
LCAobG9uZylwdGR2YSkpOwotCX0KKwlLQVNTRVJUKE1JUFNfSVNfS1NFRzBfQUREUihwdGR2YSks
CisJICAgICgicG1hcF9yZWxlYXNlOiAweCUwbHggaXMgbm90IGluIGtzZWcwIiwgKGxvbmcpcHRk
dmEpKTsKIAogCXB0ZHBnLT53aXJlX2NvdW50LS07CiAJYXRvbWljX3N1YnRyYWN0X2ludCgmY250
LnZfd2lyZV9jb3VudCwgMSk7Ci0Jdm1fcGFnZV9mcmVlX3plcm8ocHRkcGcpOworCXBtYXBfcmVs
ZWFzZV9wdGVfcGFnZShwdGRwZyk7CiAJUE1BUF9MT0NLX0RFU1RST1kocG1hcCk7CiB9CiAKQEAg
LTExNzgsMTAgKzEyNDMsMTAgQEAKIHZvaWQKIHBtYXBfZ3Jvd2tlcm5lbCh2bV9vZmZzZXRfdCBh
ZGRyKQogewotCXZtX29mZnNldF90IHB0cHBhZGRyOworCXZtX29mZnNldF90IHBhZ2V2YTsKIAl2
bV9wYWdlX3QgbmtwZzsKIAlwdF9lbnRyeV90ICpwdGU7Ci0JaW50IGksIHJlcTsKKwlpbnQgaTsK
IAogCW10eF9hc3NlcnQoJmtlcm5lbF9tYXAtPnN5c3RlbV9tdHgsIE1BX09XTkVEKTsKIAlpZiAo
a2VybmVsX3ZtX2VuZCA9PSAwKSB7CkBAIC0xMjEzLDI2ICsxMjc4LDEzIEBACiAJCS8qCiAJCSAq
IFRoaXMgaW5kZXggaXMgYm9ndXMsIGJ1dCBvdXQgb2YgdGhlIHdheQogCQkgKi8KLQkJcmVxID0g
Vk1fQUxMT0NfSU5URVJSVVBUIHwgVk1fQUxMT0NfV0lSRUQgfCBWTV9BTExPQ19OT09CSjsKLQkJ
bmtwZyA9IHZtX3BhZ2VfYWxsb2MoTlVMTCwgbmtwdCwgcmVxKTsKKwkJbmtwZyA9IHBtYXBfYWxs
b2NfcHRlX3BhZ2Uoa2VybmVsX3BtYXAsIG5rcHQsIE1fTk9XQUlULCAmcGFnZXZhKTsKKwogCQlp
ZiAoIW5rcGcpCiAJCQlwYW5pYygicG1hcF9ncm93a2VybmVsOiBubyBtZW1vcnkgdG8gZ3JvdyBr
ZXJuZWwiKTsKIAogCQlua3B0Kys7Ci0KLQkJcHRwcGFkZHIgPSBWTV9QQUdFX1RPX1BIWVMobmtw
Zyk7Ci0JCWlmIChwdHBwYWRkciA+PSBNSVBTX0tTRUcwX0xBUkdFU1RfUEhZUykgewotCQkJLyoK
LQkJCSAqIFdlIG5lZWQgdG8gZG8gc29tZXRoaW5nIGhlcmUsIGJ1dCBJIGFtIG5vdCBzdXJlCi0J
CQkgKiB3aGF0LiBXZSBjYW4gYWNjZXNzIGFueXRoaW5nIGluIHRoZSAwIC0gNTEyTWVnCi0JCQkg
KiByZWdpb24sIGJ1dCBpZiB3ZSBnZXQgYSBwYWdlIHRvIGdvIGluIHRoZSBrZXJuZWwKLQkJCSAq
IHNlZ21hcCB0aGF0IGlzIG91dHNpZGUgb2Ygb2YgdGhhdCB3ZSByZWFsbHkgbmVlZAotCQkJICog
dG8gaGF2ZSBhbm90aGVyIG1hcHBpbmcgYmV5b25kIHRoZSB0ZW1wb3Jhcnkgb25lcwotCQkJICog
SSBoYXZlLiBOb3Qgc3VyZSBob3cgdG8gZG8gdGhpcyB5ZXQuIEZJWE1FIEZJWE1FLgotCQkJICov
Ci0JCQlwYW5pYygiR2FrLCBjYW4ndCBoYW5kbGUgYSBrLXBhZ2UgdGFibGUgb3V0c2lkZSBvZiBs
b3dlciA1MTJNZWciKTsKLQkJfQotCQlwdGUgPSAocHRfZW50cnlfdCAqKU1JUFNfUEhZU19UT19L
U0VHMChwdHBwYWRkcik7CisJCXB0ZSA9IChwdF9lbnRyeV90ICopcGFnZXZhOwogCQlzZWd0YWJf
cGRlKGtlcm5lbF9zZWdtYXAsIGtlcm5lbF92bV9lbmQpID0gKHBkX2VudHJ5X3QpcHRlOwogCiAJ
CS8qCkBAIC0xMzk2LDcgKzE0NDgsOCBAQAogCQl9CiAJfQogCi0JS0FTU0VSVChwdiAhPSBOVUxM
LCAoInBtYXBfcmVtb3ZlX2VudHJ5OiBwdiBub3QgZm91bmQiKSk7CisJS0FTU0VSVChwdiAhPSBO
VUxMLCAoInBtYXBfcmVtb3ZlX2VudHJ5OiBwdiBub3QgZm91bmQsIHBhICVseCB2YSAlbHgiLAor
CSAgICAgKHVfbG9uZylWTV9QQUdFX1RPX1BIWVMobSksICh1X2xvbmcpdmEpKTsKIAlUQUlMUV9S
RU1PVkUoJm0tPm1kLnB2X2xpc3QsIHB2LCBwdl9saXN0KTsKIAltLT5tZC5wdl9saXN0X2NvdW50
LS07CiAJaWYgKFRBSUxRX0ZJUlNUKCZtLT5tZC5wdl9saXN0KSA9PSBOVUxMKQo=
--001636b2ac73204f5704857c70c3--



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