Subject: Adding UVMHIST tracking to arm/fault.c
To: None <port-arm@netbsd.org>
From: Richard Earnshaw <rearnsha@netbsd.org>
List: port-arm
Date: 08/07/2004 12:58:09
--=-3kXDgxWmkjPSwX1WyCbS
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

There are a large number of prefetch and data abort faults on ARM that
never end up in the uvm code, so don't get logged at all in UVMHIST. 
However, it's often useful to know about all the faults that are
occurring.  I found the attached patch invaluable when tracking down a
problem recently.

Does anybody think I should *not* commit the attached?

R.



--=-3kXDgxWmkjPSwX1WyCbS
Content-Disposition: attachment; filename=arm.diffs
Content-Type: application/octet-stream; name=arm.diffs
Content-Transfer-Encoding: base64

SW5kZXg6IGFybS9hcm0zMi9mYXVsdC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L3Ny
Yy9zeXMvYXJjaC9hcm0vYXJtMzIvZmF1bHQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40OQpk
aWZmIC1wIC1yMS40OSBmYXVsdC5jCioqKiBhcm0vYXJtMzIvZmF1bHQuYwkxNCBNYXIgMjAwNCAw
MTowODo0NyAtMDAwMAkxLjQ5Ci0tLSBhcm0vYXJtMzIvZmF1bHQuYwk3IEF1ZyAyMDA0IDExOjQ1
OjU3IC0wMDAwCioqKioqKioqKioqKioqKiBfX0tFUk5FTF9SQ1NJRCgwLCAiJE5ldEJTRDogZmF1
bHQuYyx2IDEuCioqKiA5MSw5NiAqKioqCi0tLSA5MSwxMDAgLS0tLQogICNpbmNsdWRlIDxzeXMv
a2VybmVsLmg+CiAgCiAgI2luY2x1ZGUgPHV2bS91dm1fZXh0ZXJuLmg+CisgI2luY2x1ZGUgPHV2
bS91dm1fc3RhdC5oPgorICNpZmRlZiBVVk1ISVNUCisgI2luY2x1ZGUgPHV2bS91dm0uaD4KKyAj
ZW5kaWYKICAKICAjaW5jbHVkZSA8YXJtL2NwdWNvbmYuaD4KICAKKioqKioqKioqKioqKioqIGRh
dGFfYWJvcnRfaGFuZGxlcih0cmFwZnJhbWVfdCAqdGYpCioqKiAyMTgsMjI3ICoqKioKLS0tIDIy
MiwyMzQgLS0tLQogIAlpbnQgZXJyb3I7CiAgCWtzaWdpbmZvX3Qga3NpOwogIAorIAlVVk1ISVNU
X0ZVTkMoImRhdGFfYWJvcnRfaGFuZGxlciIpOyAKKyAKICAJLyogR3JhYiBGQVIvRlNSIGJlZm9y
ZSBlbmFibGluZyBpbnRlcnJ1cHRzICovCiAgCWZhciA9IGNwdV9mYXVsdGFkZHJlc3MoKTsKICAJ
ZnNyID0gY3B1X2ZhdWx0c3RhdHVzKCk7CiAgCisgCVVWTUhJU1RfQ0FMTEVEKG1hcGhpc3QpOwog
IAkvKiBVcGRhdGUgdm1tZXRlciBzdGF0aXN0aWNzICovCiAgCXV2bWV4cC50cmFwcysrOwogIAoq
KioqKioqKioqKioqKiogZGF0YV9hYm9ydF9oYW5kbGVyKHRyYXBmcmFtZV90ICp0ZikKKioqIDIz
MiwyMzcgKioqKgotLS0gMjM5LDI0NyAtLS0tCiAgCS8qIEdldCB0aGUgY3VycmVudCBsd3Agc3Ry
dWN0dXJlIG9yIGx3cDAgaWYgdGhlcmUgaXMgbm9uZSAqLwogIAlsID0gKGN1cmx3cCAhPSBOVUxM
KSA/IGN1cmx3cCA6ICZsd3AwOwogIAorIAlVVk1ISVNUX0xPRyhtYXBoaXN0LCAiIChwYz0weCV4
LCBsPTB4JXgsIGZhcj0weCV4LCBmc3I9MHgleCkiLAorIAkgICAgdGYtPnRmX3BjLCBsLCBmYXIs
IGZzcik7CisgCiAgCS8qIERhdGEgYWJvcnQgY2FtZSBmcm9tIHVzZXIgbW9kZT8gKi8KICAJdXNl
ciA9IFRSQVBfVVNFUk1PREUodGYpOwogIAoqKioqKioqKioqKioqKiogZGF0YV9hYm9ydF9oYW5k
bGVyKHRyYXBmcmFtZV90ICp0ZikKKioqIDM5MiwzOTcgKioqKgotLS0gNDAyLDQwOCAtLS0tCiAg
CWlmIChwbWFwX2ZhdWx0X2ZpeHVwKG1hcC0+cG1hcCwgdmEsIGZ0eXBlLCB1c2VyKSkgewogIAkJ
aWYgKG1hcCAhPSBrZXJuZWxfbWFwKQogIAkJCWwtPmxfZmxhZyAmPSB+TF9TQV9QQUdFRkFVTFQ7
CisgCQlVVk1ISVNUX0xPRyhtYXBoaXN0LCAiIDwtIHJlZi9tb2QgZW11bCIsIDAsIDAsIDAsIDAp
OwogIAkJZ290byBvdXQ7CiAgCX0KICAKKioqKioqKioqKioqKioqIGRhdGFfYWJvcnRfaGFuZGxl
cih0cmFwZnJhbWVfdCAqdGYpCioqKiA0MTYsNDIxICoqKioKLS0tIDQyNyw0MzMgLS0tLQogIAlp
ZiAoX19wcmVkaWN0X3RydWUoZXJyb3IgPT0gMCkpIHsKICAJCWlmICh1c2VyKQogIAkJCXV2bV9n
cm93KGwtPmxfcHJvYywgdmEpOyAvKiBSZWNvcmQgYW55IHN0YWNrIGdyb3d0aCAqLworIAkJVVZN
SElTVF9MT0cobWFwaGlzdCwgIiA8LSB1dm0iLCAwLCAwLCAwLCAwKTsKICAJCWdvdG8gb3V0Owog
IAl9CiAgCioqKioqKioqKioqKioqKiBkYXRhX2Fib3J0X2hhbmRsZXIodHJhcGZyYW1lX3QgKnRm
KQoqKiogNDQ1LDQ1MCAqKioqCi0tLSA0NTcsNDYzIC0tLS0KICAJa3NpLmtzaV9jb2RlID0gKGVy
cm9yID09IEVBQ0NFUykgPyBTRUdWX0FDQ0VSUiA6IFNFR1ZfTUFQRVJSOwogIAlrc2kua3NpX2Fk
ZHIgPSAodV9pbnQzMl90ICopKGludHB0cl90KSBmYXI7CiAgCWtzaS5rc2lfdHJhcCA9IGZzcjsK
KyAJVVZNSElTVF9MT0cobWFwaGlzdCwgIiA8LSBlcm9yciAoJWQpIiwgZXJyb3IsIDAsIDAsIDAp
OwogIAogIGRvX3RyYXBzaWduYWw6CiAgCWNhbGxfdHJhcHNpZ25hbChsLCAma3NpKTsKKioqKioq
KioqKioqKioqIHByZWZldGNoX2Fib3J0X2hhbmRsZXIodHJhcGZyYW1lX3QgKnRmKQoqKiogNzAw
LDcwNSAqKioqCi0tLSA3MTMsNzIwIC0tLS0KICAJa3NpZ2luZm9fdCBrc2k7CiAgCWludCBlcnJv
cjsKICAKKyAJVVZNSElTVF9GVU5DKCJwcmVmZXRjaF9hYm9ydF9oYW5kbGVyIik7IFVWTUhJU1Rf
Q0FMTEVEKG1hcGhpc3QpOworIAogIAkvKiBVcGRhdGUgdm1tZXRlciBzdGF0aXN0aWNzICovCiAg
CXV2bWV4cC50cmFwcysrOwogIAoqKioqKioqKioqKioqKiogcHJlZmV0Y2hfYWJvcnRfaGFuZGxl
cih0cmFwZnJhbWVfdCAqdGYpCioqKiA3MzYsNzQxICoqKioKLS0tIDc1MSw3NTggLS0tLQogIAlm
YXVsdF9wYyA9IHRmLT50Zl9wYzsKICAJbCA9IGN1cmx3cDsKICAJbC0+bF9hZGRyLT51X3BjYi5w
Y2JfdGYgPSB0ZjsKKyAJVVZNSElTVF9MT0cobWFwaGlzdCwgIiAocGM9MHgleCwgbD0weCV4LCB0
Zj0weCV4KSIsIGZhdWx0X3BjLCBsLCB0ZiwKKyAJICAgIDApOwogIAogIAkvKiBPayB2YWxpZGF0
ZSB0aGUgYWRkcmVzcywgY2FuIG9ubHkgZXhlY3V0ZSBpbiBVU0VSIHNwYWNlICovCiAgCWlmIChf
X3ByZWRpY3RfZmFsc2UoZmF1bHRfcGMgPj0gVk1fTUFYVVNFUl9BRERSRVNTIHx8CioqKioqKioq
KioqKioqKiBwcmVmZXRjaF9hYm9ydF9oYW5kbGVyKHRyYXBmcmFtZV90ICp0ZikKKioqIDc1Nyw3
NjQgKioqKgogICNpZmRlZiBERUJVRwogIAlsYXN0X2ZhdWx0X2NvZGUgPSAtMTsKICAjZW5kaWYK
ISAJaWYgKHBtYXBfZmF1bHRfZml4dXAobWFwLT5wbWFwLCB2YSwgVk1fUFJPVF9SRUFELCAxKSkK
ICAJCWdvdG8gb3V0OwogIAogICNpZmRlZiBESUFHTk9TVElDCiAgCWlmIChfX3ByZWRpY3RfZmFs
c2UoY3VycmVudF9pbnRyX2RlcHRoID4gMCkpIHsKLS0tIDc3NCw3ODMgLS0tLQogICNpZmRlZiBE
RUJVRwogIAlsYXN0X2ZhdWx0X2NvZGUgPSAtMTsKICAjZW5kaWYKISAJaWYgKHBtYXBfZmF1bHRf
Zml4dXAobWFwLT5wbWFwLCB2YSwgVk1fUFJPVF9SRUFELCAxKSkgewohIAkJVVZNSElTVF9MT0cg
KG1hcGhpc3QsICIgPC0gZW11bGF0ZWQiLCAwLCAwLCAwLCAwKTsKICAJCWdvdG8gb3V0OworIAl9
CiAgCiAgI2lmZGVmIERJQUdOT1NUSUMKICAJaWYgKF9fcHJlZGljdF9mYWxzZShjdXJyZW50X2lu
dHJfZGVwdGggPiAwKSkgewoqKioqKioqKioqKioqKiogcHJlZmV0Y2hfYWJvcnRfaGFuZGxlcih0
cmFwZnJhbWVfdCAqdGYpCioqKiA3NjgsNzc4ICoqKioKICAjZW5kaWYKICAKICAJZXJyb3IgPSB1
dm1fZmF1bHQobWFwLCB2YSwgMCwgVk1fUFJPVF9SRUFEKTsKISAJaWYgKF9fcHJlZGljdF90cnVl
KGVycm9yID09IDApKQogIAkJZ290byBvdXQ7CiEgCiAgCUtTSV9JTklUX1RSQVAoJmtzaSk7CiAg
CiAgCWlmIChlcnJvciA9PSBFTk9NRU0pIHsKICAJCXByaW50ZigiVVZNOiBwaWQgJWQgKCVzKSwg
dWlkICVkIGtpbGxlZDogIgogIAkJICAgICJvdXQgb2Ygc3dhcFxuIiwgbC0+bF9wcm9jLT5wX3Bp
ZCwgbC0+bF9wcm9jLT5wX2NvbW0sCi0tLSA3ODcsNzk5IC0tLS0KICAjZW5kaWYKICAKICAJZXJy
b3IgPSB1dm1fZmF1bHQobWFwLCB2YSwgMCwgVk1fUFJPVF9SRUFEKTsKISAJaWYgKF9fcHJlZGlj
dF90cnVlKGVycm9yID09IDApKSB7CiEgCQlVVk1ISVNUX0xPRyAobWFwaGlzdCwgIiA8LSB1dm0i
LCAwLCAwLCAwLCAwKTsKICAJCWdvdG8gb3V0OwohIAl9CiAgCUtTSV9JTklUX1RSQVAoJmtzaSk7
CiAgCisgCVVWTUhJU1RfTE9HIChtYXBoaXN0LCAiIDwtIGZhdGFsICglZCkiLCBlcnJvciwgMCwg
MCwgMCk7CiAgCWlmIChlcnJvciA9PSBFTk9NRU0pIHsKICAJCXByaW50ZigiVVZNOiBwaWQgJWQg
KCVzKSwgdWlkICVkIGtpbGxlZDogIgogIAkJICAgICJvdXQgb2Ygc3dhcFxuIiwgbC0+bF9wcm9j
LT5wX3BpZCwgbC0+bF9wcm9jLT5wX2NvbW0sCg==

--=-3kXDgxWmkjPSwX1WyCbS--