Skip site navigation (1)Skip section navigation (2)
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>