From owner-freebsd-net@FreeBSD.ORG Mon Mar 12 15:30:14 2012 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3F65E1065673 for ; Mon, 12 Mar 2012 15:30:14 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 2D7398FC0A for ; Mon, 12 Mar 2012 15:30:14 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q2CFUEPs019698 for ; Mon, 12 Mar 2012 15:30:14 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q2CFUDjR019695; Mon, 12 Mar 2012 15:30:13 GMT (envelope-from gnats) Date: Mon, 12 Mar 2012 15:30:13 GMT Message-Id: <201203121530.q2CFUDjR019695@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: Vladislav Movchan Cc: Subject: Re: kern/165622: [ndis][panic][patch] Unregistered use of FPU in kernel on amd64 X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Vladislav Movchan List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Mar 2012 15:30:14 -0000 The following reply was made to PR kern/165622; it has been noted by GNATS. From: Vladislav Movchan 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--