[PATCH RFC]: Generic Linux multi-domain PCI handling

Dave Airlie airlied at gmail.com
Thu Dec 29 17:08:14 PST 2005


>
> Ah, good that finally somebody is having the guts of tackling this
> issue :) I think there are other problems to be dealt with though (but I
> haven't gone into details, just writing from the top of my mind_
>
>  - PIO access (legacy and normal BAR-based). This is implemented with
> hacks for platforms like ppc where an PIO is mapped somewhere in the CPU
> physical memory space, with a single IO base. We actually need one per
> domain. Same goes for legacy IO accesses which need to be per domain,
> and thus the VGA arbitration probbaly needs domain knowledge..
>
>  - Identification of PCI devices. I'm not sure what works and what not
> here as I'n not familiar with that part of X, but what about things like
> device IDs containing PCI bus:dev:fn in the config file and
> identification of PCI device used between the server and the DRM ? I
> suppose that syntax need to be augmented of the domain number
>
> In general, also, I think we should try to generalise usage of mmap
> of /proc and/or /sys instead of /dev/mem and isolate X from some of the
> PCI details that it doesn't always get right. In fact, on linux, I think
> X shoulnd't even try to do resource allocation on PCI...
>
> BTW. I think David Airlie did some initial work on updating the PciTag
> to hold domain numbers too...

I've got a patch (I reattached it)
https://bugs.freedesktop.org/attachment.cgi?id=4196&action=edit

that I started at OLS it is against the monolith at present, I could
update it, however it purposely breaks binary compatibility as I
really don't like the PCITAG as a scalable solution, so I decided to
rip it out, granted it would be possible to just add a domain member
in a few places where the tags are used but I dislike the
maintainability of it.... I'm willing to clean this patch up, Egbert
has also stated he'd like to get this stuff cleaned up post 7.0
release also.

I also just ripped out all the PowerMAX_OS defines from that code
which removes one thing that wasn't adding any value other than using
up bits...

Dave.



More information about the xorg mailing list