[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...


More information about the xorg-devel mailing list