I'm familiar with this one -- it isn't agp, it is DRI. DRI depends on AGP so you are disabling both when you disable AGP. This issue has to do with the DRI module "losing track" of what is going on in the usage of main memory (through AGP) when you do a suspend resume -- it gets stuck trying to flush a buffer... Sean
>>>>> "Sean" == Sean M Welch <Welch> writes:Sean> I'm familiar with this one -- it isn't agp, it is DRI. DRI Sean> depends on AGP so you are disabling both when you disable AGP. Sean> This issue has to do with the DRI module "losing track" of what Sean> is going on in the usage of main memory (through AGP) when you Sean> do a suspend resume -- it gets stuck trying to flush a buffer... So ... this means that there's no hope ... just disable agp ... ? Dave. -- ===========================================================================|David Gilbert, Velocet Communications. | Two things can only be | |Mail: dgilbert@velocet.net | equal if and only if they | |http://daveg.ca | are precisely opposite. | =========================================================GLO================
No, not at all. Disable DRI in your XF86Config file. One work around I have used with good success is to start up the server without DRI enabled (using one XF86Config)and then after that start up another server (with DRI) for JUST 3D work on another VT. This is easy enough to do from the command line (you can even do it from within the first X session if you like). That way, when I want to suspend I just shut down the DRI enabled session before suspending and then restart it after the suspend; I don't have to shut down all my NON-3D programs with this method. I used something like this to start the other (DRI enabled) server: startx -- :1 -xf86config XF86Config.DRI_enabled & I'm not at my machine at the moment, so I can't be sure this is it exactly (you might need one more ":1" before the "&", but I don't think so). Sean -----Original Message----- From: David Gilbert [mailto:dgilbert@velocet.ca] Sent: Thursday, April 03, 2003 2:40 PM To: Welch, Sean M. Cc: 'dgilbert@velocet.ca'; 'freebsd-stable@freebsd.org' Subject: Re:agp driver locks up on resume>>>>> "Sean" == Sean M Welch <Welch> writes:Sean> I'm familiar with this one -- it isn't agp, it is DRI. DRI Sean> depends on AGP so you are disabling both when you disable AGP. Sean> This issue has to do with the DRI module "losing track" of what Sean> is going on in the usage of main memory (through AGP) when you Sean> do a suspend resume -- it gets stuck trying to flush a buffer... So ... this means that there's no hope ... just disable agp ... ? Dave. -- ===========================================================================|David Gilbert, Velocet Communications. | Two things can only be | |Mail: dgilbert@velocet.net | equal if and only if they | |http://daveg.ca | are precisely opposite. | =========================================================GLO================
On Thu, 2003-04-03 at 12:31, Welch, Sean M. wrote:> I'm familiar with this one -- it isn't agp, it is DRI. DRI depends on AGP > so you are disabling both when you disable > AGP. This issue has to do with the DRI module "losing track" of what is > going on in the usage of main memory > (through AGP) when you do a suspend resume -- it gets stuck trying to flush > a buffer...I was initally going to say this too. However, I remember I tried to suspend/resume my laptop in the console with DRM not loaded and still had hangs. I put some printf in the kernel to see if the AGP setup was corrupted by the resume and it didn't look like it (having noticed that linux does a whole re-setup of agp after resume). I didn't ever try without AGP at all I think, and didn't try reconfiguring. Some work has been done on suspend/resume with the DRI. I don't know too much about it, but I think it let you suspend/resume while a 3d client was running. I don't remember if that stuff got merged or not (thinking not). I think suspend/resume is supposed to still work if you're switched away to console. -- Eric Anholt eta@lclark.edu http://people.freebsd.org/~anholt/ anholt@FreeBSD.org
Here's the thing; I never had trouble suspending the console, but I also never tracked stable or current with that r128 card in. I only ran releases with updated ports trees. Last time I ran that card was under 4.6-RELEASE and my experience was that I could suspend on the console or another VT but when I resumed if I tried to switch back to X it would hang (mouse moved, but everything else was borked with CPU on 100%). My solution was what I detailed about running two X servers. I've been running the radeon card since the middle of last summer and now I can't do a suspend to ram at all -- the bios chokes and does a power cycle on resume (guess it doesn't understand the new card as well as it should). I don't have any other side effects and I can still suspend to disk. The suspend changes were only to the radeon driver and they were not merged. I found and tried the diffs; they seemed to work well in that they prevented hangs when switching to a vt while running a DRI app, but I've never been able to test the suspend to ram because of the bios issue. It does not work when resuming from disk -- it displays the behavior I came to expect from the r128 card on resume from ram. By the way, those diffs set up a handler to notice the suspend event and flush the buffer leaving it empty when the machine suspended. The same was done for a switch to a vt to avoid the same sync problem. Sean -----Original Message----- From: Eric Anholt [mailto:eta@lclark.edu] Sent: Thursday, April 03, 2003 3:51 PM To: Welch, Sean M. Cc: 'dgilbert@velocet.ca'; 'freebsd-stable@freebsd.org' Subject: Re: Re:agp driver locks up on resume On Thu, 2003-04-03 at 12:31, Welch, Sean M. wrote:> I'm familiar with this one -- it isn't agp, it is DRI. DRI depends on AGP > so you are disabling both when you disable > AGP. This issue has to do with the DRI module "losing track" of what is > going on in the usage of main memory > (through AGP) when you do a suspend resume -- it gets stuck trying toflush> a buffer...I was initally going to say this too. However, I remember I tried to suspend/resume my laptop in the console with DRM not loaded and still had hangs. I put some printf in the kernel to see if the AGP setup was corrupted by the resume and it didn't look like it (having noticed that linux does a whole re-setup of agp after resume). I didn't ever try without AGP at all I think, and didn't try reconfiguring. Some work has been done on suspend/resume with the DRI. I don't know too much about it, but I think it let you suspend/resume while a 3d client was running. I don't remember if that stuff got merged or not (thinking not). I think suspend/resume is supposed to still work if you're switched away to console. -- Eric Anholt eta@lclark.edu http://people.freebsd.org/~anholt/ anholt@FreeBSD.org