Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Nov 2020 17:42:24 +0100
From:      Olivier Piras <freebsd@oprs.eu>
To:        freebsd-hackers@freebsd.org
Subject:   page fault in ifunit()
Message-ID:  <CAHCfMdkUkjBMJrwBDAU2-i74K1AzmVkMVaOMwaQ7OKATEXN-Fw@mail.gmail.com>

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

Hi,

I'm getting page fault errors on CURRENT while trying to get a pointer to
an ifnet instance with ifunit().
My code is running as a KLD, I've attached a stripped down version that
reproduces the issue (just load the module, brace yourself, and open
/dev/test).
The weird thing is that the page fault only seems to occur on DEVFS
operations (test_dev_open() in that instance). The very same call to
ifunit() works as expected in the init part of the module.

Apparently someone ran into the same problem a couple of years ago [1].
Unfortunately they didn't follow up on the issue.

[2] leads me to believe that it has something to do with VNET, so I tried
to play with CURVNET_SET() / CURVNET_RESTORE() in an effort to set a
context for the current VNET instance, to no avail (I have to admit it was
mostly a shot in the dark though, as VNET isn't something I'm particularly
familiar with).

I'm having a hard time figuring out why the problem only occurs in the
context of DEVFS operations; I'm currently reading up on VNET.
Any pointers would be greatly appreciated.

Regards,
  -Olivier.

[1]
http://freebsd.1045724.x6.nabble.com/Page-fault-inside-ifunit-ref-FreeBSD12-0-CURRENT-td6254170.html
[2] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=176992

--000000000000d5a6f205b3368c41
Content-Type: text/plain; charset="US-ASCII"; name="trap12.txt"
Content-Disposition: attachment; filename="trap12.txt"
Content-Transfer-Encoding: base64
Content-ID: <f_kh26v6202>
X-Attachment-Id: f_kh26v6202

