8.0 beta2 (patched) - drm_bufs.c: system freeze

Robert Noland rnoland at FreeBSD.org
Sat Aug 1 00:30:16 UTC 2009


On Fri, 2009-07-31 at 22:29 +0200, albri wrote:
> hello list,
> here is an information what does not function on one system:
> a patched drm with rnoland's patch drm-nouveau-043009.patch and a daily fresh xf86-video-nouveau causes system to freeze. there was written no coredump and no Xorg.o.log, just a freeze. the only info gotten is written to log/messages.
> kernel is GENERIC with amd64. graphic card is IGP.
> just for your information in wish it is helpful.

So, I had someone else report this today... I'm not sure how or why this
hasn't showed up more... It is a WITNESS panic which is already fixed in
the later patch.  If you edit /usr/src/sys/dev/drm/nouveau_mem.c and
search for the line containing drm_sg_alloc().  Place the DRM_UNLOCK();
and DRM_LOCK(); around that call it should get things going.  See below.

@@ -27288,7 +27262,9 @@
 +              DRM_DEBUG("Allocating sg memory for PCI DMA\n");
 +              sgreq.size = 16 << 20; //16MB of PCI scatter-gather zone
 +
++              DRM_UNLOCK();
 +              ret = drm_sg_alloc(dev, &sgreq);
++              DRM_LOCK();
 +              if (ret) {
 +                      DRM_ERROR("Unable to allocate %ldMB of
scatter-gather"
 +                                " pages for PCI DMA!",sgreq.size>>20);

robert.

> best regards
> 
> kern.ostype: FreeBSD
> kern.osrelease: 8.0-BETA2
> kern.osrevision: 199506
> kern.osreldate: 800106
> 
> # cat messages | grep -ie "nouve\|drm"
> Jul 30 02:27:07 xxx kernel: drm0: <NVidia Display Adapter> on vgapci0
> Jul 30 02:27:07 xxx kernel: info: [drm] MSI enabled 1 message(s)
> Jul 30 02:27:07 xxx kernel: info: [drm] Detected an NV44 generation card (0x04e000a2)
> Jul 30 02:27:07 xxx kernel: vgapci0: child drm0 requested pci_enable_busmaster
> Jul 30 02:27:07 xxx kernel: info: [drm] Initialized nouveau 0.0.12 20060213
> Jul 30 02:27:48 xxx kernel: error: [drm:pid1979:drm_alloc_resource] *ERROR* Couldn't find resource 0x2
> Jul 30 02:29:19 xxx kernel: exclusive sleep mutex drmdev (drmdev) r = 0 (0xffffff00112a20a0) locked @ /usr/src/sys/modules/drm/drm/../../../dev/drm/drm_bufs.c:55
> Jul 30 02:29:19 xxx kernel: drm_sg_alloc() at drm_sg_alloc+0x4b
> Jul 30 02:29:19 xxx kernel: nouveau_mem_init() at nouveau_mem_init+0x4f3
> Jul 30 02:29:19 xxx kernel: nouveau_card_init() at nouveau_card_init+0x7c5
> Jul 30 02:29:19 xxx kernel: nouveau_ioctl_card_init() at nouveau_ioctl_card_init+0x9
> Jul 30 02:29:19 xxx kernel: drm_ioctl() at drm_ioctl+0x314
> Jul 30 02:29:19 xxx kernel: panic: _mtx_lock_sleep: recursed on non-recursive mutex drmdev @ /usr/src/sys/modules/drm/drm/../../../dev/drm/drm_scatter.c:123
> Jul 30 22:14:54 xxx kernel: drm0: <NVidia Display Adapter> on vgapci0
> Jul 30 22:14:54 xxx kernel: info: [drm] MSI enabled 1 message(s)
> Jul 30 22:14:54 xxx kernel: info: [drm] Detected an NV44 generation card (0x04e000a2)
> Jul 30 22:14:54 xxx kernel: vgapci0: child drm0 requested pci_enable_busmaster
> Jul 30 22:14:54 xxx kernel: info: [drm] Initialized nouveau 0.0.12 20060213
> Jul 31 09:16:27 xxx kernel: drm0: <NVidia Display Adapter> on vgapci0
> Jul 31 09:16:27 xxx kernel: info: [drm] MSI enabled 1 message(s)
> Jul 31 09:16:27 xxx kernel: info: [drm] Detected an NV44 generation card (0x04e000a2)
> Jul 31 09:16:27 xxx kernel: vgapci0: child drm0 requested pci_enable_busmaster
> Jul 31 09:16:27 xxx kernel: info: [drm] Initialized nouveau 0.0.12 20060213
> Jul 31 09:19:34 xxx kernel: error: [drm:pid17956:drm_alloc_resource] *ERROR* Couldn't find resource 0x2
> Jul 31 09:19:34 xxx kernel: exclusive sleep mutex drmdev (drmdev) r = 0 (0xffffff00269ae0a0) locked @ /usr/src/sys/modules/drm/drm/../../../dev/drm/drm_bufs.c:55
> Jul 31 09:19:34 xxx kernel: drm_sg_alloc() at drm_sg_alloc+0x4b
> Jul 31 09:19:34 xxx kernel: nouveau_mem_init() at nouveau_mem_init+0x4f3
> Jul 31 09:19:34 xxx kernel: nouveau_card_init() at nouveau_card_init+0x7c5
> Jul 31 09:19:34 xxx kernel: nouveau_ioctl_card_init() at nouveau_ioctl_card_init+0x9
> Jul 31 09:19:34 xxx kernel: drm_ioctl() at drm_ioctl+0x314
> Jul 31 09:19:34 xxx kernel: panic: _mtx_lock_sleep: recursed on non-recursive mutex drmdev @ /usr/src/sys/modules/drm/drm/../../../dev/drm/drm_scatter.c:123
> Jul 31 09:23:29 xxx kernel: drm0: <NVidia Display Adapter> on vgapci0
> Jul 31 09:23:29 xxx kernel: info: [drm] MSI enabled 1 message(s)
> Jul 31 09:23:29 xxx kernel: info: [drm] Detected an NV44 generation card (0x04e000a2)
> Jul 31 09:23:29 xxx kernel: vgapci0: child drm0 requested pci_enable_busmaster
> Jul 31 09:23:29 xxx kernel: info: [drm] Initialized nouveau 0.0.12 20060213
> _______________________________________________
> freebsd-x11 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-x11
> To unsubscribe, send any mail to "freebsd-x11-unsubscribe at freebsd.org"
-- 
Robert Noland <rnoland at FreeBSD.org>
FreeBSD



More information about the freebsd-x11 mailing list