Setting modes while the VT is inactive (was: Xserver crash on resume)

Robert Gerlach khnz at gmx.de
Sun Nov 25 19:05:45 PST 2007


Am Montag 26 November 2007 02:53:10 schrieb Keith Packard:
> On Mon, 2007-11-26 at 02:00 +0100, Robert Gerlach wrote:
> > #5  0xb7a90612 in i830_crtc_commit (crtc=0x821edd8)
> > at ../../src/i830_display.c:839
> > #6  0x080f5f89 in xf86CrtcSetMode (crtc=0x821edd8, mode=0xbfa7ce9c,
> > rotation=<value optimized out>, x=0, y=0)
> >     at ../../../../hw/xfree86/modes/xf86Crtc.c:312
> > #7  0x080f9c73 in xf86RandR12CrtcSet (pScreen=0x822aac8,
> > randr_crtc=0x825ae88, randr_mode=0x825b8b0, x=0, y=0,
> >
> > Hope this helps little bit,
>
> Yes, it does. Thanks. The bug we fixed last time was just running xrandr
> *without* setting a mode. Setting a mode without having the X server
> active seems significantly more problematic, and I'm not sure precisely
> what to do. We could:
>
>   + Just fail, and let you retry when the X server has become active.
>
>   + Suspend the operation and make the client actually hang until the X
> server was active again. This would require a bit of rework down inside
> the mode setting code and up through the RandR extension, but nothing
> impossible.
>
>   + Pretend the mode was set and then hope nothing goes wrong when the
> server is activated. This would really require that the driver be
> involved in the process, so that it could vette the incoming mode
> correctly and help make sure the selected mode really can be used.
> That's a change in the driver responsibilities.
>
> The first option is easiest, the second is a bit harder, but somewhat
> troublesome (a client hangs for an arbitrary amount of time). The third
> one places significant burden on the driver to check, but not execute,
> the mode setting operation.
>
> Anyone care which option we pick?

Is it possible to be informed by the server if it becomes active or poll for 
activity? Then I prefer the first option.
But I'm not familiar with the server internals, so I'm writing as a user.

  Robert



More information about the xorg mailing list