[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#513904: Info received (Bug#513904: Xorg runaway in NVSync(), see #336774)



* Sergio Gelato [2009-02-02 14:49:30 +0100]:
> #define READ_GET(pNv) ((pNv)->FIFO[0x0011] >> 2)
> 	while(READ_GET(pNv) != pNv->dmaPut);
> 
> so it looks like a polling wait for an event that isn't happening.

Regardless of what is ultimately causing the problem on our system,
I don't like the fact that that loop is unbounded. Since it chews CPU
time anyway, I think one could easily afford a few cycles to maintain
a counter and bail out after some reasonable number of iterations.
Maybe one should also log some debugging info whenever that happens,
or take additional measures like disabling acceleration if it happens
too often. Having to kill the X server is painful for users; being able
to limp along and at least save one's work would be nicer.



Reply to: