Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Feb 2017 10:59:05 -0800
From:      Jason Harmening <jason.harmening@gmail.com>
To:        Svatopluk Kraus <onwahe@gmail.com>
Cc:        Andreas Tobler <andreast@freebsd.org>, Kurt Lidl <lidl@pix.net>,  Alexander Kabaev <kabaev@gmail.com>, "Jason A. Harmening" <jah@freebsd.org>, src-committers@freebsd.org,  svn-src-all@freebsd.org, svn-src-head@freebsd.org,  Ed Maste <emaste@freebsd.org>, Justin Hibbits <jrh29@alumni.cwru.edu>
Subject:   Re: svn commit: r313037 - in head/sys: amd64/include kern mips/include net powerpc/include sparc64/include
Message-ID:  <CAM=8qanyz08tAHvo7q2Dxt=Q6jWKqD53iF82wtFtN86fMXctQA@mail.gmail.com>
In-Reply-To: <CAM=8qakqOjn0x%2BFwLGG8qrAbksQ_VR4547_vRV%2Bqso%2Bu=Cdf1A@mail.gmail.com>
References:  <201702010332.v113WnYf041362@repo.freebsd.org> <20170203231238.0675c289@kan> <CAM=8qa=h3=sfro02hCQyzqkDnLO7TnQJ8ugCoa5=MfNE_OCgZg@mail.gmail.com> <8523aaa5-6c30-9f9f-40f0-fdf82cdf1669@pix.net> <CAM=8qa=YB_kBsFRS%2Ba7kR%2BZTkyjmRnwY7r9vfZ48SyyZ2BZddg@mail.gmail.com> <6bf86e46-9714-c7e9-8d47-845761e2de24@FreeBSD.org> <CAM=8qa=dEfeV%2BBLr7g7-9YiSP9uGyxzkzP1NEEz4xZ6TDUJ2HA@mail.gmail.com> <8a2f7f7d-14c3-8e75-e060-fc41213ce389@FreeBSD.org> <CAM=8qa=2rpHi8Jdbv23KN70M1CVx=gGO54fvTk38uYP9iEqa2g@mail.gmail.com> <CAFHCsPXdRya9xVgoi-DfuzutYZ-LdpntFy9t7GbBY1KvQZxdpA@mail.gmail.com> <CAM=8qakqOjn0x%2BFwLGG8qrAbksQ_VR4547_vRV%2Bqso%2Bu=Cdf1A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--001a1141481aebafb20547cd1b65
Content-Type: text/plain; charset=UTF-8

Actually attaching the patch this time (**** gmail client)

On Sun, Feb 5, 2017 at 10:58 AM, Jason Harmening <jason.harmening@gmail.com>
wrote:

