Re: OpenGL-based framebuffer concepts

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

 



Alexander E. Patrakov wrote:
Helge Hafting wrote:
Now, a panic/oops message is sure better than a silent hang, but that's it, really. Anything less than that should just go in a logfile where the admin can look it up later. The very ability to write on the console will alway be abused
by some application programmer or kernel driver module vendor.
Blindly writing on the console won't be very useful either, the user might be running a game or video which overwrites the message within 1/30s anyway.
Well, perhaps it can be done better than that, with some thought. I.e. :

* block all further access to /dev/fb0, processes will wait.
* Mark graphichs memory "not present" for any process that have it mapped, so as to pagefault anyone using it directly. (read-only is not enough,
 processes should see the graphichs memory they expect, not
 the kernel message)
* Try to allocate memory for saving the screen image (assuming the
machine won't hang completely, it will often keep running after an oops)
* Annoy the user by showing the message
* Provide some way of letting the user decide when to proceed, such
  as pressing a key
* Restore the saved screen memory (if that allocation was successful)
* Mark framebuffer memory present, releasing pagefaulted processes
* Unblock /dev/fb0

Still too complex.
Sure - which is why I sort of hope it won't happen.
Can't this be simplified to:

* Don't use the kernel text output facility for anything except panics, where there is no point in allowing userspace applications to continue
That's an option, of course.
* Rely on userspace to display oopses and less important messages, because doing this from the kernel leads either to the complex procedure outlined above (where the policy is in the kernel, e.g., on which of the two keyboards should one wait for a keypress?) or to unreliable displaying of messages
"Which of the two keyboards to read, which of the three screens to use
for messages" is not a problem.  The kernel would use whatever devices
is associated with the primary console - any extra devices would be left alone.
The console is normally one particular keyboard (or possibly all of them),
and /dev/fb0 in case of graphical console.  Other framebuffers are
not the primary console.
Someone with a network console or printer console should get their message
there instead - assuming the subsystems in question still works.

* Have a method in the framebuffer driver for clearing the screen and setting a known good mode, for the Linux equivalent of a "blue screen of death"
Those are there already, if you're using a framebuffer device driver that is.

Helge Hafting

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux