[PATCH 2/2] I/O port access routines
Tiago Vignatti
tiago.vignatti at nokia.com
Thu Nov 19 08:36:15 PST 2009
On Thu, Nov 19, 2009 at 05:20:41PM +0100, Luc Verhaegen wrote:
> On Thu, Nov 19, 2009 at 06:06:47PM +0200, Tiago Vignatti wrote:
> > On Thu, Nov 19, 2009 at 01:45:57AM +0100, ext Luc Verhaegen wrote:
> > >
> > > But the main point of this mail was ignored. Why did existing xorg pci
> > > infrastructure have to be reinvented like that instead of adding a new
> > > backend and fixing up the bad patches? Why did RAC get thrown away like
> > > that? Why does this NIH have to keep on repeating itself?
> > >
> >
> > The main reason is because we were needing a PCI resource broker for the
> > entire system and not for one process only. And X was touching the PCI
> > resources directly with RAC.. oops! We don't need and our 21st century's
> > kernels do it pretty well for us :)
> >
>
> You're talking RAC backend here. Once the RAC was initialised to know
> what resources this hardware needed, it handled everything for the
> driver without having to care for anything. This for memory, io and vga
> (a subclass of io).
>
> What i see now is that _everything_ got reinvented, instead of having
> written up a backend for a modern operating system, and maybe adjusting
> initialisation on the driver level (as part of this info really can be
> retrieved from the os now).
>
> Re-inventing everything is exactly the criticism that libpciaccess got,
> apart from it having not been tested on any worthwhile subset of
> hardware. Yet people still seem unable or unwilling to learn from their
> mistakes.
>
PCI code was removed (well, it's being) from X and needed be put somewhere.
libpciaccess was the name of the place. I can imagine how tied and coupled
such code was with the rest of the server and it was more easy to just
reimplement some parts. So, it was a decision that someone made.
But the removal of PCI from X was not all the problem; there was also RAC
which, as I said to you, should be visible from other apps. Given, recently
kernels are already doing a lot of RAC's job, we decided to just call another
name - VGA arbiter - and implement only the necessary parts.
I don't see why you're complaining so much...
Tiago
More information about the xorg-devel
mailing list