Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Aug 2014 15:20:29 +0200
From:      Svatopluk Kraus <onwahe@gmail.com>
To:        freebsd-arch@freebsd.org
Subject:   PMAP_LOCK_DESTROY() vs. vmspace UMA_ZONE_NOFREE
Message-ID:  <CAFHCsPXLa2cZFBVSGm-e42p7oK5ZuQBwE5aNokuV2KrodKTSpA@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--001a113a75a29b3e060500aae22f
Content-Type: text/plain; charset=UTF-8

Hi,

I was playing with ports/benchmarks/forkbomb while testing my and Michal's
armv6 pmap based on i386 one when I found - IMHO - sketelot in the closet.

i386, xen, and sparc64 pmaps call PMAP_LOCK_DESTROY() in pmap_pinit() if
some allocation failed. As vmspace (struct pmap is part of it) uma zone is
created with UMA_ZONE_NOFREE flag and PMAP_LOCK_INIT() is called from
vmspace_zinit() initiator, PMAP_LOCK_DESTROY() should be called from
nowhere.

The pmap_c_patch.txt is attached to solve it.

IMHO, I think that definition of PMAP_LOCK_DESTROY() is misleading a little
as PMAP_LOCK_DESTROY() cannot be used anywhere as long as UMA_ZONE_NOFREE
flag is used.

The pmap_all_patch.txt is attach to wipe PMAP_LOCK_DESTROY() out of source
tree.

Svata

--001a113a75a29b3e060500aae22f
Content-Type: text/plain; charset=US-ASCII; name="pmap_c_patch.txt"
Content-Disposition: attachment; filename="pmap_c_patch.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hyvjlr090

SW5kZXg6IHN5cy9pMzg2L2kzODYvcG1hcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9pMzg2L2kzODYv
cG1hcC5jCShyZXZpc2lvbiAyNzAwMjApCisrKyBzeXMvaTM4Ni9pMzg2L3BtYXAuYwkod29ya2lu
ZyBjb3B5KQpAQCAtMTc1NSwxMCArMTc1NSw4IEBACiAJICovCiAJaWYgKHBtYXAtPnBtX3BkaXIg
PT0gTlVMTCkgewogCQlwbWFwLT5wbV9wZGlyID0gKHBkX2VudHJ5X3QgKilrdmFfYWxsb2MoTkJQ
VEQpOwotCQlpZiAocG1hcC0+cG1fcGRpciA9PSBOVUxMKSB7Ci0JCQlQTUFQX0xPQ0tfREVTVFJP
WShwbWFwKTsKKwkJaWYgKHBtYXAtPnBtX3BkaXIgPT0gTlVMTCkKIAkJCXJldHVybiAoMCk7Ci0J
CX0KICNpZmRlZiBQQUUKIAkJcG1hcC0+cG1fcGRwdCA9IHVtYV96YWxsb2MocGRwdHpvbmUsIE1f
V0FJVE9LIHwgTV9aRVJPKTsKIAkJS0FTU0VSVCgoKHZtX29mZnNldF90KXBtYXAtPnBtX3BkcHQg
JgpJbmRleDogc3lzL2kzODYveGVuL3BtYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvaTM4Ni94ZW4v
cG1hcC5jCShyZXZpc2lvbiAyNzAwMjApCisrKyBzeXMvaTM4Ni94ZW4vcG1hcC5jCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDU5LDcgKzE0NTksNiBAQAogCWlmIChwbWFwLT5wbV9wZGlyID09IE5VTEwp
IHsKIAkJcG1hcC0+cG1fcGRpciA9IChwZF9lbnRyeV90ICopa3ZhX2FsbG9jKE5CUFREKTsKIAkJ
aWYgKHBtYXAtPnBtX3BkaXIgPT0gTlVMTCkgewotCQkJUE1BUF9MT0NLX0RFU1RST1kocG1hcCk7
CiAjaWZkZWYgSEFNRklTVEVEX0xPQ0tJTkcKIAkJCW10eF91bmxvY2soJmNyZWF0ZWRlbGV0ZV9s
b2NrKTsKICNlbmRpZgpJbmRleDogc3lzL3NwYXJjNjQvc3BhcmM2NC9wbWFwLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gc3lzL3NwYXJjNjQvc3BhcmM2NC9wbWFwLmMJKHJldmlzaW9uIDI3MDAyMCkKKysrIHN5
cy9zcGFyYzY0L3NwYXJjNjQvcG1hcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMjExLDExICsxMjEx
LDkgQEAKIAkgKi8KIAlpZiAocG0tPnBtX3RzYiA9PSBOVUxMKSB7CiAJCXBtLT5wbV90c2IgPSAo
c3RydWN0IHR0ZSAqKWt2YV9hbGxvYyhUU0JfQlNJWkUpOwotCQlpZiAocG0tPnBtX3RzYiA9PSBO
VUxMKSB7Ci0JCQlQTUFQX0xPQ0tfREVTVFJPWShwbSk7CisJCWlmIChwbS0+cG1fdHNiID09IE5V
TEwpCiAJCQlyZXR1cm4gKDApOwogCQl9Ci0JfQogCiAJLyoKIAkgKiBBbGxvY2F0ZSBhbiBvYmpl
Y3QgZm9yIGl0Lgo=
--001a113a75a29b3e060500aae22f
Content-Type: text/plain; charset=US-ASCII; name="pmap_all_patch.txt"
Content-Disposition: attachment; filename="pmap_all_patch.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_hyvjlvdd1

