[Bug 16781] Lockup when starting with second screen attached
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Thu Oct 30 04:20:42 PDT 2008
http://bugs.freedesktop.org/show_bug.cgi?id=16781
--- Comment #5 from Friedrich Gräter <graeter at hydrixos.org> 2008-10-30 04:20:40 PST ---
Okay, today I took some look inside the drivers source code and tried to debug
it. Unfortunately I have no other machine to use SSH and GDB, so I tried to
debug it by xf86DrvMsg() statements. (I know, it is a ugly way to do that...)
And I think I found the place where the driver crashes:
Call trace:
[...]
radeon_crtc_dpms
atombios_crtc_dpms
atombios_blank_crtc
RHDAtomBiosFunc
req_func => rhdAtomExec
rhdAtomExec
ParseTableWrapper
ParseTable
In ParseTable (Decoder.c, line 223, latest git) there is the following loop:
if (!CD_ERROR(ParserTempData.Status))
{
ParserTempData.Status = CD_SUCCESS;
while(!CD_ERROR_OR_COMPLETED(ParserTempData.Status))
{
...
} // while
} // if
The program executes the loop one time and leaves it, because the condition is
false. However I extended the loop by the following tracing code:
if (!CD_ERROR(ParserTempData.Status))
{
xf86DrvMsg(0, X_ERROR, "[E5-1]\n");
ParserTempData.Status = CD_SUCCESS;
while(!CD_ERROR_OR_COMPLETED(ParserTempData.Status))
{
...
xf86DrvMsg(0, X_ERROR, "[E5-1-2]\n");
xf86DrvMsg(0, X_ERROR, "[E5-1-2 %i > %i]\n", ParserTempData.Status,
CD_SUCCESS);
} // while
xf86DrvMsg(0, X_ERROR, "[E5-1-3]\n");
} // if
The last output of the X-Server to Xorg.0.log is "E5-1-2 0 > 0". The output
"E5-1-3" never appears on the log file. It looks like that the program never
leaves the queue and the X-Server got stuck in some kind of an endless loop.
This explains why I can still shutdown the system by CTRL+ALT+DEL, but have no
other access to the terminal.
I just don't know enough about AtomBIOS to fix the bug by myself. Could you
give me some hints, where I can do some further investigations?
--
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the xorg-driver-ati
mailing list