Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Mar 2012 15:30:13 GMT
From:      Vladislav Movchan <vladislav.movchan@gmail.com>
To:        freebsd-net@FreeBSD.org
Subject:   Re: kern/165622: [ndis][panic][patch] Unregistered use of FPU in kernel on amd64
Message-ID:  <201203121530.q2CFUDjR019695@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/165622; it has been noted by GNATS.

From: Vladislav Movchan <vladislav.movchan@gmail.com>
To: bug-followup@FreeBSD.org, vladislav.movchan@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--



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