SW5kZXg6IHN5cy9hbWQ2NC9pbmNsdWRlL3BtYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvYW1kNjQv
aW5jbHVkZS9wbWFwLmgJKHJldmlzaW9uIDI3MDAyMCkKKysrIHN5cy9hbWQ2NC9pbmNsdWRlL3Bt
YXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzI2LDcgKzMyNiw2IEBACiAjZGVmaW5lCVBNQVBfTE9D
SyhwbWFwKQkJbXR4X2xvY2soJihwbWFwKS0+cG1fbXR4KQogI2RlZmluZQlQTUFQX0xPQ0tfQVNT
RVJUKHBtYXAsIHR5cGUpIFwKIAkJCQltdHhfYXNzZXJ0KCYocG1hcCktPnBtX210eCwgKHR5cGUp
KQotI2RlZmluZQlQTUFQX0xPQ0tfREVTVFJPWShwbWFwKQltdHhfZGVzdHJveSgmKHBtYXApLT5w
bV9tdHgpCiAjZGVmaW5lCVBNQVBfTE9DS19JTklUKHBtYXApCW10eF9pbml0KCYocG1hcCktPnBt
X210eCwgInBtYXAiLCBcCiAJCQkJICAgIE5VTEwsIE1UWF9ERUYgfCBNVFhfRFVQT0spCiAjZGVm
aW5lCVBNQVBfTE9DS0VEKHBtYXApCW10eF9vd25lZCgmKHBtYXApLT5wbV9tdHgpCkluZGV4OiBz
eXMvYXJtL2luY2x1ZGUvcG1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9hcm0vaW5jbHVkZS9wbWFw
LmgJKHJldmlzaW9uIDI3MDAyMCkKKysrIHN5cy9hcm0vaW5jbHVkZS9wbWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE3Niw3ICsxNzYsNiBAQAogI2RlZmluZQlQTUFQX0FTU0VSVF9MT0NLRUQocG1h
cCkgXAogCQkJCW10eF9hc3NlcnQoJihwbWFwKS0+cG1fbXR4LCBNQV9PV05FRCkKICNkZWZpbmUJ
UE1BUF9MT0NLKHBtYXApCQltdHhfbG9jaygmKHBtYXApLT5wbV9tdHgpCi0jZGVmaW5lCVBNQVBf
TE9DS19ERVNUUk9ZKHBtYXApCW10eF9kZXN0cm95KCYocG1hcCktPnBtX210eCkKICNkZWZpbmUJ
UE1BUF9MT0NLX0lOSVQocG1hcCkJbXR4X2luaXQoJihwbWFwKS0+cG1fbXR4LCAicG1hcCIsIFwK
IAkJCQkgICAgTlVMTCwgTVRYX0RFRiB8IE1UWF9EVVBPSykKICNkZWZpbmUJUE1BUF9PV05FRChw
bWFwKQltdHhfb3duZWQoJihwbWFwKS0+cG1fbXR4KQpJbmRleDogc3lzL2kzODYvaTM4Ni9wbWFw
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gc3lzL2kzODYvaTM4Ni9wbWFwLmMJKHJldmlzaW9uIDI3MDAyMCkK
KysrIHN5cy9pMzg2L2kzODYvcG1hcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xNzU1LDEwICsxNzU1
LDggQEAKIAkgKi8KIAlpZiAocG1hcC0+cG1fcGRpciA9PSBOVUxMKSB7CiAJCXBtYXAtPnBtX3Bk
aXIgPSAocGRfZW50cnlfdCAqKWt2YV9hbGxvYyhOQlBURCk7Ci0JCWlmIChwbWFwLT5wbV9wZGly
ID09IE5VTEwpIHsKLQkJCVBNQVBfTE9DS19ERVNUUk9ZKHBtYXApOworCQlpZiAocG1hcC0+cG1f
cGRpciA9PSBOVUxMKQogCQkJcmV0dXJuICgwKTsKLQkJfQogI2lmZGVmIFBBRQogCQlwbWFwLT5w
bV9wZHB0ID0gdW1hX3phbGxvYyhwZHB0em9uZSwgTV9XQUlUT0sgfCBNX1pFUk8pOwogCQlLQVNT
RVJUKCgodm1fb2Zmc2V0X3QpcG1hcC0+cG1fcGRwdCAmCkluZGV4OiBzeXMvaTM4Ni9pbmNsdWRl
L3BtYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvaTM4Ni9pbmNsdWRlL3BtYXAuaAkocmV2aXNpb24g
MjcwMDIwKQorKysgc3lzL2kzODYvaW5jbHVkZS9wbWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4
Niw3ICszODYsNiBAQAogI2RlZmluZQlQTUFQX0xPQ0socG1hcCkJCW10eF9sb2NrKCYocG1hcCkt
PnBtX210eCkKICNkZWZpbmUJUE1BUF9MT0NLX0FTU0VSVChwbWFwLCB0eXBlKSBcCiAJCQkJbXR4
X2Fzc2VydCgmKHBtYXApLT5wbV9tdHgsICh0eXBlKSkKLSNkZWZpbmUJUE1BUF9MT0NLX0RFU1RS
T1kocG1hcCkJbXR4X2Rlc3Ryb3koJihwbWFwKS0+cG1fbXR4KQogI2RlZmluZQlQTUFQX0xPQ0tf
SU5JVChwbWFwKQltdHhfaW5pdCgmKHBtYXApLT5wbV9tdHgsICJwbWFwIiwgXAogCQkJCSAgICBO
VUxMLCBNVFhfREVGIHwgTVRYX0RVUE9LKQogI2RlZmluZQlQTUFQX0xPQ0tFRChwbWFwKQltdHhf
b3duZWQoJihwbWFwKS0+cG1fbXR4KQpJbmRleDogc3lzL2kzODYveGVuL3BtYXAuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBzeXMvaTM4Ni94ZW4vcG1hcC5jCShyZXZpc2lvbiAyNzAwMjApCisrKyBzeXMvaTM4
Ni94ZW4vcG1hcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xNDU5LDcgKzE0NTksNiBAQAogCWlmIChw
bWFwLT5wbV9wZGlyID09IE5VTEwpIHsKIAkJcG1hcC0+cG1fcGRpciA9IChwZF9lbnRyeV90ICop
a3ZhX2FsbG9jKE5CUFREKTsKIAkJaWYgKHBtYXAtPnBtX3BkaXIgPT0gTlVMTCkgewotCQkJUE1B
UF9MT0NLX0RFU1RST1kocG1hcCk7CiAjaWZkZWYgSEFNRklTVEVEX0xPQ0tJTkcKIAkJCW10eF91
bmxvY2soJmNyZWF0ZWRlbGV0ZV9sb2NrKTsKICNlbmRpZgpJbmRleDogc3lzL21pcHMvaW5jbHVk
ZS9wbWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gc3lzL21pcHMvaW5jbHVkZS9wbWFwLmgJKHJldmlzaW9u
IDI3MDAyMCkKKysrIHN5cy9taXBzL2luY2x1ZGUvcG1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDYsNyArMTA2LDYgQEAKIAogI2RlZmluZQlQTUFQX0xPQ0socG1hcCkJCW10eF9sb2NrKCYocG1h
cCktPnBtX210eCkKICNkZWZpbmUJUE1BUF9MT0NLX0FTU0VSVChwbWFwLCB0eXBlKQltdHhfYXNz
ZXJ0KCYocG1hcCktPnBtX210eCwgKHR5cGUpKQotI2RlZmluZQlQTUFQX0xPQ0tfREVTVFJPWShw
bWFwKSBtdHhfZGVzdHJveSgmKHBtYXApLT5wbV9tdHgpCiAjZGVmaW5lCVBNQVBfTE9DS19JTklU
KHBtYXApCW10eF9pbml0KCYocG1hcCktPnBtX210eCwgInBtYXAiLCBcCiAJCQkJICAgIE5VTEws
IE1UWF9ERUYpCiAjZGVmaW5lCVBNQVBfTE9DS0VEKHBtYXApCW10eF9vd25lZCgmKHBtYXApLT5w
bV9tdHgpCkluZGV4OiBzeXMvcG93ZXJwYy9pbmNsdWRlL3BtYXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBz
eXMvcG93ZXJwYy9pbmNsdWRlL3BtYXAuaAkocmV2aXNpb24gMjcwMDIwKQorKysgc3lzL3Bvd2Vy
cGMvaW5jbHVkZS9wbWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw3ICsyMTMsNiBAQAogI2Rl
ZmluZQlQTUFQX0xPQ0socG1hcCkJCW10eF9sb2NrKCYocG1hcCktPnBtX210eCkKICNkZWZpbmUJ
UE1BUF9MT0NLX0FTU0VSVChwbWFwLCB0eXBlKSBcCiAJCQkJbXR4X2Fzc2VydCgmKHBtYXApLT5w
bV9tdHgsICh0eXBlKSkKLSNkZWZpbmUJUE1BUF9MT0NLX0RFU1RST1kocG1hcCkJbXR4X2Rlc3Ry
b3koJihwbWFwKS0+cG1fbXR4KQogI2RlZmluZQlQTUFQX0xPQ0tfSU5JVChwbWFwKQltdHhfaW5p
dCgmKHBtYXApLT5wbV9tdHgsIFwKIAkJCQkgICAgKHBtYXAgPT0ga2VybmVsX3BtYXApID8gImtl
cm5lbHBtYXAiIDogXAogCQkJCSAgICAicG1hcCIsIE5VTEwsIE1UWF9ERUYpCkluZGV4OiBzeXMv
c3BhcmM2NC9pbmNsdWRlL3BtYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvc3BhcmM2NC9pbmNsdWRl
L3BtYXAuaAkocmV2aXNpb24gMjcwMDIwKQorKysgc3lzL3NwYXJjNjQvaW5jbHVkZS9wbWFwLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDYgQEAKICNkZWZpbmUJUE1BUF9MT0NLKHBtYXAp
CQltdHhfbG9jaygmKHBtYXApLT5wbV9tdHgpCiAjZGVmaW5lCVBNQVBfTE9DS19BU1NFUlQocG1h
cCwgdHlwZSkJCQkJCVwKIAkJCQltdHhfYXNzZXJ0KCYocG1hcCktPnBtX210eCwgKHR5cGUpKQot
I2RlZmluZQlQTUFQX0xPQ0tfREVTVFJPWShwbWFwKQltdHhfZGVzdHJveSgmKHBtYXApLT5wbV9t
dHgpCiAjZGVmaW5lCVBNQVBfTE9DS19JTklUKHBtYXApCW10eF9pbml0KCYocG1hcCktPnBtX210
eCwgInBtYXAiLAlcCiAJCQkJICAgIE5VTEwsIE1UWF9ERUYgfCBNVFhfRFVQT0spCiAjZGVmaW5l
CVBNQVBfTE9DS0VEKHBtYXApCW10eF9vd25lZCgmKHBtYXApLT5wbV9tdHgpCkluZGV4OiBzeXMv
c3BhcmM2NC9zcGFyYzY0L3BtYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvc3BhcmM2NC9zcGFyYzY0
L3BtYXAuYwkocmV2aXNpb24gMjcwMDIwKQorKysgc3lzL3NwYXJjNjQvc3BhcmM2NC9wbWFwLmMJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMTEsMTEgKzEyMTEsOSBAQAogCSAqLwogCWlmIChwbS0+cG1f
dHNiID09IE5VTEwpIHsKIAkJcG0tPnBtX3RzYiA9IChzdHJ1Y3QgdHRlICopa3ZhX2FsbG9jKFRT
Ql9CU0laRSk7Ci0JCWlmIChwbS0+cG1fdHNiID09IE5VTEwpIHsKLQkJCVBNQVBfTE9DS19ERVNU
Uk9ZKHBtKTsKKwkJaWYgKHBtLT5wbV90c2IgPT0gTlVMTCkKIAkJCXJldHVybiAoMCk7CiAJCX0K
LQl9CiAKIAkvKgogCSAqIEFsbG9jYXRlIGFuIG9iamVjdCBmb3IgaXQuCg==
--001a113a75a29b3e060500aae22f--



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