VGA arbitration: API proposal
Egbert Eich
eich at suse.de
Mon Mar 7 11:30:02 PST 2005
Alan Cox writes:
>
> At the point you are displaying an oops the machine is already in a
> pretty bad way and if the oops hangs the box then it's no worse than the
> oops being lost and the box hanging as occurs now under X.
Right.
>
> Time isn't always enough for the wait - on some chips you also need to
> stuff bytes down the data fifo in case a blit from CPU is in progress.
> That is something that can be improved over time and I'm sure the X
> folks have a lot of expertise here.
When no data is shuffed down the fifo chances may be better that you
can access the framebuffer again.
The main problem is that a fifo may not be empty and things queued in
the fifo are still processed while someone else would like to access
the framebuffer.
>
> > > app can lock vga we are in deadlock paradise. We may in fact need a
> > > kernel API on the vga device to "issue vga sequence to device" which
> > > does the locking entirely in kernel.
> > >
> >
> > Hm, interesting idea. Could this be implemented in a driver transparent
> > way? Meaning just change the PIO functions and handle thing transparently
> > in a library and/or the kernel. Some 'cache' for register accesses?
>
> Not really because the kernel needs to know which VGA device you are
> talking with. There would also be a bigger performance hit to do that
> than to take an
> ioctl for it.
Right. But the 'context' could be passed to the function as an additional
argument. I was referring more to the overhead that would be required
to flush out the data.
Egbert.
More information about the xorg
mailing list