Date: Wed, 03 Sep 2008 22:00:27 -0400 From: Robert Noland <rnoland@FreeBSD.org> To: Steve Kargl <sgk@troutmask.apl.washington.edu> Cc: freebsd-current@FreeBSD.org Subject: Re: drm causes kernel panic Message-ID: <1220493627.2467.6.camel@wombat.2hip.net> In-Reply-To: <20080903195845.GA1370@troutmask.apl.washington.edu> References: <20080903011612.GA1242@troutmask.apl.washington.edu> <1220416793.1848.1.camel@wombat.2hip.net> <20080903051228.GA2475@troutmask.apl.washington.edu> <1220471512.11763.9.camel@squirrel.corp.cox.com> <20080903195845.GA1370@troutmask.apl.washington.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
--=-flyrfkESakkE2tiRx7wv Content-Type: multipart/mixed; boundary="=-82ZGda6AVxPnsww7BYI+" --=-82ZGda6AVxPnsww7BYI+ Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Wed, 2008-09-03 at 12:58 -0700, Steve Kargl wrote: > On Wed, Sep 03, 2008 at 03:51:52PM -0400, Robert Noland wrote: > > On Tue, 2008-09-02 at 22:12 -0700, Steve Kargl wrote: > >>=20 > >> From dmesg: > >>=20 > >> vgapci0: <VGA display> port 0xb000-0xb0ff mem 0xfd000000-0xfdffffff,0 > >> xfeaff000-0xfeafffff irq 18 at device 6.0 on pci3 > >> drm0: <Rage XL> on vgapci0 > >> info: [drm] Initialized mach64 2.0.0 20060718 > >=20 > > Ok, I've found the problem... It is easy enough to fix your specific > > situation, but doing so will cause problems for other drivers... Which > > is the reason that I made that change to begin with. The big problem i= s > > that drm_pci_alloc gets called from a variety of places, some of which > > already hold locks while others don't. We aren't allowed to hold locks > > over some of the bus_dma functions, so I have to go through all of thes= e > > paths and figure out if it is generally safe to always drop the locks, > > or if I need to restructure the code somehow... If you want a patch to > > just get you going temporarily, just let me know... > >=20 >=20 > I can disable Xorg's dri module. When you have a patch you're happy > with, feel free to ping me for testing. Ok, please try the attached patch. I talked it over with another drm developer and it should be safe to drop all the locks while calling drm_pci_alloc(). I think I have fixed this for all drivers / paths that call it. It will log an error now if it is called with either of the two locks that I found being held. I have tested this on my intel 965gm so far and all is well. I also had to touch mach64 and radeon, so I need someone to validate those. (This is a different path from the panic you received previously) robert. --=-82ZGda6AVxPnsww7BYI+ Content-Disposition: attachment; filename=drm_pci_alloc-lock_fix.patch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name=drm_pci_alloc-lock_fix.patch; charset=utf-8 SW5kZXg6IGRldi9kcm0vZHJtX2J1ZnMuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGRldi9kcm0vZHJtX2J1 ZnMuYwkocmV2aXNpb24gMTgyNDY2KQ0KKysrIGRldi9kcm0vZHJtX2J1ZnMuYwkod29ya2luZyBj b3B5KQ0KQEAgLTU5OCw4ICs1OTgsMTAgQEANCiAJcGFnZV9jb3VudCA9IDA7DQogDQogCXdoaWxl ICggZW50cnktPmJ1Zl9jb3VudCA8IGNvdW50ICkgew0KKwkJRFJNX1NQSU5VTkxPQ0soJmRldi0+ ZG1hX2xvY2spOw0KIAkJZHJtX2RtYV9oYW5kbGVfdCAqZG1haCA9IGRybV9wY2lfYWxsb2MoZGV2 LCBzaXplLCBhbGlnbm1lbnQsDQogCQkgICAgMHhmZmZmZmZmZnVsKTsNCisJCURSTV9TUElOTE9D SygmZGV2LT5kbWFfbG9jayk7DQogCQlpZiAoZG1haCA9PSBOVUxMKSB7DQogCQkJLyogU2V0IGNv dW50IGNvcnJlY3RseSBzbyB3ZSBmcmVlIHRoZSBwcm9wZXIgYW1vdW50LiAqLw0KIAkJCWVudHJ5 LT5idWZfY291bnQgPSBjb3VudDsNCkluZGV4OiBkZXYvZHJtL21hY2g2NF9kbWEuYw0KPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KLS0tIGRldi9kcm0vbWFjaDY0X2RtYS5jCShyZXZpc2lvbiAxODI0NjYpDQorKysgZGV2 L2RybS9tYWNoNjRfZG1hLmMJKHdvcmtpbmcgY29weSkNCkBAIC04MzcsOCArODM3LDE0IEBADQog DQogCS8qIEZJWE1FOiBnZXQgYSBkbWEgYnVmZmVyIGZyb20gdGhlIGZyZWVsaXN0IGhlcmUgKi8N CiAJRFJNX0RFQlVHKCJBbGxvY2F0aW5nIGRhdGEgbWVtb3J5IC4uLlxuIik7DQorI2lmZGVmIF9f RnJlZUJTRF9fDQorCURSTV9VTkxPQ0soKTsNCisjZW5kaWYNCiAJY3B1X2FkZHJfZG1haCA9DQog CSAgICBkcm1fcGNpX2FsbG9jKGRldiwgMHgxMDAwLCAweDEwMDAsIDB4ZmZmZmZmZmZ1bCk7DQor I2lmZGVmIF9fRnJlZUJTRF9fDQorCURSTV9MT0NLKCk7DQorI2VuZGlmDQogCWlmICghY3B1X2Fk ZHJfZG1haCkgew0KIAkJRFJNX0lORk8oImRhdGEtbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIVxu Iik7DQogCQlyZXR1cm4gLUVOT01FTTsNCkluZGV4OiBkZXYvZHJtL2k5MTVfZG1hLmMNCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCi0tLSBkZXYvZHJtL2k5MTVfZG1hLmMJKHJldmlzaW9uIDE4MjQ2NikNCisrKyBkZXYv ZHJtL2k5MTVfZG1hLmMJKHdvcmtpbmcgY29weSkNCkBAIC0yNTAsMTYgKzI1MCwyMiBAQA0KIA0K IAkvKiBQcm9ncmFtIEhhcmR3YXJlIFN0YXR1cyBQYWdlICovDQogCWlmICghSTkxNV9ORUVEX0dG WF9IV1MoZGV2KSkgew0KLQkJZGV2X3ByaXYtPnN0YXR1c19wYWdlX2RtYWggPQ0KLQkJCWRybV9w Y2lfYWxsb2MoZGV2LCBQQUdFX1NJWkUsIFBBR0VfU0laRSwgMHhmZmZmZmZmZik7DQotDQotCQlp ZiAoIWRldl9wcml2LT5zdGF0dXNfcGFnZV9kbWFoKSB7DQorCQlkcm1fZG1hX2hhbmRsZV90ICpk bWFoOw0KKyNpZmRlZiBfX0ZyZWVCU0RfXw0KKwkJRFJNX1VOTE9DSygpOw0KKyNlbmRpZg0KKwkJ ZG1haCA9IGRybV9wY2lfYWxsb2MoZGV2LCBQQUdFX1NJWkUsIFBBR0VfU0laRSwgMHhmZmZmZmZm Zik7DQorI2lmZGVmIF9fRnJlZUJTRF9fDQorCQlEUk1fTE9DSygpOw0KKyNlbmRpZg0KKwkJaWYg KCFkbWFoKSB7DQogCQkJaTkxNV9kbWFfY2xlYW51cChkZXYpOw0KIAkJCURSTV9FUlJPUigiQ2Fu IG5vdCBhbGxvY2F0ZSBoYXJkd2FyZSBzdGF0dXMgcGFnZVxuIik7DQogCQkJcmV0dXJuIC1FTk9N RU07DQogCQl9DQotCQlkZXZfcHJpdi0+aHdfc3RhdHVzX3BhZ2UgPSBkZXZfcHJpdi0+c3RhdHVz X3BhZ2VfZG1haC0+dmFkZHI7DQotCQlkZXZfcHJpdi0+ZG1hX3N0YXR1c19wYWdlID0gZGV2X3By aXYtPnN0YXR1c19wYWdlX2RtYWgtPmJ1c2FkZHI7DQorCQlkZXZfcHJpdi0+c3RhdHVzX3BhZ2Vf ZG1haCA9IGRtYWg7DQorCQlkZXZfcHJpdi0+aHdfc3RhdHVzX3BhZ2UgPSBkbWFoLT52YWRkcjsN CisJCWRldl9wcml2LT5kbWFfc3RhdHVzX3BhZ2UgPSBkbWFoLT5idXNhZGRyOw0KIA0KIAkJbWVt c2V0KGRldl9wcml2LT5od19zdGF0dXNfcGFnZSwgMCwgUEFHRV9TSVpFKTsNCiANCkluZGV4OiBk ZXYvZHJtL2RybV9wY2kuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGRldi9kcm0vZHJtX3BjaS5jCShyZXZp c2lvbiAxODI0NjYpDQorKysgZGV2L2RybS9kcm1fcGNpLmMJKHdvcmtpbmcgY29weSkNCkBAIC03 NCw3ICs3NCwxNCBAQA0KIAkJcmV0dXJuIE5VTEw7DQogDQogI2lmZGVmIF9fRnJlZUJTRF9fDQot CURSTV9VTkxPQ0soKTsNCisJLyogTWFrZSBzdXJlIHdlIGFyZW4ndCBob2xkaW5nIGxvY2tzIGhl cmUgKi8NCisJbXR4X2Fzc2VydCgmZGV2LT5kZXZfbG9jaywgTUFfTk9UT1dORUQpOw0KKwlpZiAo bXR4X293bmVkKCZkZXYtPmRldl9sb2NrKSkNCisJICAgIERSTV9FUlJPUigiY2FsbGVkIHdoaWxl IGhvbGRpbmcgZGV2X2xvY2tcbiIpOw0KKwltdHhfYXNzZXJ0KCZkZXYtPmRtYV9sb2NrLCBNQV9O T1RPV05FRCk7DQorCWlmIChtdHhfb3duZWQoJmRldi0+ZG1hX2xvY2spKQ0KKwkgICAgRFJNX0VS Uk9SKCJjYWxsZWQgd2hpbGUgaG9sZGluZyBkbWFfbG9ja1xuIik7DQorDQogCXJldCA9IGJ1c19k bWFfdGFnX2NyZWF0ZShOVUxMLCBhbGlnbiwgMCwgLyogdGFnLCBhbGlnbiwgYm91bmRhcnkgKi8N CiAJICAgIG1heGFkZHIsIEJVU19TUEFDRV9NQVhBRERSLCAvKiBsb3dhZGRyLCBoaWdoYWRkciAq Lw0KIAkgICAgTlVMTCwgTlVMTCwgLyogZmlsdGZ1bmMsIGZpbHRmdW5jYXJncyAqLw0KQEAgLTgz LDcgKzkwLDYgQEANCiAJICAgICZkbWFoLT50YWcpOw0KIAlpZiAocmV0ICE9IDApIHsNCiAJCWZy ZWUoZG1haCwgTV9EUk0pOw0KLQkJRFJNX0xPQ0soKTsNCiAJCXJldHVybiBOVUxMOw0KIAl9DQog DQpAQCAtOTIsMTAgKzk4LDkgQEANCiAJaWYgKHJldCAhPSAwKSB7DQogCQlidXNfZG1hX3RhZ19k ZXN0cm95KGRtYWgtPnRhZyk7DQogCQlmcmVlKGRtYWgsIE1fRFJNKTsNCi0JCURSTV9MT0NLKCk7 DQogCQlyZXR1cm4gTlVMTDsNCiAJfQ0KLQlEUk1fTE9DSygpOw0KKw0KIAlyZXQgPSBidXNfZG1h bWFwX2xvYWQoZG1haC0+dGFnLCBkbWFoLT5tYXAsIGRtYWgtPnZhZGRyLCBzaXplLA0KIAkgICAg ZHJtX3BjaV9idXNkbWFfY2FsbGJhY2ssIGRtYWgsIDApOw0KIAlpZiAocmV0ICE9IDApIHsNCklu ZGV4OiBkZXYvZHJtL2F0aV9wY2lnYXJ0LmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBkZXYvZHJtL2F0aV9w Y2lnYXJ0LmMJKHJldmlzaW9uIDE4MjQ2NikNCisrKyBkZXYvZHJtL2F0aV9wY2lnYXJ0LmMJKHdv cmtpbmcgY29weSkNCkBAIC00NSwxMiArNDUsMTcgQEANCiBzdGF0aWMgaW50IGRybV9hdGlfYWxs b2NfcGNpZ2FydF90YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KIAkJCQkgICAgICAgc3Ry dWN0IGRybV9hdGlfcGNpZ2FydF9pbmZvICpnYXJ0X2luZm8pDQogew0KLQlkZXYtPnNnLT5kbWFo ID0gZHJtX3BjaV9hbGxvYyhkZXYsIGdhcnRfaW5mby0+dGFibGVfc2l6ZSwNCi0JCQkJCQlQQUdF X1NJWkUsDQotCQkJCQkJZ2FydF9pbmZvLT50YWJsZV9tYXNrKTsNCi0JaWYgKGRldi0+c2ctPmRt YWggPT0gTlVMTCkNCisJZHJtX2RtYV9oYW5kbGVfdCAqZG1haDsNCisNCisJRFJNX1VOTE9DSygp Ow0KKwlkbWFoID0gZHJtX3BjaV9hbGxvYyhkZXYsIGdhcnRfaW5mby0+dGFibGVfc2l6ZSwgUEFH RV9TSVpFLA0KKwkgICAgZ2FydF9pbmZvLT50YWJsZV9tYXNrKTsNCisJRFJNX0xPQ0soKTsNCisJ aWYgKGRtYWggPT0gTlVMTCkNCiAJCXJldHVybiBFTk9NRU07DQogDQorCWRldi0+c2ctPmRtYWgg PSBkbWFoOw0KKw0KIAlyZXR1cm4gMDsNCiB9DQogDQo= --=-82ZGda6AVxPnsww7BYI+-- --=-flyrfkESakkE2tiRx7wv Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) iEYEABECAAYFAki/QTsACgkQM4TrQ4qfRONxfwCeKHi5wj3c141tdhEn4Lo4mDsc aoAAnjM62HTABU5YAe2p3pTwr+nXzED1 =MTVm -----END PGP SIGNATURE----- --=-flyrfkESakkE2tiRx7wv--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1220493627.2467.6.camel>