VGA arbitration: API proposal

Benjamin Herrenschmidt benh at kernel.crashing.org
Sat Mar 5 13:56:13 PST 2005


On Sat, 2005-03-05 at 11:37 -0500, Jon Smirl wrote:
> On Sat, 05 Mar 2005 16:18:01 +1100, Benjamin Herrenschmidt
> <benh at kernel.crashing.org> wrote:
> > Wether we are talking with kernel consoles or user consoles, the problem
> > of VGA access remains the same. Let's be constructive now, please
> > comment on my proposal, and if you have nothing to object, let's try to
> > make it a reality.
> 
> There is definitely a demand for systems with multiple videos card
> allowing multiple simultaneous logins. The ruby project implements
> this with a current kernel diff of 13,000 lines. There are also two
> (maybe more) commercial companies selling systems based on this. So if
> simultaneous users are to be addressed VGAcon has to be looked at. As
> Alan points out it may be difficult to make multiple in-kernel VGAcons
> work. For example VGAcon can do printk at interrupt time.

I know, but it can also be "delayed", we can massage a bit the magic of
the console_sem. We can also have printk only go to the VT "back buffer"
and only trigger the display once we get the vga arbitration.

> What about legacy code that doesn't contain vga_get/vga_put. brackets?
> You can't just do this on VT switch in the simultaneous user case.

What do you mean ? You can do it at any time, just fix the legacy stuff.
Unless there is something I'm not understanding... The only problem is
printk at interrupt time, which can be solved by something like
vga_tryget() and delaying the display if it fails. Pretty much exactly
what we already do with the console semaphore.

Ben.





More information about the xorg mailing list