> Hmm, it's a good idea to consider the possibility of a barrier issue.  It
> wouldn't be the first time we've had such a problem on a weakly-ordered
> architecture. That said, I don't see a problem in this case.
>  smp_rendezvous_cpus() takes a spinlock and then issues
> atomic_store_rel_int()  to ensure the rendezvous params are visible to
> other cpus.  The latter corresponds to lwsync on powerpc, which AFAIK
> should be sufficient to ensure visibility of prior stores.
>
> For now I'm going with the simpler explanation that I made a bad
> assumption  in the powerpc get_pcpu() and there is some context in which
> the read of sprg0 doesn't return a consistent pointer value.  Unfortunately
> I don't see where that might be right now.
>
> On the mips side, Kurt/Alexander can you test the attached patch?  It
> contains a simple fix to ensure get_pcpu() returns the consistent per-cpu
> pointer.
>
> On Sat, Feb 4, 2017 at 1:34 PM, Svatopluk Kraus <onwahe@gmail.com> wrote:
>
>> Probably not related. But when I took short look to the patch to see
>> what could go wrong, I walked into the following comment in
>> _rm_wlock(): "Assumes rm->rm_writecpus update is visible on other CPUs
>> before rm_cleanIPI is called." There is no explicit barrier to ensure
>> it. However, there might be some barriers inside of
>> smp_rendezvous_cpus(). I have no idea what could happened if this
>> assumption is not met. Note that rm_cleanIPI() is affected by the
>> patch.
>>
>>
>>
>> On Sat, Feb 4, 2017 at 9:39 PM, Jason Harmening
>> <jason.harmening@gmail.com> wrote:
>> > Can you post an example of such panic?  Only 2 MI pieces were changed,
>> > netisr and rmlock.  I haven't seen problems on my own amd64/i386/arm
>> testing
>> > of this, so a backtrace might help to narrow down the cause.
>> >
>> > On Sat, Feb 4, 2017 at 12:22 PM, Andreas Tobler <andreast@freebsd.org>
>> > wrote:
>> >>
>> >> On 04.02.17 20:54, Jason Harmening wrote:
>> >>>
>> >>> I suspect this broke rmlocks for mips because the rmlock
>> implementation
>> >>> takes the address of the per-CPU pc_rm_queue when building tracker
>> >>> lists.  That address may be later accessed from another CPU and will
>> >>> then translate to the wrong physical region if the address was taken
>> >>> relative to the globally-constant pcpup VA used on mips.
>> >>>
>> >>> Regardless, for mips get_pcpup() should be implemented as
>> >>> pcpu_find(curcpu) since returning an address that may mean something
>> >>> different depending on the CPU seems like a big POLA violation if
>> >>> nothing else.
>> >>>
>> >>> I'm more concerned about the report of powerpc breakage.  For powerpc
>> we
>> >>> simply take each pcpu pointer from the pc_allcpu list (which is the
>> same
>> >>> value stored in the cpuid_to_pcpu array) and pass it through the
>> ap_pcpu
>> >>> global to each AP's startup code, which then stores it in sprg0.  It
>> >>> should be globally unique and won't have the variable-translation
>> issues
>> >>> seen on mips.   Andreas, are you certain this change was responsible
>> the
>> >>> breakage you saw, and was it the same sort of hang observed on mips?
>> >>
>> >>
>> >> I'm really sure. 313036 booted fine, allowed me to execute heavy
>> >> compilation jobs, np. 313037 on the other side gave me various
>> patterns of
>> >> panics. During startup, but I also succeeded to get into multiuser and
>> then
>> >> the panic happend during port building.
>> >>
>> >> I have no deeper inside where pcpu data is used. Justin mentioned
>> netisr?
>> >>
>> >> Andreas
>> >>
>> >
>>
>
>

--001a1141481aebafb20547cd1b65
Content-Type: text/plain; charset=US-ASCII; name="patch_get_pcpu.txt"
Content-Disposition: attachment; filename="patch_get_pcpu.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_iyt18bxx0