RmF0YWwgdHJhcCAxMjogcGFnZSBmYXVsdCB3aGlsZSBpbiBrZXJuZWwgbW9kZQpjcHVpZCA9IDI7
IGFwaWMgaWQgPSAwMgpmYXVsdCB2aXJ0dWFsIGFkZHJlc3MgICA9IDB4MjgKZmF1bHQgY29kZSAg
ICAgICAgICAgICAgPSBzdXBlcnZpc29yIHJlYWQgZGF0YSwgcGFnZSBub3QgcHJlc2VudAppbnN0
cnVjdGlvbiBwb2ludGVyICAgICA9IDB4MjA6MHhmZmZmZmZmZjgwY2JiZWVlCnN0YWNrIHBvaW50
ZXIgICAgICAgICAgID0gMHgyODoweGZmZmZmZTAwMjQ4YjY2MzAKZnJhbWUgcG9pbnRlciAgICAg
ICAgICAgPSAweDI4OjB4ZmZmZmZlMDAyNDhiNjY2MApjb2RlIHNlZ21lbnQgICAgICAgICAgICA9
IGJhc2UgMHgwLCBsaW1pdCAweGZmZmZmLCB0eXBlIDB4MWIKICAgICAgICAgICAgICAgICAgICAg
ICAgPSBEUEwgMCwgcHJlcyAxLCBsb25nIDEsIGRlZjMyIDAsIGdyYW4gMQpwcm9jZXNzb3IgZWZs
YWdzICAgICAgICA9IGludGVycnVwdCBlbmFibGVkLCByZXN1bWUsIElPUEwgPSAwCmN1cnJlbnQg
cHJvY2VzcyAgICAgICAgID0gMjEyMyAoY2F0KQp0cmFwIG51bWJlciAgICAgICAgICAgICA9IDEy
CnBhbmljOiBwYWdlIGZhdWx0CmNwdWlkID0gMgp0aW1lID0gMTYwNDQxNTA0MgpLREI6IHN0YWNr
IGJhY2t0cmFjZToKIzAgMHhmZmZmZmZmZjgwYzBiMGM1IGF0IGtkYl9iYWNrdHJhY2UrMHg2NQoj
MSAweGZmZmZmZmZmODBiYmYxYmIgYXQgdnBhbmljKzB4MTdiCiMyIDB4ZmZmZmZmZmY4MGJiZjAz
MyBhdCBwYW5pYysweDQzCiMzIDB4ZmZmZmZmZmY4MTA5MDkxMSBhdCB0cmFwX2ZhdGFsKzB4Mzkx
CiM0IDB4ZmZmZmZmZmY4MTA5MDk2ZiBhdCB0cmFwX3BmYXVsdCsweDRmCiM1IDB4ZmZmZmZmZmY4
MTA4ZmZiNiBhdCB0cmFwKzB4Mjg2CiM2IDB4ZmZmZmZmZmY4MTA2N2I0OCBhdCBjYWxsdHJhcCsw
eDgKIzcgMHhmZmZmZmZmZjgyODNlMmMyIGF0IHRlc3RfZGV2X29wZW4rMHgyMgojOCAweGZmZmZm
ZmZmODBhNzhiNTAgYXQgZGV2ZnNfb3BlbisweDEyMAojOSAweGZmZmZmZmZmODEyNDc2OTUgYXQg
Vk9QX09QRU5fQVBWKzB4NzUKIzEwIDB4ZmZmZmZmZmY4MGM5ZGUxNyBhdCB2bl9vcGVuX3Zub2Rl
KzB4MWI3CiMxMSAweGZmZmZmZmZmODBjOWRhNjMgYXQgdm5fb3Blbl9jcmVkKzB4M2EzCiMxMiAw
eGZmZmZmZmZmODBjOTVlMTMgYXQga2Vybl9vcGVuYXQrMHgyMTMKIzEzIDB4ZmZmZmZmZmY4MTA5
MTRjNyBhdCBhbWQ2NF9zeXNjYWxsKzB4Mzg3CiMxNCAweGZmZmZmZmZmODEwNjg0NmUgYXQgZmFz
dF9zeXNjYWxsX2NvbW1vbisweGY4ClVwdGltZTogMjBtMjZzCkR1bXBpbmcgMjg0IG91dCBvZiAz
ODc4IE1COi4uNiUuLjEyJS4uMjMlLi4zNCUuLjQ1JS4uNTElLi42MiUuLjc0JS4uODUlLi45NiUK
Cl9fY3VydGhyZWFkICgpIGF0IC91c3IvaG9tZS9vcHJzL2dpdC9mcmVlYnNkL3N0YWJsZS8xMi9z
eXMvYW1kNjQvaW5jbHVkZS9wY3B1X2F1eC5oOjU1CjU1ICAgICAgL3Vzci9ob21lL29wcnMvZ2l0
L2ZyZWVic2Qvc3RhYmxlLzEyL3N5cy9hbWQ2NC9pbmNsdWRlL3BjcHVfYXV4Lmg6IE5vIHN1Y2gg
ZmlsZSBvciBkaXJlY3RvcnkuCihrZ2RiKSBidAojMCAgX19jdXJ0aHJlYWQgKCkgYXQgL3Vzci9o
b21lL29wcnMvZ2l0L2ZyZWVic2Qvc3RhYmxlLzEyL3N5cy9hbWQ2NC9pbmNsdWRlL3BjcHVfYXV4
Lmg6NTUKIzEgIGRvYWR1bXAgKHRleHRkdW1wPTxvcHRpbWl6ZWQgb3V0PikgYXQgL3Vzci9ob21l
L29wcnMvZ2l0L2ZyZWVic2Qvc3RhYmxlLzEyL3N5cy9rZXJuL2tlcm5fc2h1dGRvd24uYzozNzEK
IzIgIDB4ZmZmZmZmZmY4MGJiZWRkNSBpbiBrZXJuX3JlYm9vdCAoaG93dG89MjYwKSBhdCAvdXNy
L2hvbWUvb3Bycy9naXQvZnJlZWJzZC9zdGFibGUvMTIvc3lzL2tlcm4va2Vybl9zaHV0ZG93bi5j
OjQ1MQojMyAgMHhmZmZmZmZmZjgwYmJmMjEzIGluIHZwYW5pYyAoZm10PTxvcHRpbWl6ZWQgb3V0
PiwgYXA9PG9wdGltaXplZCBvdXQ+KSBhdCAvdXNyL2hvbWUvb3Bycy9naXQvZnJlZWJzZC9zdGFi
bGUvMTIvc3lzL2tlcm4va2Vybl9zaHV0ZG93bi5jOjg4MAojNCAgMHhmZmZmZmZmZjgwYmJmMDMz
IGluIHBhbmljIChmbXQ9PHVuYXZhaWxhYmxlPikgYXQgL3Vzci9ob21lL29wcnMvZ2l0L2ZyZWVi
c2Qvc3RhYmxlLzEyL3N5cy9rZXJuL2tlcm5fc2h1dGRvd24uYzo4MDcKIzUgIDB4ZmZmZmZmZmY4
MTA5MDkxMSBpbiB0cmFwX2ZhdGFsIChmcmFtZT0weGZmZmZmZTAwMjQ4YjY1NzAsIGV2YT00MCkg
YXQgL3Vzci9ob21lL29wcnMvZ2l0L2ZyZWVic2Qvc3RhYmxlLzEyL3N5cy9hbWQ2NC9hbWQ2NC90
cmFwLmM6OTIxCiM2ICAweGZmZmZmZmZmODEwOTA5NmYgaW4gdHJhcF9wZmF1bHQgKGZyYW1lPTB4
ZmZmZmZlMDAyNDhiNjU3MCwgdXNlcm1vZGU9PG9wdGltaXplZCBvdXQ+LCBzaWdubz08b3B0aW1p
emVkIG91dD4sIHVjb2RlPTxvcHRpbWl6ZWQgb3V0PikKICAgIGF0IC91c3IvaG9tZS9vcHJzL2dp
dC9mcmVlYnNkL3N0YWJsZS8xMi9zeXMvYW1kNjQvYW1kNjQvdHJhcC5jOjczOQojNyAgMHhmZmZm
ZmZmZjgxMDhmZmI2IGluIHRyYXAgKGZyYW1lPTB4ZmZmZmZlMDAyNDhiNjU3MCkgYXQgL3Vzci9o
b21lL29wcnMvZ2l0L2ZyZWVic2Qvc3RhYmxlLzEyL3N5cy9hbWQ2NC9hbWQ2NC90cmFwLmM6NDA1
CiM4ICA8c2lnbmFsIGhhbmRsZXIgY2FsbGVkPgojOSAgMHhmZmZmZmZmZjgwY2JiZWVlIGluIGlm
dW5pdCAobmFtZT0weGZmZmZmZmZmODI4M2U0YmYgImVtMCIpIGF0IC91c3IvaG9tZS9vcHJzL2dp
dC9mcmVlYnNkL3N0YWJsZS8xMi9zeXMvbmV0L2lmLmM6MjQ4MgojMTAgMHhmZmZmZmZmZjgyODNl
MmMyIGluIHRlc3RfZGV2X29wZW4gKCkgZnJvbSAuL3Rlc3RfZGV2LmtvCiMxMSAweGZmZmZmZmZm
ODBhNzhiNTAgaW4gZGV2ZnNfb3BlbiAoYXA9MHhmZmZmZmUwMDI0OGI2NzgwKSBhdCAvdXNyL2hv
bWUvb3Bycy9naXQvZnJlZWJzZC9zdGFibGUvMTIvc3lzL2ZzL2RldmZzL2RldmZzX3Zub3BzLmM6
MTE0MQojMTIgMHhmZmZmZmZmZjgxMjQ3Njk1IGluIFZPUF9PUEVOX0FQViAodm9wPTB4ZmZmZmZm
ZmY4MWFmNWYxMCA8ZGV2ZnNfc3BlY29wcz4sIGE9MHhmZmZmZmUwMDI0OGI2NzgwKSBhdCB2bm9k
ZV9pZi5jOjQ2NwojMTMgMHhmZmZmZmZmZjgwYzlkZTE3IGluIFZPUF9PUEVOICh2cD0weGZmZmZm
ODAwMmVhYjk1YTAsIG1vZGU9MSwgY3JlZD0weGZmZmZmODAwMDQ0Mjc3MDAsIHRkPTxvcHRpbWl6
ZWQgb3V0PiwgZnA9MHhmZmZmZjgwMDA0NDdlZGMwKSBhdCAuL3Zub2RlX2lmLmg6MTk2CiMxNCB2
bl9vcGVuX3Zub2RlICh2cD0weGZmZmZmODAwMmVhYjk1YTAsIGZtb2RlPTEsIGNyZWQ9MHhmZmZm
ZjgwMDA0NDI3NzAwLCB0ZD08b3B0aW1pemVkIG91dD4sIGZwPTB4ZmZmZmY4MDAwNDQ3ZWRjMCkK
ICAgIGF0IC91c3IvaG9tZS9vcHJzL2dpdC9mcmVlYnNkL3N0YWJsZS8xMi9zeXMva2Vybi92ZnNf
dm5vcHMuYzozOTQKIzE1IDB4ZmZmZmZmZmY4MGM5ZGE2MyBpbiB2bl9vcGVuX2NyZWQgKG5kcD0w
eGZmZmZmZTAwMjQ4YjY5NTgsIGZsYWdwPTB4ZmZmZmZlMDAyNDhiNmE5NCwgY21vZGU9MCwgdm5f
b3Blbl9mbGFncz08b3B0aW1pemVkIG91dD4sIGNyZWQ9MHhmZmZmZjgwMDA0NDI3NzAwLAogICAg
ZnA9MHhmZmZmZjgwMDA0NDdlZGMwKSBhdCAvdXNyL2hvbWUvb3Bycy9naXQvZnJlZWJzZC9zdGFi
bGUvMTIvc3lzL2tlcm4vdmZzX3Zub3BzLmM6MzAxCiMxNiAweGZmZmZmZmZmODBjOTVlMTMgaW4g
a2Vybl9vcGVuYXQgKHRkPTB4ZmZmZmY4MDAwNDU4NjAwMCwgZmQ9LTEwMCwgcGF0aD0weDdmZmZm
ZmZmZWU2YyA8ZXJyb3I6IENhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHg3ZmZmZmZm
ZmVlNmM+LAogICAgcGF0aHNlZz1VSU9fVVNFUlNQQUNFLCBmbGFncz0xLCBtb2RlPTxvcHRpbWl6
ZWQgb3V0PikgYXQgL3Vzci9ob21lL29wcnMvZ2l0L2ZyZWVic2Qvc3RhYmxlLzEyL3N5cy9rZXJu
L3Zmc19zeXNjYWxscy5jOjExMTQKIzE3IDB4ZmZmZmZmZmY4MTA5MTRjNyBpbiBzeXNjYWxsZW50
ZXIgKHRkPTB4ZmZmZmY4MDAwNDU4NjAwMCkKICAgIGF0IC91c3IvaG9tZS9vcHJzL2dpdC9mcmVl
YnNkL3N0YWJsZS8xMi9zeXMvYW1kNjQvYW1kNjQvLi4vLi4va2Vybi9zdWJyX3N5c2NhbGwuYzox
NDQKIzE4IGFtZDY0X3N5c2NhbGwgKHRkPTB4ZmZmZmY4MDAwNDU4NjAwMCwgdHJhY2VkPTApIGF0
IC91c3IvaG9tZS9vcHJzL2dpdC9mcmVlYnNkL3N0YWJsZS8xMi9zeXMvYW1kNjQvYW1kNjQvdHJh
cC5jOjExNjMKIzE5IDxzaWduYWwgaGFuZGxlciBjYWxsZWQ+CiMyMCAweDAwMDAwMDA4MDAzOTc5
MWEgaW4gPz8gKCkKQmFja3RyYWNlIHN0b3BwZWQ6IENhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFk
ZHJlc3MgMHg3ZmZmZmZmZmU2MDgKKGtnZGIpCg==
--000000000000d5a6f205b3368c41
Content-Type: application/octet-stream; name=Makefile
Content-Disposition: attachment; filename=Makefile
Content-Transfer-Encoding: base64
Content-ID: <f_kh23qcqc0>
X-Attachment-Id: f_kh23qcqc0

U1JDUz10ZXN0X2Rldi5jCktNT0Q9dGVzdF9kZXYKQ0ZMQUdTPS1nCgouaW5jbHVkZSA8YnNkLmtt
b2QubWs+Cg==
--000000000000d5a6f205b3368c41--



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