kern/165622: [ndis][panic][patch] Unregistered use of FPU in
kernel on amd64
Vladislav Movchan
vladislav.movchan at gmail.com
Mon Mar 12 15:30:14 UTC 2012
The following reply was made to PR kern/165622; it has been noted by GNATS.
From: Vladislav Movchan <vladislav.movchan at gmail.com>
To: bug-followup at FreeBSD.org, vladislav.movchan at gmail.com
Cc:
Subject: Re: kern/165622: [ndis][panic][patch] Unregistered use of FPU in
kernel on amd64
Date: Mon, 12 Mar 2012 17:20:53 +0200
--e89a8f6465adbf936e04bb0d4973
Content-Type: text/plain; charset=ISO-8859-1
I've reimplemented original patch to maintain cache of fpu_kern_ctx
elements to reduce amount of allocations/deallocations done via
fpu_kern_alloc_ctx/fpu_kern_free_ctx.
It is complex to measure performance gain of this change due to
deadlock in ndis code (what makes it complex or impossible to
stress-test), but when the same change was tested with
https://github.com/NDISulator/ it allowed to get about 10% higher
bandwidth with 1Gbps NIC (which was CPU bound).
--e89a8f6465adbf936e04bb0d4973
Content-Type: text/plain; charset=US-ASCII; name="fpu_patch2.txt"
Content-Disposition: attachment; filename="fpu_patch2.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gzpnl7720
SW5kZXg6IC91c3Ivc3JjL3N5cy9jb21wYXQvbmRpcy9wZV92YXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAv
dXNyL3NyYy9zeXMvY29tcGF0L25kaXMvcGVfdmFyLmgJKHJldmlzaW9uIDIzMjM3OSkKKysrIC91
c3Ivc3JjL3N5cy9jb21wYXQvbmRpcy9wZV92YXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYwLDIy
ICs0NjAsMzAgQEAKIGV4dGVybiB1aW50NjRfdCB4ODZfNjRfY2FsbDYodm9pZCAqLCB1aW50NjRf
dCwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50NjRfdCwKIAl1aW50NjRfdCwgdWludDY0X3QpOwog
Cit1aW50NjRfdCBfeDg2XzY0X2NhbGwxKHZvaWQgKiwgdWludDY0X3QpOwordWludDY0X3QgX3g4
Nl82NF9jYWxsMih2b2lkICosIHVpbnQ2NF90LCB1aW50NjRfdCk7Cit1aW50NjRfdCBfeDg2XzY0
X2NhbGwzKHZvaWQgKiwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cit1aW50NjRfdCBf
eDg2XzY0X2NhbGw0KHZvaWQgKiwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50NjRfdCwgdWludDY0
X3QpOwordWludDY0X3QgX3g4Nl82NF9jYWxsNSh2b2lkICosIHVpbnQ2NF90LCB1aW50NjRfdCwg
dWludDY0X3QsIHVpbnQ2NF90LAorICAgIHVpbnQ2NF90KTsKK3VpbnQ2NF90IF94ODZfNjRfY2Fs
bDYodm9pZCAqLCB1aW50NjRfdCwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50NjRfdCwKKyAgICB1
aW50NjRfdCwgdWludDY0X3QpOwogCiAjZGVmaW5lCU1TQ0FMTDEoZm4sIGEpCQkJCQkJXAotCXg4
Nl82NF9jYWxsMSgoZm4pLCAodWludDY0X3QpKGEpKQorCV94ODZfNjRfY2FsbDEoKGZuKSwgKHVp
bnQ2NF90KShhKSkKICNkZWZpbmUJTVNDQUxMMihmbiwgYSwgYikJCQkJCVwKLQl4ODZfNjRfY2Fs
bDIoKGZuKSwgKHVpbnQ2NF90KShhKSwgKHVpbnQ2NF90KShiKSkKKwlfeDg2XzY0X2NhbGwyKChm
biksICh1aW50NjRfdCkoYSksICh1aW50NjRfdCkoYikpCiAjZGVmaW5lCU1TQ0FMTDMoZm4sIGEs
IGIsIGMpCQkJCQlcCi0JeDg2XzY0X2NhbGwzKChmbiksICh1aW50NjRfdCkoYSksICh1aW50NjRf
dCkoYiksCQlcCisJX3g4Nl82NF9jYWxsMygoZm4pLCAodWludDY0X3QpKGEpLCAodWludDY0X3Qp
KGIpLAkJXAogCSh1aW50NjRfdCkoYykpCiAjZGVmaW5lCU1TQ0FMTDQoZm4sIGEsIGIsIGMsIGQp
CQkJCQlcCi0JeDg2XzY0X2NhbGw0KChmbiksICh1aW50NjRfdCkoYSksICh1aW50NjRfdCkoYiks
CQlcCisJX3g4Nl82NF9jYWxsNCgoZm4pLCAodWludDY0X3QpKGEpLCAodWludDY0X3QpKGIpLAkJ
XAogCSh1aW50NjRfdCkoYyksICh1aW50NjRfdCkoZCkpCiAjZGVmaW5lCU1TQ0FMTDUoZm4sIGEs
IGIsIGMsIGQsIGUpCQkJCVwKLQl4ODZfNjRfY2FsbDUoKGZuKSwgKHVpbnQ2NF90KShhKSwgKHVp
bnQ2NF90KShiKSwJCVwKKwlfeDg2XzY0X2NhbGw1KChmbiksICh1aW50NjRfdCkoYSksICh1aW50
NjRfdCkoYiksCQlcCiAJKHVpbnQ2NF90KShjKSwgKHVpbnQ2NF90KShkKSwgKHVpbnQ2NF90KShl
KSkKICNkZWZpbmUJTVNDQUxMNihmbiwgYSwgYiwgYywgZCwgZSwgZikJCQkJXAotCXg4Nl82NF9j
YWxsNigoZm4pLCAodWludDY0X3QpKGEpLCAodWludDY0X3QpKGIpLAkJXAorCV94ODZfNjRfY2Fs
bDYoKGZuKSwgKHVpbnQ2NF90KShhKSwgKHVpbnQ2NF90KShiKSwJCVwKIAkodWludDY0X3QpKGMp
LCAodWludDY0X3QpKGQpLCAodWludDY0X3QpKGUpLCAodWludDY0X3QpKGYpKQogCiAjZW5kaWYg
LyogX19hbWQ2NF9fICovCkluZGV4OiAvdXNyL3NyYy9zeXMvY29tcGF0L25kaXMva2Vybl93aW5k
cnYuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSAvdXNyL3NyYy9zeXMvY29tcGF0L25kaXMva2Vybl93aW5kcnYu
YwkocmV2aXNpb24gMjMyMzc5KQorKysgL3Vzci9zcmMvc3lzL2NvbXBhdC9uZGlzL2tlcm5fd2lu
ZHJ2LmMJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDEwIEBACiAjaW5jbHVkZSA8bWFjaGlu
ZS9zZWdtZW50cy5oPgogI2VuZGlmCiAKKyNpZmRlZiBfX2FtZDY0X18KKyNpbmNsdWRlIDxtYWNo
aW5lL2ZwdS5oPgorI2VuZGlmCisKICNpbmNsdWRlIDxkZXYvdXNiL3VzYi5oPgogCiAjaW5jbHVk
ZSA8Y29tcGF0L25kaXMvcGVfdmFyLmg+CkBAIC02Niw2ICs3MCwxNiBAQAogI2luY2x1ZGUgPGNv
bXBhdC9uZGlzL2hhbF92YXIuaD4KICNpbmNsdWRlIDxjb21wYXQvbmRpcy91c2JkX3Zhci5oPgog
CisjaWZkZWYgX19hbWQ2NF9fCitzdHJ1Y3QgZnB1X2NjX2VudCB7CisJY2hhcgkJdXNlZDsKKwlz
dHJ1Y3QgZnB1X2tlcm5fY3R4ICpjdHg7CisJU0xJU1RfRU5UUlkoZnB1X2NjX2VudCkgbGluazsK
K307CitzdGF0aWMgU0xJU1RfSEVBRChmcHVfY3R4X2NhY2hlLCBmcHVfY2NfZW50KSBmcHVfY2Nf
aGVhZDsKK3N0YXRpYyBzdHJ1Y3QgbXR4IGZwdV9jYWNoZV9tdHg7CisjZW5kaWYKKwogc3RhdGlj
IHN0cnVjdCBtdHggZHJ2ZGJfbXR4Owogc3RhdGljIFNUQUlMUV9IRUFEKGRydmRiLCBkcnZkYl9l
bnQpIGRydmRiX2hlYWQ7CiAKQEAgLTk2LDYgKzExMCwxMSBAQAogCW10eF9pbml0KCZkcnZkYl9t
dHgsICJXaW5kb3dzIGRyaXZlciBEQiBsb2NrIiwKIAkgICAgIldpbmRvd3MgaW50ZXJuYWwgbG9j
ayIsIE1UWF9ERUYpOwogCisjaWZkZWYgX19hbWQ2NF9fCisJU0xJU1RfSU5JVCgmZnB1X2NjX2hl
YWQpOworCW10eF9pbml0KCZmcHVfY2FjaGVfbXR4LCAiZnB1IGNvbnRleHQgY2FjaGUgbG9jayIs
IE5VTEwsIE1UWF9ERUYpOworI2VuZGlmCisKIAkvKgogCSAqIFBDSSBhbmQgcGNjYXJkIGRldmlj
ZXMgZG9uJ3QgbmVlZCB0byB1c2UgSVJQcyB0bwogCSAqIGludGVyYWN0IHdpdGggdGhlaXIgYnVz
IGRyaXZlcnMgKHVzdWFsbHkpLCBzbyBvdXIKQEAgLTEzMCw2ICsxNDksOSBAQAogd2luZHJ2X2xp
YmZpbmkodm9pZCkKIHsKIAlzdHJ1Y3QgZHJ2ZGJfZW50CSpkOworI2lmZGVmIF9fYW1kNjRfXwor
CXN0cnVjdCBmcHVfY2NfZW50ICplbnQ7CisjZW5kaWYKIAogCW10eF9sb2NrKCZkcnZkYl9tdHgp
OyAKIAl3aGlsZShTVEFJTFFfRklSU1QoJmRydmRiX2hlYWQpICE9IE5VTEwpIHsKQEAgLTE0OCw2
ICsxNzAsMTUgQEAKIAlzbXBfcmVuZGV6dm91cyhOVUxMLCB4ODZfb2xkbGR0LCBOVUxMLCBOVUxM
KTsKIAlFeEZyZWVQb29sKG15X3RpZHMpOwogI2VuZGlmCisjaWZkZWYgX19hbWQ2NF9fCisJd2hp
bGUgKChlbnQgPSBTTElTVF9GSVJTVCgmZnB1X2NjX2hlYWQpKSAhPSBOVUxMKSB7CisJCVNMSVNU
X1JFTU9WRV9IRUFEKCZmcHVfY2NfaGVhZCwgbGluayk7CisJCWZwdV9rZXJuX2ZyZWVfY3R4KGVu
dC0+Y3R4KTsKKwkJZnJlZShlbnQsIE1fREVWQlVGKTsKKwl9CisKKwltdHhfZGVzdHJveSgmZnB1
X2NhY2hlX210eCk7CisjZW5kaWYKIAlyZXR1cm4gKDApOwogfQogCkBAIC01NzMsNiArNjA0LDE0
MSBAQAogCXJldHVybiAoMCk7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgZnB1X2NjX2VudCAqCityZXF1
ZXN0X2ZwdV9jY19lbnQodm9pZCkKK3sKKwlzdHJ1Y3QgZnB1X2NjX2VudCAqZW50OworCisJbXR4
X2xvY2soJmZwdV9jYWNoZV9tdHgpOworCVNMSVNUX0ZPUkVBQ0goZW50LCAmZnB1X2NjX2hlYWQs
IGxpbmspIHsKKwkJaWYoZW50LT51c2VkID09IDApIHsKKwkJCWVudC0+dXNlZCA9IDE7CisJCQlt
dHhfdW5sb2NrKCZmcHVfY2FjaGVfbXR4KTsKKwkJCXJldHVybiAoZW50KTsKKwkJfQorCX0KKwlt
dHhfdW5sb2NrKCZmcHVfY2FjaGVfbXR4KTsKKworCWlmICgoZW50ID0gbWFsbG9jKHNpemVvZihz
dHJ1Y3QgZnB1X2NjX2VudCksIE1fREVWQlVGLCBNX05PV0FJVCB8CisJICAgIE1fWkVSTykpICE9
IE5VTEwpIHsKKwkJZW50LT5jdHggPSBmcHVfa2Vybl9hbGxvY19jdHgoRlBVX0tFUk5fTk9STUFM
IHwKKwkJICAgIEZQVV9LRVJOX05PV0FJVCk7CisJCWlmIChlbnQtPmN0eCAhPSBOVUxMKSB7CisJ
CQllbnQtPnVzZWQgPSAxOworCQkJbXR4X2xvY2soJmZwdV9jYWNoZV9tdHgpOworCQkJU0xJU1Rf
SU5TRVJUX0hFQUQoJmZwdV9jY19oZWFkLCBlbnQsIGxpbmspOworCQkJbXR4X3VubG9jaygmZnB1
X2NhY2hlX210eCk7CisJCX0gZWxzZQorCQkJZnJlZShlbnQsIE1fREVWQlVGKTsKKwl9CisKKwly
ZXR1cm4gKGVudCk7Cit9CisKK3N0YXRpYyB2b2lkCityZWxlYXNlX2ZwdV9jY19lbnQoc3RydWN0
IGZwdV9jY19lbnQgKmVudCkKK3sKKworCWVudC0+dXNlZCA9IDA7Cit9CisKK3VpbnQ2NF90Citf
eDg2XzY0X2NhbGwxKHZvaWQgKmZuLCB1aW50NjRfdCBhKQoreworCXN0cnVjdCBmcHVfY2NfZW50
ICplbnQ7CisJdWludDY0X3QgcmV0OworCisJaWYgKChlbnQgPSByZXF1ZXN0X2ZwdV9jY19lbnQo
KSkgPT0gTlVMTCkKKwkJcmV0dXJuIChFTk9NRU0pOworCWZwdV9rZXJuX2VudGVyKGN1cnRocmVh
ZCwgZW50LT5jdHgsIEZQVV9LRVJOX05PUk1BTCk7CisJcmV0ID0geDg2XzY0X2NhbGwxKGZuLCBh
KTsKKwlmcHVfa2Vybl9sZWF2ZShjdXJ0aHJlYWQsIGVudC0+Y3R4KTsKKwlyZWxlYXNlX2ZwdV9j
Y19lbnQoZW50KTsKKworCXJldHVybiAocmV0KTsKK30KKwordWludDY0X3QKK194ODZfNjRfY2Fs
bDIodm9pZCAqZm4sIHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIpCit7CisJc3RydWN0IGZwdV9jY19l
bnQgKmVudDsKKwl1aW50NjRfdCByZXQ7CisKKwlpZiAoKGVudCA9IHJlcXVlc3RfZnB1X2NjX2Vu
dCgpKSA9PSBOVUxMKQorCQlyZXR1cm4gKEVOT01FTSk7CisJZnB1X2tlcm5fZW50ZXIoY3VydGhy
ZWFkLCBlbnQtPmN0eCwgRlBVX0tFUk5fTk9STUFMKTsKKwlyZXQgPSB4ODZfNjRfY2FsbDIoZm4s
IGEsIGIpOworCWZwdV9rZXJuX2xlYXZlKGN1cnRocmVhZCwgZW50LT5jdHgpOworCXJlbGVhc2Vf
ZnB1X2NjX2VudChlbnQpOworCisJcmV0dXJuIChyZXQpOworfQorCit1aW50NjRfdAorX3g4Nl82
NF9jYWxsMyh2b2lkICpmbiwgdWludDY0X3QgYSwgdWludDY0X3QgYiwgdWludDY0X3QgYykKK3sK
KwlzdHJ1Y3QgZnB1X2NjX2VudCAqZW50OworCXVpbnQ2NF90IHJldDsKKworCWlmICgoZW50ID0g
cmVxdWVzdF9mcHVfY2NfZW50KCkpID09IE5VTEwpCisJCXJldHVybiAoRU5PTUVNKTsKKwlmcHVf
a2Vybl9lbnRlcihjdXJ0aHJlYWQsIGVudC0+Y3R4LCBGUFVfS0VSTl9OT1JNQUwpOworCXJldCA9
IHg4Nl82NF9jYWxsMyhmbiwgYSwgYiwgYyk7CisJZnB1X2tlcm5fbGVhdmUoY3VydGhyZWFkLCBl
bnQtPmN0eCk7CisJcmVsZWFzZV9mcHVfY2NfZW50KGVudCk7CisKKwlyZXR1cm4gKHJldCk7Cit9
CisKK3VpbnQ2NF90CitfeDg2XzY0X2NhbGw0KHZvaWQgKmZuLCB1aW50NjRfdCBhLCB1aW50NjRf
dCBiLCB1aW50NjRfdCBjLCB1aW50NjRfdCBkKQoreworCXN0cnVjdCBmcHVfY2NfZW50ICplbnQ7
CisJdWludDY0X3QgcmV0OworCisJaWYgKChlbnQgPSByZXF1ZXN0X2ZwdV9jY19lbnQoKSkgPT0g
TlVMTCkKKwkJcmV0dXJuIChFTk9NRU0pOworCWZwdV9rZXJuX2VudGVyKGN1cnRocmVhZCwgZW50
LT5jdHgsIEZQVV9LRVJOX05PUk1BTCk7CisJcmV0ID0geDg2XzY0X2NhbGw0KGZuLCBhLCBiLCBj
LCBkKTsKKwlmcHVfa2Vybl9sZWF2ZShjdXJ0aHJlYWQsIGVudC0+Y3R4KTsKKwlyZWxlYXNlX2Zw
dV9jY19lbnQoZW50KTsKKworCXJldHVybiAocmV0KTsKK30KKwordWludDY0X3QKK194ODZfNjRf
Y2FsbDUodm9pZCAqZm4sIHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIsIHVpbnQ2NF90IGMsIHVpbnQ2
NF90IGQsCisgICAgdWludDY0X3QgZSkKK3sKKwlzdHJ1Y3QgZnB1X2NjX2VudCAqZW50OworCXVp
bnQ2NF90IHJldDsKKworCWlmICgoZW50ID0gcmVxdWVzdF9mcHVfY2NfZW50KCkpID09IE5VTEwp
CisJCXJldHVybiAoRU5PTUVNKTsKKwlmcHVfa2Vybl9lbnRlcihjdXJ0aHJlYWQsIGVudC0+Y3R4
LCBGUFVfS0VSTl9OT1JNQUwpOworCXJldCA9IHg4Nl82NF9jYWxsNShmbiwgYSwgYiwgYywgZCwg
ZSk7CisJZnB1X2tlcm5fbGVhdmUoY3VydGhyZWFkLCBlbnQtPmN0eCk7CisJcmVsZWFzZV9mcHVf
Y2NfZW50KGVudCk7CisKKwlyZXR1cm4gKHJldCk7Cit9CisKK3VpbnQ2NF90CitfeDg2XzY0X2Nh
bGw2KHZvaWQgKmZuLCB1aW50NjRfdCBhLCB1aW50NjRfdCBiLCB1aW50NjRfdCBjLCB1aW50NjRf
dCBkLAorICAgIHVpbnQ2NF90IGUsIHVpbnQ2NF90IGYpCit7CisJc3RydWN0IGZwdV9jY19lbnQg
KmVudDsKKwl1aW50NjRfdCByZXQ7CisKKwlpZiAoKGVudCA9IHJlcXVlc3RfZnB1X2NjX2VudCgp
KSA9PSBOVUxMKQorCQlyZXR1cm4gKEVOT01FTSk7CisJZnB1X2tlcm5fZW50ZXIoY3VydGhyZWFk
LCBlbnQtPmN0eCwgRlBVX0tFUk5fTk9STUFMKTsKKwlyZXQgPSB4ODZfNjRfY2FsbDYoZm4sIGEs
IGIsIGMsIGQsIGUsIGYpOworCWZwdV9rZXJuX2xlYXZlKGN1cnRocmVhZCwgZW50LT5jdHgpOwor
CXJlbGVhc2VfZnB1X2NjX2VudChlbnQpOworCisJcmV0dXJuIChyZXQpOworfQogI2lmZGVmIF9f
YW1kNjRfXwogCiBleHRlcm4gdm9pZAl4ODZfNjRfd3JhcCh2b2lkKTsK
--e89a8f6465adbf936e04bb0d4973--
More information about the freebsd-net
mailing list