Date: Mon, 6 Dec 2010 12:09:23 +0530 From: "Jayachandran C." <c.jayachandran@gmail.com> To: freebsd-mips@freebsd.org, Alan Cox <alc@cs.rice.edu> Subject: uma_small_alloc from direct mapped memory. Message-ID: <AANLkTi=Rn_L%2BLtGyAay7HJQco6ne-WgRxri-BH=A9q1m@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
--0016e65b584009f8a40496b826c3 Content-Type: text/plain; charset=ISO-8859-1 Hi all, The attached patch uses the mechanism used to allocate page table pages for UMA small allocations too. This will make sure that all the small UMA allocations comes from KSEG0 pages in 32 bit and XKPHYS in 64bit. This reduces TLB misses in kernel code significantly, and can give major performance advantage for applications that spent a lot of time in kernel. Please let me know your comments. Thanks, JC. --0016e65b584009f8a40496b826c3 Content-Type: text/x-patch; charset=US-ASCII; name="mips-uma.patch" Content-Disposition: attachment; filename="mips-uma.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ghcyuj7h0 SW5kZXg6IHN5cy9taXBzL2luY2x1ZGUvcG1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9taXBzL2lu Y2x1ZGUvcG1hcC5oCShyZXZpc2lvbiAyMTYxNDcpCisrKyBzeXMvbWlwcy9pbmNsdWRlL3BtYXAu aAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDYgKzE2Myw5IEBACiBpbnQgcG1hcF9jb21wdXRlX3Bh Z2VzX3RvX2R1bXAodm9pZCk7CiB2b2lkIHBtYXBfZmx1c2hfcHZjYWNoZSh2bV9wYWdlX3QgbSk7 CiBpbnQgcG1hcF9lbXVsYXRlX21vZGlmaWVkKHBtYXBfdCBwbWFwLCB2bV9vZmZzZXRfdCB2YSk7 Cit2b2lkIHBtYXBfZ3Jvd19kaXJlY3RfcGFnZV9jYWNoZSh2b2lkKTsKK3ZtX3BhZ2VfdCBwbWFw X2FsbG9jX2RpcmVjdF9wYWdlKHVuc2lnbmVkIGludCBpbmRleCwgaW50IHJlcSk7CisKICNlbmRp ZgkJCQkvKiBfS0VSTkVMICovCiAKICNlbmRpZgkJCQkvKiAhTE9DT1JFICovCkluZGV4OiBzeXMv bWlwcy9pbmNsdWRlL3ZtcGFyYW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbWlwcy9pbmNsdWRlL3Zt cGFyYW0uaAkocmV2aXNpb24gMjE2MTU3KQorKysgc3lzL21pcHMvaW5jbHVkZS92bXBhcmFtLmgJ KHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsxNDksOCBAQAogI2RlZmluZQlWTV9JTklUSUFMX1BB R0VJTgkxNgogI2VuZGlmCiAKKyNkZWZpbmUJVU1BX01EX1NNQUxMX0FMTE9DCisKIC8qCiAgKiBt YXggbnVtYmVyIG9mIG5vbi1jb250aWcgY2h1bmtzIG9mIHBoeXNpY2FsIFJBTSB5b3UgY2FuIGhh dmUKICAqLwpJbmRleDogc3lzL21pcHMvbWlwcy92bV9tYWNoZGVwLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g c3lzL21pcHMvbWlwcy92bV9tYWNoZGVwLmMJKHJldmlzaW9uIDIxNjE0NykKKysrIHN5cy9taXBz L21pcHMvdm1fbWFjaGRlcC5jCSh3b3JraW5nIGNvcHkpCkBAIC01MzgsOCArNTM4LDU3IEBACiB2 b2lkCiBzd2lfdm0odm9pZCAqZHVtbXkpCiB7CisKKwlpZiAoYnVzZG1hX3N3aV9wZW5kaW5nKQor CQlidXNkbWFfc3dpKCk7CiB9CiAKK3ZvaWQgKgordW1hX3NtYWxsX2FsbG9jKHVtYV96b25lX3Qg em9uZSwgaW50IGJ5dGVzLCB1X2ludDhfdCAqZmxhZ3MsIGludCB3YWl0KQoreworCXN0YXRpYyB2 bV9waW5kZXhfdCBjb2xvcjsKKwl2bV9wYWRkcl90IHBhOworCXZtX3BhZ2VfdCBtOworCWludCBw ZmxhZ3M7CisJdm9pZCAqdmE7CisKKwkqZmxhZ3MgPSBVTUFfU0xBQl9QUklWOworCisJaWYgKCh3 YWl0ICYgKE1fTk9XQUlUfE1fVVNFX1JFU0VSVkUpKSA9PSBNX05PV0FJVCkKKwkJcGZsYWdzID0g Vk1fQUxMT0NfSU5URVJSVVBUOworCWVsc2UKKwkJcGZsYWdzID0gVk1fQUxMT0NfU1lTVEVNOwor CisJZm9yICg7OykgeworCQltID0gcG1hcF9hbGxvY19kaXJlY3RfcGFnZShjb2xvcisrLCBwZmxh Z3MpOworCQlpZiAobSA9PSBOVUxMKSB7CisJCQlpZiAod2FpdCAmIE1fTk9XQUlUKQorCQkJCXJl dHVybiAoTlVMTCk7CisJCQllbHNlCisJCQkJcG1hcF9ncm93X2RpcmVjdF9wYWdlX2NhY2hlKCk7 CisJCX0gZWxzZQorCQkJYnJlYWs7CisJfQorCisJcGEgPSBWTV9QQUdFX1RPX1BIWVMobSk7CisJ dmEgPSAodm9pZCAqKU1JUFNfUEhZU19UT19ESVJFQ1QocGEpOworCWlmICgod2FpdCAmIE1fWkVS TykgJiYgKG0tPmZsYWdzICYgUEdfWkVSTykgPT0gMCkKKwkJYnplcm8odmEsIFBBR0VfU0laRSk7 CisJcmV0dXJuICh2YSk7Cit9CisKK3ZvaWQKK3VtYV9zbWFsbF9mcmVlKHZvaWQgKm1lbSwgaW50 IHNpemUsIHVfaW50OF90IGZsYWdzKQoreworCXZtX3BhZ2VfdCBtOworCisJbSA9IFBIWVNfVE9f Vk1fUEFHRShNSVBTX0RJUkVDVF9UT19QSFlTKCh2bV9vZmZzZXRfdCltZW0pKTsKKwltLT53aXJl X2NvdW50LS07CisJdm1fcGFnZV9mcmVlKG0pOworCWF0b21pY19zdWJ0cmFjdF9pbnQoJmNudC52 X3dpcmVfY291bnQsIDEpOworfQorCisKIGludAogY3B1X3NldF91c2VyX3RscyhzdHJ1Y3QgdGhy ZWFkICp0ZCwgdm9pZCAqdGxzX2Jhc2UpCiB7CkluZGV4OiBzeXMvbWlwcy9taXBzL3BtYXAuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBzeXMvbWlwcy9taXBzL3BtYXAuYwkocmV2aXNpb24gMjE2MTU3KQorKysg c3lzL21pcHMvbWlwcy9wbWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw4ICsxODUsNiBAQAog c3RhdGljIHZtX3BhZ2VfdCBfcG1hcF9hbGxvY3B0ZShwbWFwX3QgcG1hcCwgdW5zaWduZWQgcHRl cGluZGV4LCBpbnQgZmxhZ3MpOwogc3RhdGljIGludCBwbWFwX3VudXNlX3B0KHBtYXBfdCwgdm1f b2Zmc2V0X3QsIHZtX3BhZ2VfdCk7CiBzdGF0aWMgaW50IGluaXRfcHRlX3Byb3Qodm1fb2Zmc2V0 X3QgdmEsIHZtX3BhZ2VfdCBtLCB2bV9wcm90X3QgcHJvdCk7Ci1zdGF0aWMgdm1fcGFnZV90IHBt YXBfYWxsb2NfcHRlX3BhZ2UodW5zaWduZWQgaW50IGluZGV4LCBpbnQgcmVxKTsKLXN0YXRpYyB2 b2lkIHBtYXBfZ3Jvd19wdGVfcGFnZV9jYWNoZSh2b2lkKTsKIAogI2lmZGVmIFNNUAogc3RhdGlj IHZvaWQgcG1hcF9pbnZhbGlkYXRlX3BhZ2VfYWN0aW9uKHZvaWQgKmFyZyk7CkBAIC0xMDYyLDgg KzEwNjAsOCBAQAogCWJ6ZXJvKCZwbWFwLT5wbV9zdGF0cywgc2l6ZW9mIHBtYXAtPnBtX3N0YXRz KTsKIH0KIAotc3RhdGljIHZvaWQKLXBtYXBfZ3Jvd19wdGVfcGFnZV9jYWNoZSgpCit2b2lkCitw bWFwX2dyb3dfZGlyZWN0X3BhZ2VfY2FjaGUoKQogewogCiAjaWZkZWYgX19taXBzX242NApAQCAt MTA3Myw4ICsxMDcxLDggQEAKICNlbmRpZgogfQogCi1zdGF0aWMgdm1fcGFnZV90Ci1wbWFwX2Fs bG9jX3B0ZV9wYWdlKHVuc2lnbmVkIGludCBpbmRleCwgaW50IHJlcSkKK3ZtX3BhZ2VfdAorcG1h cF9hbGxvY19kaXJlY3RfcGFnZSh1bnNpZ25lZCBpbnQgaW5kZXgsIGludCByZXEpCiB7CiAJdm1f cGFnZV90IG07CiAKQEAgLTExMDcsOCArMTEwNSw4IEBACiAJLyoKIAkgKiBhbGxvY2F0ZSB0aGUg cGFnZSBkaXJlY3RvcnkgcGFnZQogCSAqLwotCXdoaWxlICgocHRkcGcgPSBwbWFwX2FsbG9jX3B0 ZV9wYWdlKE5VU0VSUEdUQkxTLCBWTV9BTExPQ19OT1JNQUwpKSA9PSBOVUxMKQotCSAgICAgICBw bWFwX2dyb3dfcHRlX3BhZ2VfY2FjaGUoKTsKKwl3aGlsZSAoKHB0ZHBnID0gcG1hcF9hbGxvY19k aXJlY3RfcGFnZShOVVNFUlBHVEJMUywgVk1fQUxMT0NfTk9STUFMKSkgPT0gTlVMTCkKKwkgICAg ICAgcG1hcF9ncm93X2RpcmVjdF9wYWdlX2NhY2hlKCk7CiAKIAlwdGR2YSA9IE1JUFNfUEhZU19U T19ESVJFQ1QoVk1fUEFHRV9UT19QSFlTKHB0ZHBnKSk7CiAJcG1hcC0+cG1fc2VndGFiID0gKHBk X2VudHJ5X3QgKilwdGR2YTsKQEAgLTExNDEsMTEgKzExMzksMTEgQEAKIAkvKgogCSAqIEZpbmQg b3IgZmFicmljYXRlIGEgbmV3IHBhZ2V0YWJsZSBwYWdlCiAJICovCi0JaWYgKChtID0gcG1hcF9h bGxvY19wdGVfcGFnZShwdGVwaW5kZXgsIFZNX0FMTE9DX05PUk1BTCkpID09IE5VTEwpIHsKKwlp ZiAoKG0gPSBwbWFwX2FsbG9jX2RpcmVjdF9wYWdlKHB0ZXBpbmRleCwgVk1fQUxMT0NfTk9STUFM KSkgPT0gTlVMTCkgewogCQlpZiAoZmxhZ3MgJiBNX1dBSVRPSykgewogCQkJUE1BUF9VTkxPQ0so cG1hcCk7CiAJCQl2bV9wYWdlX3VubG9ja19xdWV1ZXMoKTsKLQkJCXBtYXBfZ3Jvd19wdGVfcGFn ZV9jYWNoZSgpOworCQkJcG1hcF9ncm93X2RpcmVjdF9wYWdlX2NhY2hlKCk7CiAJCQl2bV9wYWdl X2xvY2tfcXVldWVzKCk7CiAJCQlQTUFQX0xPQ0socG1hcCk7CiAJCX0KQEAgLTEzMTMsNyArMTMx MSw3IEBACiAjaWZkZWYgX19taXBzX242NAogCQlpZiAoKnBkcGUgPT0gMCkgewogCQkJLyogbmV3 IGludGVybWVkaWF0ZSBwYWdlIHRhYmxlIGVudHJ5ICovCi0JCQlua3BnID0gcG1hcF9hbGxvY19w dGVfcGFnZShua3B0LCBWTV9BTExPQ19JTlRFUlJVUFQpOworCQkJbmtwZyA9IHBtYXBfYWxsb2Nf ZGlyZWN0X3BhZ2UobmtwdCwgVk1fQUxMT0NfSU5URVJSVVBUKTsKIAkJCWlmIChua3BnID09IE5V TEwpCiAJCQkJcGFuaWMoInBtYXBfZ3Jvd2tlcm5lbDogbm8gbWVtb3J5IHRvIGdyb3cga2VybmVs Iik7CiAJCQkqcGRwZSA9IChwZF9lbnRyeV90KU1JUFNfUEhZU19UT19ESVJFQ1QoVk1fUEFHRV9U T19QSFlTKG5rcGcpKTsKQEAgLTEzMzMsNyArMTMzMSw3IEBACiAJCS8qCiAJCSAqIFRoaXMgaW5k ZXggaXMgYm9ndXMsIGJ1dCBvdXQgb2YgdGhlIHdheQogCQkgKi8KLQkJbmtwZyA9IHBtYXBfYWxs b2NfcHRlX3BhZ2UobmtwdCwgVk1fQUxMT0NfSU5URVJSVVBUKTsKKwkJbmtwZyA9IHBtYXBfYWxs b2NfZGlyZWN0X3BhZ2UobmtwdCwgVk1fQUxMT0NfSU5URVJSVVBUKTsKIAkJaWYgKCFua3BnKQog CQkJcGFuaWMoInBtYXBfZ3Jvd2tlcm5lbDogbm8gbWVtb3J5IHRvIGdyb3cga2VybmVsIik7CiAJ CW5rcHQrKzsK --0016e65b584009f8a40496b826c3--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=Rn_L%2BLtGyAay7HJQco6ne-WgRxri-BH=A9q1m>