SW5kZXg6IHN5cy9hbWQ2NC9pbmNsdWRlL3BjcHUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvYW1kNjQv
aW5jbHVkZS9wY3B1LmgJKHJldmlzaW9uIDMxMzE5MykKKysrIHN5cy9hbWQ2NC9pbmNsdWRlL3Bj
cHUuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsNyBAQAogCiBleHRlcm4gc3RydWN0IHBj
cHUgKnBjcHVwOwogCisjZGVmaW5lCWdldF9wY3B1KCkJCShwY3B1cCkKICNkZWZpbmUJUENQVV9H
RVQobWVtYmVyKQkocGNwdXAtPnBjXyAjIyBtZW1iZXIpCiAjZGVmaW5lCVBDUFVfQUREKG1lbWJl
ciwgdmFsKQkocGNwdXAtPnBjXyAjIyBtZW1iZXIgKz0gKHZhbCkpCiAjZGVmaW5lCVBDUFVfSU5D
KG1lbWJlcikJUENQVV9BREQobWVtYmVyLCAxKQpAQCAtMjAzLDYgKzIwNCwxNSBAQAogCX0JCQkJ
CQkJCVwKIH0KIAorI2RlZmluZQlnZXRfcGNwdSgpIF9fZXh0ZW5zaW9uX18gKHsJCQkJCVwKKwlz
dHJ1Y3QgcGNwdSAqX19wYzsJCQkJCQlcCisJCQkJCQkJCQlcCisJX19hc20gX192b2xhdGlsZSgi
bW92cSAlJWdzOiUxLCUwIgkJCQlcCisJICAgIDogIj1yIiAoX19wYykJCQkJCQlcCisJICAgIDog
Im0iICgqKHN0cnVjdCBwY3B1ICopKF9fcGNwdV9vZmZzZXQocGNfcHJ2c3BhY2UpKSkpOwlcCisJ
X19wYzsJCQkJCQkJCVwKK30pCisKICNkZWZpbmUJUENQVV9HRVQobWVtYmVyKQlfX1BDUFVfR0VU
KHBjXyAjIyBtZW1iZXIpCiAjZGVmaW5lCVBDUFVfQUREKG1lbWJlciwgdmFsKQlfX1BDUFVfQURE
KHBjXyAjIyBtZW1iZXIsIHZhbCkKICNkZWZpbmUJUENQVV9JTkMobWVtYmVyKQlfX1BDUFVfSU5D
KHBjXyAjIyBtZW1iZXIpCkluZGV4OiBzeXMva2Vybi9rZXJuX3JtbG9jay5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHN5cy9rZXJuL2tlcm5fcm1sb2NrLmMJKHJldmlzaW9uIDMxMzE5MykKKysrIHN5cy9rZXJu
L2tlcm5fcm1sb2NrLmMJKHdvcmtpbmcgY29weSkKQEAgLTE1Niw3ICsxNTYsNyBAQAogCQkgKi8K
IAkJY3JpdGljYWxfZW50ZXIoKTsKIAkJdGQgPSBjdXJ0aHJlYWQ7Ci0JCXBjID0gcGNwdV9maW5k
KGN1cmNwdSk7CisJCXBjID0gZ2V0X3BjcHUoKTsKIAkJZm9yIChxdWV1ZSA9IHBjLT5wY19ybV9x
dWV1ZS5ybXFfbmV4dDsKIAkJICAgIHF1ZXVlICE9ICZwYy0+cGNfcm1fcXVldWU7IHF1ZXVlID0g
cXVldWUtPnJtcV9uZXh0KSB7CiAJCQl0cmFja2VyID0gKHN0cnVjdCBybV9wcmlvdHJhY2tlciAq
KXF1ZXVlOwpAQCAtMjU4LDcgKzI1OCw3IEBACiAJc3RydWN0IHJtbG9jayAqcm0gPSBhcmc7CiAJ
c3RydWN0IHJtX3ByaW90cmFja2VyICp0cmFja2VyOwogCXN0cnVjdCBybV9xdWV1ZSAqcXVldWU7
Ci0JcGMgPSBwY3B1X2ZpbmQoY3VyY3B1KTsKKwlwYyA9IGdldF9wY3B1KCk7CiAKIAlmb3IgKHF1
ZXVlID0gcGMtPnBjX3JtX3F1ZXVlLnJtcV9uZXh0OyBxdWV1ZSAhPSAmcGMtPnBjX3JtX3F1ZXVl
OwogCSAgICBxdWV1ZSA9IHF1ZXVlLT5ybXFfbmV4dCkgewpAQCAtMzU1LDcgKzM1NSw3IEBACiAJ
c3RydWN0IHBjcHUgKnBjOwogCiAJY3JpdGljYWxfZW50ZXIoKTsKLQlwYyA9IHBjcHVfZmluZChj
dXJjcHUpOworCXBjID0gZ2V0X3BjcHUoKTsKIAogCS8qIENoZWNrIGlmIHdlIGp1c3QgbmVlZCB0
byBkbyBhIHByb3BlciBjcml0aWNhbF9leGl0LiAqLwogCWlmICghQ1BVX0lTU0VUKHBjLT5wY19j
cHVpZCwgJnJtLT5ybV93cml0ZWNwdXMpKSB7CkBAIC00MTYsNyArNDE2LDcgQEAKIAl9CiAKIAlj
cml0aWNhbF9lbnRlcigpOwotCXBjID0gcGNwdV9maW5kKGN1cmNwdSk7CisJcGMgPSBnZXRfcGNw
dSgpOwogCUNQVV9DTFIocGMtPnBjX2NwdWlkLCAmcm0tPnJtX3dyaXRlY3B1cyk7CiAJcm1fdHJh
Y2tlcl9hZGQocGMsIHRyYWNrZXIpOwogCXNjaGVkX3BpbigpOwpAQCAtNjQxLDcgKzY0MSw3IEBA
CiAjaWZkZWYgSU5WQVJJQU5UUwogCWlmICghKHJtLT5sb2NrX29iamVjdC5sb19mbGFncyAmIExP
X1JFQ1VSU0FCTEUpICYmICF0cnlsb2NrKSB7CiAJCWNyaXRpY2FsX2VudGVyKCk7Ci0JCUtBU1NF
UlQocm1fdHJhY2tlcnNfcHJlc2VudChwY3B1X2ZpbmQoY3VyY3B1KSwgcm0sCisJCUtBU1NFUlQo
cm1fdHJhY2tlcnNfcHJlc2VudChnZXRfcGNwdSgpLCBybSwKIAkJICAgIGN1cnRocmVhZCkgPT0g
MCwKIAkJICAgICgicm1fcmxvY2s6IHJlY3Vyc2VkIG9uIG5vbi1yZWN1cnNpdmUgcm1sb2NrICVz
IEAgJXM6JWRcbiIsCiAJCSAgICBybS0+bG9ja19vYmplY3QubG9fbmFtZSwgZmlsZSwgbGluZSkp
OwpAQCAtNzcxLDcgKzc3MSw3IEBACiAJCX0KIAogCQljcml0aWNhbF9lbnRlcigpOwotCQljb3Vu
dCA9IHJtX3RyYWNrZXJzX3ByZXNlbnQocGNwdV9maW5kKGN1cmNwdSksIHJtLCBjdXJ0aHJlYWQp
OworCQljb3VudCA9IHJtX3RyYWNrZXJzX3ByZXNlbnQoZ2V0X3BjcHUoKSwgcm0sIGN1cnRocmVh
ZCk7CiAJCWNyaXRpY2FsX2V4aXQoKTsKIAogCQlpZiAoY291bnQgPT0gMCkKQEAgLTc5Nyw3ICs3
OTcsNyBAQAogCQkJICAgIHJtLT5sb2NrX29iamVjdC5sb19uYW1lLCBmaWxlLCBsaW5lKTsKIAog
CQljcml0aWNhbF9lbnRlcigpOwotCQljb3VudCA9IHJtX3RyYWNrZXJzX3ByZXNlbnQocGNwdV9m
aW5kKGN1cmNwdSksIHJtLCBjdXJ0aHJlYWQpOworCQljb3VudCA9IHJtX3RyYWNrZXJzX3ByZXNl
bnQoZ2V0X3BjcHUoKSwgcm0sIGN1cnRocmVhZCk7CiAJCWNyaXRpY2FsX2V4aXQoKTsKIAogCQlp
ZiAoY291bnQgIT0gMCkKSW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvcGNwdS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHN5cy9taXBzL2luY2x1ZGUvcGNwdS5oCShyZXZpc2lvbiAzMTMxOTMpCisrKyBzeXMvbWlw
cy9pbmNsdWRlL3BjcHUuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTYgKzM5LDE3IEBACiAJc3Ry
dWN0CXBtYXAJKnBjX2N1cnBtYXA7CQkvKiBwbWFwIG9mIGN1cnRocmVhZCAqLwlcCiAJdV9pbnQz
Ml90CXBjX25leHRfYXNpZDsJCS8qIG5leHQgQVNJRCB0byBhbGxvYyAqLyBcCiAJdV9pbnQzMl90
CXBjX2FzaWRfZ2VuZXJhdGlvbjsJLyogY3VycmVudCBBU0lEIGdlbmVyYXRpb24gKi8gXAotCXVf
aW50CQlwY19wZW5kaW5nX2lwaXM7CS8qIElQSXMgcGVuZGluZyB0byB0aGlzIENQVSAqLworCXVf
aW50CQlwY19wZW5kaW5nX2lwaXM7CS8qIElQSXMgcGVuZGluZyB0byB0aGlzIENQVSAqLyBcCisJ
c3RydWN0CXBjcHUJKnBjX3NlbGY7CQkvKiBnbG9iYWxseS11bmlxZSBzZWxmIHBvaW50ZXIgKi8K
IAogI2lmZGVmCV9fbWlwc19uNjQKICNkZWZpbmUJUENQVV9NRF9NSVBTNjRfRklFTERTCQkJCQkJ
XAogCVBDUFVfTURfQ09NTU9OX0ZJRUxEUwkJCQkJCVwKLQljaGFyCQlfX3BhZFs2MV0KKwljaGFy
CQlfX3BhZFs1M10KICNlbHNlCiAjZGVmaW5lCVBDUFVfTURfTUlQUzMyX0ZJRUxEUwkJCQkJCVwK
IAlQQ1BVX01EX0NPTU1PTl9GSUVMRFMJCQkJCQlcCi0JY2hhcgkJX19wYWRbMTkzXQorCWNoYXIJ
CV9fcGFkWzE4OV0KICNlbmRpZgogCiAjaWZkZWYJX19taXBzX242NApAQCAtNjUsNiArNjYsMTMg
QEAKIGV4dGVybiBzdHJ1Y3QgcGNwdSAqcGNwdXA7CiAjZGVmaW5lCVBDUFVQCXBjcHVwCiAKKy8q
CisgKiBTaW5jZSB3ZSB1c2UgYSB3aXJlZCBUTEIgZW50cnkgdG8gbWFwIHRoZSBzYW1lIFZBIHRv
IGEgZGlmZmVyZW50CisgKiBwaHlzaWNhbCBwYWdlIGZvciBlYWNoIENQVSwgZ2V0X3BjcHUoKSBt
dXN0IHVzZSB0aGUgcGNfc2VsZgorICogZmllbGQgdG8gb2J0YWluIGEgZ2xvYmFsbHktdW5pcXVl
IHBvaW50ZXIuCisgKi8KKyNkZWZpbmUJZ2V0X3BjcHUoKQkJKFBDUFVQLT5wY19zZWxmKQorCiAj
ZGVmaW5lCVBDUFVfQUREKG1lbWJlciwgdmFsdWUpCShQQ1BVUC0+cGNfICMjIG1lbWJlciArPSAo
dmFsdWUpKQogI2RlZmluZQlQQ1BVX0dFVChtZW1iZXIpCShQQ1BVUC0+cGNfICMjIG1lbWJlcikK
ICNkZWZpbmUJUENQVV9JTkMobWVtYmVyKQlQQ1BVX0FERChtZW1iZXIsIDEpCkluZGV4OiBzeXMv
bWlwcy9taXBzL21hY2hkZXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9taXBzL21hY2hkZXAu
YwkocmV2aXNpb24gMzEzMTkzKQorKysgc3lzL21pcHMvbWlwcy9tYWNoZGVwLmMJKHdvcmtpbmcg
Y29weSkKQEAgLTQ3NSw2ICs0NzUsNyBAQAogCiAJcGNwdS0+cGNfbmV4dF9hc2lkID0gMTsKIAlw
Y3B1LT5wY19hc2lkX2dlbmVyYXRpb24gPSAxOworCXBjcHUtPnBjX3NlbGYgPSBwY3B1OwogI2lm
ZGVmIFNNUAogCWlmICgodm1fb2Zmc2V0X3QpcGNwdXAgPj0gVk1fTUlOX0tFUk5FTF9BRERSRVNT
ICYmCiAJICAgICh2bV9vZmZzZXRfdClwY3B1cCA8PSBWTV9NQVhfS0VSTkVMX0FERFJFU1MpIHsK
SW5kZXg6IHN5cy9uZXQvbmV0aXNyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL25ldC9uZXRpc3IuYwko
cmV2aXNpb24gMzEzMTkzKQorKysgc3lzL25ldC9uZXRpc3IuYwkod29ya2luZyBjb3B5KQpAQCAt
MTI2OCw5ICsxMjY4LDcgQEAKIHN0YXRpYyB2b2lkCiBuZXRpc3JfaW5pdCh2b2lkICphcmcpCiB7
Ci0jaWZkZWYgRUFSTFlfQVBfU1RBUlRVUAogCXN0cnVjdCBwY3B1ICpwYzsKLSNlbmRpZgogCiAJ
TkVUSVNSX0xPQ0tfSU5JVCgpOwogCWlmIChuZXRpc3JfbWF4dGhyZWFkcyA9PSAwIHx8IG5ldGlz
cl9tYXh0aHJlYWRzIDwgLTEgKQpAQCAtMTMwOCw3ICsxMzA2LDggQEAKIAkJbmV0aXNyX3N0YXJ0
X3N3aShwYy0+cGNfY3B1aWQsIHBjKTsKIAl9CiAjZWxzZQotCW5ldGlzcl9zdGFydF9zd2koY3Vy
Y3B1LCBwY3B1X2ZpbmQoY3VyY3B1KSk7CisJcGMgPSBnZXRfcGNwdSgpOworCW5ldGlzcl9zdGFy
dF9zd2kocGMtPnBjX2NwdWlkLCBwYyk7CiAjZW5kaWYKIH0KIFNZU0lOSVQobmV0aXNyX2luaXQs
IFNJX1NVQl9TT0ZUSU5UUiwgU0lfT1JERVJfRklSU1QsIG5ldGlzcl9pbml0LCBOVUxMKTsKSW5k
ZXg6IHN5cy9wb3dlcnBjL2luY2x1ZGUvY3B1ZnVuYy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9wb3dl
cnBjL2luY2x1ZGUvY3B1ZnVuYy5oCShyZXZpc2lvbiAzMTMxOTMpCisrKyBzeXMvcG93ZXJwYy9p
bmNsdWRlL2NwdWZ1bmMuaAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSw3IEBACiB9CiAK
IHN0YXRpYyBfX2lubGluZSBzdHJ1Y3QgcGNwdSAqCi1wb3dlcnBjX2dldF9wY3B1cCh2b2lkKQor
Z2V0X3BjcHUodm9pZCkKIHsKIAlzdHJ1Y3QgcGNwdSAqcmV0OwogCkluZGV4OiBzeXMvcG93ZXJw
Yy9pbmNsdWRlL3BjcHUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvcG93ZXJwYy9pbmNsdWRlL3BjcHUu
aAkocmV2aXNpb24gMzEzMTkzKQorKysgc3lzL3Bvd2VycGMvaW5jbHVkZS9wY3B1LmgJKHdvcmtp
bmcgY29weSkKQEAgLTE0Miw3ICsxNDIsNyBAQAogCiAjaWZkZWYgX0tFUk5FTAogCi0jZGVmaW5l
IHBjcHVwCSgoc3RydWN0IHBjcHUgKikgcG93ZXJwY19nZXRfcGNwdXAoKSkKKyNkZWZpbmUgcGNw
dXAJKGdldF9wY3B1KCkpCiAKIHN0YXRpYyBfX2lubGluZSBfX3B1cmUyIHN0cnVjdCB0aHJlYWQg
KgogX19jdXJ0aHJlYWQodm9pZCkKSW5kZXg6IHN5cy9zcGFyYzY0L2luY2x1ZGUvcGNwdS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHN5cy9zcGFyYzY0L2luY2x1ZGUvcGNwdS5oCShyZXZpc2lvbiAzMTMxOTMp
CisrKyBzeXMvc3BhcmM2NC9pbmNsdWRlL3BjcHUuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiAr
NzQsNyBAQAogcmVnaXN0ZXIgc3RydWN0IHBjYiAqY3VycGNiIF9fYXNtX18oX19YU1RSSU5HKFBD
Ql9SRUcpKTsKIHJlZ2lzdGVyIHN0cnVjdCBwY3B1ICpwY3B1cCBfX2FzbV9fKF9fWFNUUklORyhQ
Q1BVX1JFRykpOwogCisjZGVmaW5lCWdldF9wY3B1KCkJCShwY3B1cCkKICNkZWZpbmUJUENQVV9H
RVQobWVtYmVyKQkocGNwdXAtPnBjXyAjIyBtZW1iZXIpCiAKIHN0YXRpYyBfX2lubGluZSBfX3B1
cmUyIHN0cnVjdCB0aHJlYWQgKgo=
--001a1141481aebafb20547cd1b65--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAM=8qanyz08tAHvo7q2Dxt=Q6jWKqD53iF82wtFtN86fMXctQA>