On Tue, 11 Mar 2014 06:51:59 +0000 Mick <[email protected]> said:
> Hi All, > > I thought of asking here first. When I wake up the machine from hibernation > the radeon driver starts throwing all these errors up and eventually the > xsession is terminated, knocking me out of e18: > ========================================================== > Mar 10 22:56:05 dell_xps kernel: hub 1-0:1.0: hub_suspend > Mar 10 22:56:05 dell_xps kernel: usb usb1: bus auto-suspend, wakeup 1 > Mar 10 22:56:05 dell_xps kernel: ehci-pci 0000:00:1a.0: suspend root hub > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:07 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:07 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:07 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:07 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:07 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:07 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:07 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:07 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:07 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:07 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > [snip ...] > > Mar 10 22:56:31 dell_xps kernel: radeon 0000:02:00.0: ffff880075e91000 pin > failed > Mar 10 22:56:31 dell_xps kernel: [drm:radeon_crtc_page_flip] *ERROR* failed > to pin new rbo buffer before flip > Mar 10 22:56:31 dell_xps kernel: usb 2-1.2: unlink qh8-0601/ffff8801323ab400 > start 3 [1/2 us] > Mar 10 22:56:31 dell_xps kdm[1544]: X server for display :0 terminated > unexpectedly > ========================================================== > > Even if I re-log into e18 within a few seconds X will crash and kick me out. > The only way out of this is to reboot. If I do not build the respective > binary blob in the firmware then this problem does not occur. This is what I > have specified in the kernel: > > CONFIG_EXTRA_FIRMWARE="radeon/R700_rlc.bin radeon/RV730_smc.bin > radeon/RV710_uvd.bin" > > > Shall I file a bug for the radeon driver, or is it something else causing > this? almost definitely. a low level bug. from the messages i might guess that it's trying to force your buffer to be non-swappable (cannot be removed from memory and written to disk with hibernation or swapping in ay way) and that is failing. a scanout buffer MUST be in memory and cannot be paged in by kernel +mmu traps. it cannot move around in memory - likely required to be at the exact same physical address and possibly not fragmented (in one continuous chunk) and tryng to force the buffer to do this is failing for whatever reason (likely hibernation forced the memory to become "virtual" to be able to be written out to disk, and once virtual it can no longer be converted back to physical "pinnable" mode - likely a driver limitation). technically if this is a limit then the driver should re-allocate the buffer somewhere else in memory and ensure that it is physically accessible like scanout wants (pinnable - i am guessing here - i know nothing of radeon internals), and ifr needed copy the buffer contents from virtual to the new physical pinned buffer, free the old virtual buffer and simply re-program pagetables to point the SAeM virtual address that userspace saw to point to the new REAL physical buffer location... but it's not doing this as someone simply didn't bother writing the support code to handle this case. until the driver is fixed, don't hibernate, as that can't FORCE the memory out of its current "pinnable" mode. :) (alternative for driver is to deny/fail the hibernate since its impossible to hibernate the memory). -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [email protected] ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ enlightenment-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-users
