Re: Applications & ACPI events

Alan Hourihane
2003-10-09T14:06:48Z

On Wed, Oct 08, 2003 at 11:58:50PM +0200, Pavel Machek wrote:
> Hi!
>
> > > IMO X should do full save and restore, on every console switch. That
> > > way it is safe to killall -9 X when you are on console, and I think I
> > > like it that way. I do not think console switching is i386-only, I
> > > know that sparc64's had consoles, too.
> >
> > Doing a kill -9 on any application doesn't allow the application to
> > catch the signal. Thus X cannot restore itself, and neither can any
> > application that gets it. If you kill -9 anything then suffer the
> > consequences of it not cleaning up.
>
> I should be able to kill -9 any task and keep my system running (I'm
> not complaining about stale lock files etc). Unfortunately that is not
> true with X. It would be nice if at kill -9 would be safe at least
> when kernel has control of display.

You said 'X should do full save and restore, on every console switch'.
The fact is that X can only do a full save/restore (and it does!) on
the VT that it owns. If you really want to do a kill -9, then the
kernel has no choice but to clean up and restore itself which is impossible
as it knows nothing about some of the intricasies of the some of the graphics
engines out there.

> > > OTOH if X knew how to bring video card up from powerdown... that would
> > > help a lot, and would need a kernel support. ("Hey, X, I just did
> > > resume and graphics card is uninitialized. It is not even in vga text
> > > mode. Do something with it.")
> >
> > Most drivers in X do know how to bring up the video chip from an
> > uninitialized state. If the kernel is doing a VT switch internally and
> > back again on resume then it should just work.
>
> Kernel is doing VT switch in -test6. But I do not really think X can
> bring up the video chip... are you really able to program video card
> memory timings and similar stuff? On what cards?

X can bring it up. X uses the int10 library to softboot a video board.
XFree86 even has an x86 emulator so it can do this on non-X86 platforms.

I guess I'll just have to try -test6 to see if it does VT switch when
hitting the power button to suspend....

Alan.